本記事では、第1正規形から第3正規形までの正規化を紹介します。
実務で正規化をしていないとイメージしずらいので、何度もやって覚えようと思います。
元データ 第1正規形
顧客の1回の注文に対して、1枚の受注伝票が作成されます。顧客は1回の注文で1つ以上の商品を注文できます。
属性がすべて単一値なので、第一正規形であることが分かります。

第2正規形への正規化
第1正規形から第2正規形へは、候補キーの一部に部分関数従属している非キー属性を排除します。(別表に分けます)
元データで候補キーの一部に部分関数従属している非キー属性を考えます。
・受注番号 → 顧客コード
・受注番号 → 顧客名
・受注番号 → 受注日
→{受注日,顧客コード,顧客名,受注日}を別の表に分割します。
・商品コード → 商品名
・商品コード → 単価
→{商品コード,商品名,単価}を別の表に分割します。

第3正規形への正規化
第2正規形から第3正規形への正規化は、非キー属性は、いかなる候補キーにも推移的関数従属しないようにします。(推移的関数従属性を排除・別表に分けます)
受注番号 → 顧客コード → 顧客名となっており、顧客名が受注番号に推移的関数従属しているため、{顧客コード,顧客名}を別表に分割します。

以上、お読みいただきありがとうございました。