🌊
テーブルの正規化
非正規化(正規化されていない)状態
第1正規化
- 計算して表示できるものは削除(上記の金額フィールド)
- 繰り返し部分(上記赤枠部分)を分離し、両方のテーブルを関連付けるため受注番号を設ける
第1正規化が終わった状態
第2正規化
複合主キー({受注番号・商品番号})がある受注明細テーブルに注目して分離する
商品番号と主キーとした別テーブル(商品番号・商品名・単価)に分離し、両方を関連付けるため商品番号を設ける
第2正規化が終わった状態
<補足>
- 関数従属→例えば商品番号が決まれば商品名も決まることを指す
- 部分関数従属→{受注番号・商品番号}の一部である商品コードに商品名、単価は関数従属している
第3正規化
正規化を行っていない受注テーブルに注目する
得意先番号を主キーとした以下の2つの別テーブルに分離し、両方を関連付けるための得意先番号と担当営業番号を設ける
- 得意先番号・得意先氏名
- 担当営業番号・担当営業氏名
第3正規化が終わった状態
<補足>
推移的関数従属
受注番号が決まれば得意先番号が決まり、得意先番号が決まれば担当営業番号が決まるので、結果的に受注番号は担当営業番号が決まる関係のこと
Discussion