もどる

第4回 データベースのスキーマ設計

スキーマ = データベースの論理的構造

いきなり『何も知らない状態で発注書を作れ』という演習でした。

第1正規形 → 第2正規形 → 第3正規形

と変形していくことによって無駄な部分が省かれる。

 

第1正規形

発注番号 取引先ID 会社名 日付 扱い者 品名 数量 単価
3492 c61 菓子の山本 1991/8/10 井沢 チョコレート 50 98
3492 c61 菓子の山本 1991/8/10 井沢 センベイ 30 218
3492 c61 菓子の山本 1991/8/10 井沢 キャラメル 50 92
3492 c61 菓子の山本 1991/8/10 井沢 クッキー 100 185
3494 c45 三木商店 1991/8/19 代田 チョコレート 100 95
3494 c45 三木商店 1991/8/19 代田 キャラメル 50 87
3494 c45 三木商店 1991/8/19 代田 棒チョコ 20 145
3494 c45 三木商店 1991/8/19 代田 キャンディ 100 80
3494 c45 三木商店 1991/8/19 代田 ガム 50 77

データをただ表示しただけ。

 

第2正規形

発注番号 取引先ID 会社名 日付 扱い者
3492 c61 菓子の山本 1991/8/10 井沢
3494 c45 三木商店 1991/8/19 代田
発注番号 品名 数量 単価
3492 チョコレート 50 98
3492 センベイ 30 218
3492 キャラメル 50 92
3492 クッキー 100 185
3494 チョコレート 100 95
3494 キャラメル 50 87
3494 棒チョコ 20 145
3494 キャンディ 100 80
3494 ガム 50 77

(発注番号、取引先ID、会社名、日付、扱い者)において、同じことが書いてあるものを分割。

たとえば、発注番号が決まると、すべてが決まる(『従属している』という)。よって、分割。

 

第3正規形

発注番号 取引先ID 日付 扱い者
3492 c61 1991/8/10 井沢
3494 c45 1991/8/19 代田
取引先ID 会社名
c61 菓子の山本
c45 三木商店
発注番号 品名 数量 単価
3492 チョコレート 50 98
3492 センベイ 30 218
3492 キャラメル 50 92
3492 クッキー 100 185
3494 チョコレート 100 95
3494 キャラメル 50 87
3494 棒チョコ 20 145
3494 キャンディ 100 80
3494 ガム 50 77

取引先ID と 会社名という関係もあるので、またまた分割。

 

超キー = すべての属性の値を決定しうる、属性の組み合わせ。

候補キー = 超キーの中から冗長な属性を取り除いた極小なもののみの属性の組み合わせにしたもの。

主キー = 候補キーの中からそのリレーションのキーとして採用したもの。 

 

E−Rモデル(実体−関連モデル)

1976 Peter Chen

・世の中を『実体』と『関連』に分けて考える。

『実体』 = 実世界のなかで、われわれが認識するものや事柄

例:会社、大学、学生、商品 など。

『関連』 = 実体と実体の間に生じる関連

例:大学と学生の関連は『所属』、会社と商品の関連は『販売』

 

・E−Rダイアグラム