データベースの正規化のサンプル

データベースの正規化のサンプルです。

目次

サンプル 非正規化
  第1正規化
  第2正規化
  第3正規化

非正規化

上記表は、商品番号や商品名などの項目が横に繰り返しで並んでいます。
正規化されていない状態で非正規化と呼ばれます。

 

第1正規化

非正規化の表から商品番号や商品名などの項目の横の繰返しをなくしました。
また、行を特定できるように列として行番号を追加しました。
受注番号と行番号のセットで主キーです。
その結果、行が増えています。
列の項目である合計は、個数と単価から計算できるので導出項目と呼ばれ原則削除しますが設計によっては削除しない場合もあります。

第1正規化された状態です。

 

第2正規化

主キーは、受注番号と行番号です。
その主キーの一部である受注番号で値が決まる顧客番号と顧客名を別テーブルにしました。
第2正規化された状態です。

 

第3正規化

主キー以外の項目である顧客番号で値が決まる顧客名を別テーブルにしました。
また同じく主キー以外の項目である商品番号で値が決まる商品名を別テーブルにしました。
第3正規化された状態です。

参考
https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96

関連の記事

SQL トランザクション分離レベルの概要

△上に戻る