⏱ 8分 ★★★★★ 頻出:高

第2正規形

部分関数従属を見つけて除去する手順を図解。before/afterで完全理解

第2正規形=「部分関数従属を除去する」

1NFを満たしつつ、主キーの一部にだけ依存する属性をテーブルから分離することで第2正規形(2NF)になります。

2NFは複合主キーを持つテーブルにのみ適用されます。主キーが1列なら自動的に2NF以上です。

2NF変換の手順(図解)

❌ 1NF(部分関数従属あり)
注文ID🔑商品ID🔑数量商品名単価
2001P0012ノートPC89,800
2001P0021マウス3,200
2002P0013ノートPC89,800
商品名・単価は「商品ID」だけで決まる(部分従属)→ 更新時にノートPCの単価を全行修正する必要がある
↓ 分離して2NFへ
✅ 2NF:テーブルを2つに分割
注文明細テーブル
注文ID🔑商品ID🔑数量
2001P0012
2001P0021
2002P0013
商品テーブル(分離)
商品ID🔑商品名単価
P001ノートPC89,800
P002マウス3,200

2NF変換の手順まとめ

2NFが問われる典型パターン:「複合主キーのテーブルで、一方のキーだけで決まる属性がある」→ 分離する。単一主キーのテーブルは自動的に2NFを満たす
🧠 確認クイズ
Q1. 第2正規形(2NF)の条件として正しいのはどれか?
Q2. 主キーが1列(単一主キー)のテーブルは、自動的に何NFを満たすか?
Q3. 注文明細テーブル(注文ID, 商品ID, 数量, 商品名)を2NFにするには?