ざっくり「ビュー」とは何でしょうか?と聞かれたら、自信をもって答えられるでしょうか?
本ページでは、「ビュー(view)」について初心者向けに1から分かりやすく解説します。データベースビューって何?更新ビューって何?射影ビューは・・・?
こんな疑問に答えます。
- ビュー(view)とは何か?
- 4つのビューの基礎知識
- データベースビュー
- 更新ビュー
- 射影ビュー
- ヘルプビュー
特にデータベースビューと更新ビューの違いについては、ABAPerであれば知らないと恥ずかしい必須知識です。是非、最後までご覧ください。
ビュー(view)とは?

初心者向けに分かりやすく説明すると、ビュー(View)とは1つ以上のデータベースから任意のデータを選択して、 見たいデータだけ、欲しいデータだけを表示する仕組みであると言えます。
早速ですが、以下の表をご覧ください。1つのデータベースだと考えてください。

このデータベースは生徒の名前や住所、連絡先から家族構成まで生徒に関する情報をすべて持っているデータベースだとします。
例えば、このデータベースから、出席番号と電話番号だけを表示させたい!とします。こんな感じでしょうか。

ざっくり言うと、これがビュー(View)です。
項目数が膨大なデータベースから必要な情報だけを抜き出して表示させたり、逆に二つ以上のデータベースをくっつけて一緒に表示させたりするものがビュー(view)であると理解しましょう。
ビュー(view)には4種類ある
SAPにおけるビューは大きく分けて4種類あります。
- 【重要!】データベースビュー
- 【重要!】更新ビュー
- 射影ビュー
- ヘルプビュー
それぞれ、ビューの実装方法と処理の仕方が異なります。ここからは、一つひとつのビューの性質を解説していきながら、覚えておきたい4種類のビューについて解説していきます。
データベースビュー
これが、ビューの基本形です。2つ以上のデータベースから任意の項目だけを表示させたものです。この最も基本的なビューを「データベースビュー」と呼びます。
簡単な例で説明します。以下の2つのデータベースから、見たい項目だけを抜粋してきます。

完成イメージがこちら。

これが、データベースビューです。
データベースビューは複数のテーブルの内部結合によって作成されているようなイメージです。
テーブルとテーブルを結合する1つ方法です。同じキーを持つレコードどうしを結合させます。
※詳しく知りたい方はこちら。
更新ビュー
基本的な考え方はデータベースビューと同じ。それに加えてデータの更新も可能なものを、更新ビューと呼びます。
複雑なアドオンテーブルをそのままユーザに直接更新させるのは酷ですが、例えば更新してほしい項目だけをビューとして設定していれば、ユーザビリティが向上し複雑なマニュアルなしで更新が可能になります。
ただし、更新可否の他に1つだけ知っておくと便利な知識があります。それは、結合方法の違いです。
データベースビュー ⇒ 内部結合
更新ビュー ⇒ 外部結合
更新ビューは外部結合で結合される
※この章は、ちょっと難しいことが書いてあるので、混乱する人は読み飛ばしてください。
更新ビューは必ず「外部キーを基に外部結合」で作られます。外部キーとは結合するテーブルの「どの項目と同じ項目なのか」を指し示す項目です。
先ほどの例をもう一度見てみましょう。

この場合、生徒名簿の出席番号の外部キーは「英語の点数データベース」の「出席番号」になります。どの項目とリンクしているのかを指し示すキーである、と理解しても良いかもしれません。
さて、この外部キーを基に外部結合していることが重要となるのは、更新するタイミングです。
外部結合で項目と項目を漏れなくリンクしていないと、一方のデータベースを更新したタイミングでもう一方のデータベースを更新できません。
更新ビューとデータベースビューには微妙な違いがあることを頭に入れておいてください。
射影ビュー
射影ビューは、一番最初に説明したビューです。
つまり、1つのテーブルから必要な部分だけを見れるようにしたビューです。

生徒名簿データベースをもとに

電話番号viewを作成しました。
これが、射影ビューです。
射影ビューは読み取りだけでなく、更新もできます。項目が膨大にあるデータベースの必要な項目だけを必要とする場合に利用するビューで、取得する項目を必要最小限にすることで、データ読み込みのパフォーマンスを向上させます。
ヘルプビュー
さて、最後のヘルプビューですが、これまでとテイストが異なります。
本ページではビューという概念の理解を目的としているため、このページではビューの種類の1つに「ヘルプビュー」がある、と列挙するにとどめます。
ヘルプビューに関する解説は、F4ヘルプの仕組みと合わせて解説します。
ビュー(View)のメリット
この章では、ビュー(View)を利用することのメリットについて整理しておきます。
SAP的にどのようなメリットがあるのかを知ることで、適切なビューの作成・利用が可能になります。
複数のプログラムから再利用可能
一度ビュー(View)を定義しておけば、他のプログラムでも再利用することが可能です。つまり、ビュー(View)を作っておけば、都度テーブルの結合をABAPでコーディングする必要がなくなるということです。
コーディングミスの防止や、開発効率化・プログラム構造化の観点からビューを作成することには大きなメリットがあります。
バッファリングの設定が可能
標準テーブル / アドオンテーブルと同様バッファリングの設定が可能です。
つまり、メモリの節約につながりパフォーマンスの向上に大きく寄与します。プログラムの中で、複数のテーブルを結合しすぎて処理が遅くなっている場合などに、ビューの作成&テーブルバッファリングのセットチューニングが生きてきます。
毎回プログラムの中でテーブル結合をする場合、データベースを直接読み込みにいく必要がありますが、バッファリングしていればデータベースを読み込みません。
データベースの中身をアプリケーションサーバ上に同期して保持する方法です。
ABAPを1から勉強したい方は
ABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。
現在、完全無料で公開しておりますので、是非ご覧ください!