第三正規形
主キー以外の項目で決定されるものや、計算できるものは分割する。
第二正規形でも十分いいような気がするが、表では、主キーではないが。
選手コードがあれば、選手名はわかってしまうのでこれを分割する。
あと、勝数は「結果」の合計をすればわかることだ。これを除外しておく。
表A
試合コード 相手コード 結果
101 B001 勝ち
101 D001 負け
102 D001 勝ち
103 A001 勝ち
103 D001 勝ち
104 B001 負け
表B
試合コード 選手コード
101 A001
102 B001
103 C001
104 D001
表C
相手コード 相手名
A001 やうたん
B001 かなたん
D001 やまざき
表D
選手コード 選手名
A001 やうたん
B001 かなたん
C001 はっしい
D001 やまざき
と、最終的には4つの表になる。
・・・難しい説明だったかもしれないが、
実際に手を動かしながら表を作ってみて欲しい。
そうすると、データベースはわかりやすいはずだ。
データベースのポイントは、自分で手を動かして表を作成し、それを正規化する
という作業を繰り返すことで、正規化とは何か・・・がつかめると思うのだ。
ちなみに、第4正規形とか、他の正規形もあるんですか?
ある。ボイスコッド正規形というのもある。詳しくはデータベーススペシャリスト試験
でやることになるだろう。
ボイスゴッド・・・声の神・・・大山のぶ代?
どうしてそうなる!僕は神山満月ちゃん!
(つづきます)