ここでは、データベースの例として、ある小売店の在庫管理データベースを示します。本書では、データ操作の説明に、このデータベースを使用します。このデータベースは、小売店の在庫管理業務を実現するもので、以下の3つの表から構成されています。
取り扱う製品とその在庫数量の情報を持つ表
仕入れ先ごとの取引製品とその発注数量、および仕入価格に関する情報を持つ表
取引会社の会社名、電話番号および住所の情報を持つ表
これらの表は“在庫管理”というスキーマに含まれます。
在庫表の内容を“図1.2 在庫管理データベースの内容”のa)に示します。在庫表は以下の4つの列から構成されています。
製品につけたコード番号データの列
製品の種類名データの列
製品の在庫数データの列
製品を保管してある倉庫の番号データの列
発注表の内容を“図1.2 在庫管理データベースの内容”のb)に示します。発注表は以下の4つの列から構成されています。
取引先の会社番号データの列
製品につけたコード番号データの列
製品の仕入価格データの列
製品の発注数データの列
会社表の内容を“図1.2 在庫管理データベースの内容”のc)に示します。会社表は以下の4つの列から構成されています。
会社につけたコード番号データの列
会社の名称データの列
会社の電話番号データの列
会社の住所データの列
本書の中で、特に断りなくSQL文の使用例などで上記の表名および列名が使用されている場合は、“図1.2 在庫管理データベースの内容”の表および列を指定しています。必要に応じて“図1.2 在庫管理データベースの内容”を参照してください。なお、“図1.2 在庫管理データベースの内容”に示す表に含まれるデータは架空のものです。
図1.2 在庫管理データベースの内容
各表の列の属性を以下に示します。
表名 | 列名 | 列のデータ型 | 列の制約 | 備考 |
---|---|---|---|---|
在庫表 | 製品番号 | SMALLINT | NOT NULL | 製品のコード番号 |
製品名 | NATIONAL CHARACTER(10) | NOT NULL | 製品種類名 | |
在庫数量 | INTEGER | --- | 在庫する製品の個数 | |
倉庫番号 | SMALLINT | --- | 保管倉庫の番号 | |
発注表 | 取引先 | SMALLINT | NOT NULL | 取引先の会社番号 |
取引製品 | SMALLINT | NOT NULL | 製品のコード番号 | |
仕入価格 | INTEGER | --- | 製品の仕入価格 | |
発注数量 | SMALLINT | --- | 発注した製品の個数 | |
会社表 | 会社番号 | SMALLINT | NOT NULL | 会社のコード番号 |
会社名 | NATIONAL CHARACTER(10) | NOT NULL | 会社の名称 | |
電話番号 | CHARACTER(14) | --- | 会社の電話番号 | |
住所 | NATIONAL CHARACTER(20) | --- | 会社の所在地の住所 |
--- : NULLを許します。
3つの表の間の関連を“図1.3 在庫表、発注表および会社表の関連”に示します。在庫表と発注表は、製品番号と取引製品で関連が付けられています。発注表と会社表は、取引先と会社番号で関連が付けられています。例えば、在庫表上で製品番号が123の製品は、製品名が“冷蔵庫”、在庫数量が“60”で、この製品が格納してある倉庫の番号が“1”です。そして、この製品の仕入価格および発注数量は、発注表の取引製品が“123”の行から、それぞれ“48000”、“60”であることが分かります。さらに、取引先の会社番号は“61”なので、会社表の会社番号が“61”の行から、その製品の取引先の会社の会社名、電話番号および住所が分かります。
図1.3 在庫表、発注表および会社表の関連