8/9 RDBMSテーブルの正規化について
経緯
ある企業の面接において下記のような質問を受けて
上手な回答をすることができなかったのでまとめてみました。
「データベースの正規化について簡単に説明してください」
「正規化によるメリットとデメリットをそれぞれ説明してください」
面接では「テーブル構造の重複をなくし整理する。。」みたいな
結構あいまいな回答をしてしまい非常に後悔しました。
参照サイト
第4回 データベースの正規化|OSS-DB入門|OSS-DB道場|受験対策|DBスペシャリストを認定する資格 OSS-DB技術者認定試験
できるエンジニアになる! ちょい上DB術・基礎編(7):【DB概論】正規化の手順 (1/2) - @IT
わかったこと
第3正規形までは何とか説明できるようになった。
第1正規形
繰り返し項目をそれぞれ別項目に独立させる
非正規系は帳票の状態でそれを表にするのが第1正規化。
(例)
キャンペーンエントリー履歴一覧画面
第2正規形
複合主キーとなる項目の一部に完全従属する項目を別テーブルに分離させる。
分解したテーブルに外部ーを加える。
(例)
「キャンペーンエントリー履歴」の主キーは
キャンペーンIDと会員IDとすると、それぞれ別テーブルに分離させて
キャンペーンエントリー履歴テーブルには外部キー、エントリー時間のみが残る。
第3正規形
すべての複合主キー以外の項目で関係従属関係にある項目を別テーブルに分離させる
(例)
キャンペーンテーブルには「所属会社」、「住所」が含まれているが
「広告主」が決まれば「住所」も確定するので別テーブルに分離。
これから勉強すること
ボイスコッド正規化
第4正規形
第5正規系