ビュー

ビュー は、 データを保守せずに表すための効率的な方法です。 ビューは実際の表ではなく、また永続ストレージを必要とすることもありません。 仮想表 が作成され、使用されます。

ビュー により、1 つ以上の表にあるデータをさまざまな方法で見ることができます。つまり、ビューとは、結果表に名前を付けて指定したものです。 この指定は、ビューが SQL ステートメントで参照されるときにいつも実行される SELECT ステートメントのことです。 ビューには表と同じく列と行があります。 ビューはすべて、データ・リトリーブにおいて表と同じように使用することができます。 挿入、更新、または削除の操作でビューが使用されるかどうかは、その定義により異なります。

ビューには、ベースとなっている表の列または行のすべてまたは一部を含めることができます。 例えば、ビューの中で部署表と従業員表を結合して、 特定の部署の従業員をすべてリストすることができます。

図 1 は、表とビューの関係を示しています。

図1: 表とビューの関係
表とビューの関係を示す図。

ビューを使用して、機密データへのアクセスを制御することができます。なぜなら、ビューによって複数のユーザーが同じデータを異なる表示で見ることができるからです。 例えば、数人のユーザーが、従業員に関するデータの表にアクセスしているとします。 管理職は、自分の部門の従業員のデータは見ることができますが、他の部門の従業員のデータは見ることができません。 人事部のユーザーは、すべての従業員の雇用日付を見ることができますが給料は見えません。経理課のユーザーは、給料を見ることはできますが雇用日付は見えません。 こうしたユーザーはそれぞれ表から派生したビューで作業します。 各ビューは、1 つの表のように表示され、それぞれ固有の名前があります。

ビューの列が基本表の列から直接に派生している場合、そのビューの列は表の列に適用されるあらゆる制約を継承します。 例えば、ビューにその表の外部キーが入っている場合、 そのビューを使用する挿入および更新操作は表と同じ参照制約に従います。 また、ビューの表が親表である場合、そのビューを使用する削除および更新操作は、 表の削除および更新操作と同じ規則に従います。

ビューでは、列ごとにデータ・タイプを結果表から派生させる (つまり、型をユーザー定義の構造化タイプの属性に基づいたものにする) ことができます。 このようなビューを型付きビュー と呼びます。 型付き表と同様に、型付きビューもビュー階層の一部になることができます。 サブビュー は、スーパービュー から列を継承します。 サブビュー という語は、型付きビュー、およびビュー階層でその下にあるすべての型付きビューに当てはまります。 ビュー V の厳密な意味でのサブビュー とは、型付きビュー階層で V の下にあるビューのことです。

ビューが作動不能になる場合があります (表がドロップされた場合など)。これが発生すると、そのビューは SQL 操作では使えなくなります。