📌 結論から理解する
第1正規形=「すべての属性値が原子値(単一値)であること」
第1正規形(1NF)の条件は「1つのセルに1つの値」です。
繰り返しグループ(配列・リスト)や複合値を持つテーブルは1NFを満たしていません。
1NF違反の例と修正
❌ 非正規形(1NF違反)
| 注文ID | 顧客名 | 商品リスト(繰り返し) |
|---|---|---|
| 2001 | 田中 | PC, マウス, キーボード |
| 2002 | 鈴木 | PC, モニター |
↓ 1行1商品に分解する
✅ 第1正規形(1NF)
| 注文ID🔑 | 行番号🔑 | 顧客名 | 商品名 |
|---|---|---|---|
| 2001 | 1 | 田中 | PC |
| 2001 | 2 | 田中 | マウス |
| 2001 | 3 | 田中 | キーボード |
| 2002 | 1 | 鈴木 | PC |
| 2002 | 2 | 鈴木 | モニター |
1NF後の問題点(2NFへの動機)
主キー:(注文ID, 行番号)の複合キーだと仮定
問題:顧客名は注文IDだけで決まる(部分関数従属!)
→ 顧客名が何行にも重複して入っている
→ 田中が改姓したら全行を更新しなければならない
→ 顧客名が何行にも重複して入っている
→ 田中が改姓したら全行を更新しなければならない
これを解消するのが第2正規形(2NF)です。
1NFの条件チェックリスト
- 各セルに値が1つだけ(配列・カンマ区切りNG)
- 各行が一意に識別できる(主キーが存在する)
- 繰り返しグループが存在しない
- 各列が原子値(それ以上分割できない)
試験では「1NFを満たしていないテーブルを指摘する」「1NFに変換したテーブルを書く」が出る。主キーも同時に問われるので注意。
🧠 確認クイズ
Q1. 第1正規形(1NF)を満たす条件として正しいのはどれか?
Q2. 非正規形から1NFへ変換する際に行うことは?
Q3. 1NFに変換後のテーブルで「顧客名が注文IDだけで決まる」という問題は何を示しているか?