Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


12.6.1 ビュー表作成の概要

実際にデータベースに格納している表(実表)から特定の行や列を選択して,新たに定義した仮想の表(ビュー表)を作成できます。

〈この項の構成〉

(1) 実表とビュー表の関係

実表とビュー表の関係を次の図に示します。

図12‒18 実表とビュー表の関係

[図データ]

〔説明〕

実表(ZAIKO)から,商品名(SNAME)がソックスの行で,商品コード(SCODE),在庫量(ZSURYO)及び単価(TANKA)の列で構成されるビュー表(VZAIKO)を作成した例です。

商品を扱うある支店では,「商品名」が「ソックス」で「商品コード」「在庫量」「単価」のデータを参照だけすればよい場合,実表(ZAIKO)にはアクセス不可とし,ビュー表(VZAIKO)に対して参照だけを許す権限(SELECT権限)を設定します。これによって,必要な情報だけを参照でき,データは保護されます。

(2) ビュー表を作成したときの効果

ビュー表を作成したときの効果を次に示します。

機密性の向上

自分の表の機密保護を図りたい場合にビュー表を作成します。ビュー表を作成することで,表の特定の列と行だけを表示できます。このため,アクセス権限をビュー表に設定することで,行又は列レベルの機密保護が図れます。

操作性の向上
  • 複雑な問い合わせ指定をして表を検索しなくてもよいように,複雑な問い合わせ指定をした場合に検索できるデータであらかじめビュー表を作成します。これによって,表を参照する操作が手軽になります。

  • ビュー表を通して実表を参照したり更新したりできます。これによって,実表の定義が変更されてもSQL文を変更する必要はなく,場合によってはビュー表の定義を変更する必要がなくなります。

(3) ビュー表の作成方法

定義系SQLのCREATE VIEWを実行してビュー表を作成します。CREATE VIEWで次に示すビュー表を定義できます。

規則
  1. 一つのビュー表には30,000個まで列を定義できます。

  2. ビュー表に対して列の追加,及びインデクスを定義できません。

  3. 自分の所有する実表から定義したビュー表の所有者はビュー表に対するすべてのアクセス権限(行の検索,追加,削除,更新)を持ちます。

  4. ほかのユーザが所有する実表から定義したビュー表の所有者は,ビュー表に対するアクセス権限として,実表に対して付与されているアクセス権限だけを持ちます。ただし,ビュー表の定義に次に示すどれかの指定をした場合は,機密保護機能を使用するかどうかに関係なく行の検索しかできません。

  • ビュー表の列に実表の同じ列を複数指定した場合

  • ビュー表の列に定数,USER値関数,CURRENT_DATE値関数,CURRENT_TIME値関数,四則演算,日付演算,時刻演算,連結演算,又はスカラ関数の結果を指定した場合

  • 複数の実表を指定した場合

  • DISTINCT,集合関数(COUNT(*),AVG,MAX,MIN,SUM),グループ分け(GROUP BY句),又はグループ条件(HAVING句)を指定した場合

    機密保護機能を使用しない場合,これら以外のビュー表はほかのユーザが自由に更新できます。ただし,読み込み専用のビュー表(READ ONLY指定)の場合,機密保護機能を使用しなくてもほかのユーザがビュー表を更新できません。

(4) ビュー表の削除方法

定義系SQLのDROP VIEWを実行してビュー表を削除します。ビュー表を削除すると,削除したビュー表に関するすべてのアクセス権限が取り消されます。