サンプル データベース テーブルと参照整合性
この付録では、以下の項目について説明します。
Demodata サンプル データベースの概要
サンプル データベースの DEMODATA は PSQL 製品の一部として提供されており、データベースの概念と技法を図解するためにマニュアルで頻繁に使用されます。PSQL に関しては既によく理解されていると思いますが、この付録の情報をもう一度見直して、新しいサンプル データベースに慣れてください。
大学関連の環境で仕事をしていなくても、これらのサンプル データベースの例をテンプレートおよび参考として利用すれば、独自の情報システムの設計と開発を容易に行えます。ここに示す例は実際の生活の場面を反映しているので、この例に示すサンプル クエリなど機能を利用することができます。
Demodata サンプル データベースの構造
データベースの物理構造は、リレーショナル データベースの要素であるテーブル、列、行、キー、インデックスで構成されています。
このデータベースに含まれる 10 個のテーブル間にはさまざまな関係があります。このデータベースには、学生、教職員、授業、登録などに関するデータが含まれています。
前提条件
以下に、データベースを構築したときのいくつかの前提条件を示します。
エンティティの関係
エンティティは、データベース内の主なコンポーネントを記述するオブジェクトです。データベースを設計する場合、エンティティとそれらの相互の関係を定義してから先に進むことが大切です。University データベースでは、CLASSES、STUDENTS、FACULTY、GRADES などがエンティティです。エンティティとそれらの相互関係については、図 3 で概説しています。
図 3 エンティティの関係
GRADES は弱いエンティティです。このエンティティは授業を受ける学生に依存しているので、その存在は他のエンティティの有効性に依存しています。STUDENT テーブルと FACULTY テーブルが共通の情報を作成するのは、学生が教職員になったり、教職員が学生になる場合があるからです。共通の情報は、PERSON テーブルにあります。
Demodata サンプル データベースの参照整合性
ここでは、サンプル データベースの参照整合性(RI)設計について説明します。
4 は、University データベース内の様々なテーブル間に存在する参照制約を示したものです。ボックスはテーブルを表します。一方向の方向矢印は、親テーブルから参照用テーブルまでの参照制約を意味します。たとえば、制約番号 16 では、親テーブル Course で主キーを参照する Class テーブルに外部キーが存在します。
図 4 サンプル データベースの RI 構造
メモ: 4 は、依存関係グラフの役割も果たします。このグラフは、物理設計を行うときにどのテーブルを先に作成しなければならないかを示します。
RI に参加するテーブル、列、キーは、以下のように定義されます。
 
Demodata サンプル データベースのテーブル設計
以下に、サンプル データベースのテーブルへの手引きを示します。以下の情報は、各テーブルに収録されています。
BILLING テーブル
 
CLASS テーブル
 
COURSE テーブル
 
DEPT テーブル
 
ENROLLS テーブル
 
FACULTY テーブル
 
PERSON テーブル
ROOM テーブル
 
STUDENT テーブル
 
TUITION テーブル