目次
テーブル正規化とは、データベースの冗長性と不整合を防ぐために、テーブル構造を整理・分割する設計手法です。第一〜第三正規形までが基本で、段階的にデータの整合性と効率性を高めます。
🧩 正規化の目的
データの重複を排除:同じ情報を複数箇所に持たないようにする
更新・削除の整合性を確保:一箇所の変更で済むようにする
検索効率の向上:構造が明確なため、クエリが簡潔になる
📐 正規化の段階と特徴
🧠 具体例(社員とプロジェクト)
非正規形(1NF違反)
社員ID | 氏名 | プロジェクト
1 | 田中太郎 | A, B
2 | 佐藤花子 | C
→ 1つのセルに複数の値が入っている
第1正規形(1NF)
社員ID | 氏名 | プロジェクト
1 | 田中太郎 | A
1 | 田中太郎 | B
2 | 佐藤花子 | C
第2正規形(2NF)
プロジェクト名がプロジェクトIDに依存している場合、プロジェクト情報を別テーブルに分離
第3正規形(3NF)
部署名が部署IDに依存している場合、部署情報を別テーブルに分離
✅ 正規化のメリット
更新ミスの防止:一箇所の変更で済む
ストレージ効率の向上:重複データが減る
クエリの明確化:JOINで必要な情報を取得しやすくなる
より高度な正規形(第4〜第5、ボイスコッド正規形など)もありますが、業務システムでは第3正規形までで十分なことが多いです。
必要であれば、実際のテーブル構造をもとに正規化の設計支援もできますよ。