viewテーブルとデータベース設計
実テーブルとビューテーブル
データベースでの表の構造は、テーブルの集合で表され、これは概念スキーマに相当する。
しかし、プログラマーの視点では、複数の表から構成されているといった所を気にせずプログラムを作れると便利。こういう使い勝手のよいテーブルは、外部スキーマに相当する。この外部スキーマを定義するものが、create view 命令である。
-- 優良業者しか見えないテーブル -- create view 優良業者 ( 業者番号, 優良度, 所在 ) as select S.業者番号, S.優良度, S.所在 from S where S.優良度 > 15 ; -- 串刺し結果で参照できるテーブル -- create view 業者在庫 ( 業者名, 在庫量 ) as select S.業者名, SG.在庫量 from S, SG where S.業者番号 = SG.業者番号 ; -- 外部スキーマで参照 -- select 業者在庫.業者名, 業者在庫.在庫量 from 業者在庫 ;
このように外部スキーマを設けることで、SQLをシンプルに記述できたり、外部プログラマが余計な内容を見れないようにしたりすることができる。ただし、データベースシステムによっては読み出しだけだったり、ビューテーブルを更新する時に更新異常が発生する場合がある。 (さらに…)