データベースの正規化は、データの重複を排除し、データの整合性を保つためのプロセスです。以下は、正規化の主な手順と各段階の概要です:
1. 非正規形 (Unnormalized Form, UNF)
- データが整理されていない状態。
- 繰り返し項目や複数の値が1つのセルに含まれている場合があります。
2. 第一正規形 (1NF)
- 目的: 繰り返し項目を排除し、各セルに単一の値を持たせる。
- 手順:
- 繰り返し項目を別のテーブルに分割。
- 各行が一意に識別できるように主キーを設定。
3. 第二正規形 (2NF)
- 目的: 部分関数従属を排除する。
- 手順:
- 主キーの一部に依存する列を別のテーブルに分割。
- 主キー全体に依存する列のみを残す。
4. 第三正規形 (3NF)
- 目的: 推移的関数従属を排除する。
- 手順:
- 主キー以外の列に依存する列を別のテーブルに分割。
- 主キーに直接依存する列のみを残す。
5. ボイスコッド正規形 (BCNF)
- 目的: 主キー以外の候補キーによる関数従属を排除する。
- 手順:
- 候補キーに依存する列を別のテーブルに分割。
6. 第四正規形 (4NF)
- 目的: 多値従属を排除する。
- 手順:
- 多値従属が存在する場合、それを別のテーブルに分割。
7. 第五正規形 (5NF)
- 目的: ジョイン従属を排除する。
- 手順:
- テーブルを分割してもデータの再構築が可能な状態にする。
正規化を進めることで、データの一貫性が向上し、更新や削除時の問題を防ぐことができます。ただし、過度な正規化はパフォーマンスに影響を与える場合があるため、実際の要件に応じたバランスが重要です。