Database Normalization (正規化)
DB 正規化
- データ損失や不要な情報の導入なしに、データの一貫性とデータ重複を最小化し、最大限のデータ安定性を確保する安定したデータ構造へ変換するため、1 つのテーブルを 2 つ以上に分離する作業である。
DB 正規化の目的
- データ整合性の維持
- データ保存に必要な保存領域を最小化し、データの挿入、更新、削除に伴う異常を除去する。
- データ構造の安定性を最大化するためである。
正規化過程
- 第1正規化
- 第2正規化
- 第1正規形を満たし、主キーではない属性が主キーに完全関数従属するように分解する。
- ここで完全関数従属とは、主キーの部分集合が他の値を決定しないことを意味する。
- 第3正規化
- 第2正規形を満たし、主キーではない属性が主キーに直接従属(非推移的従属)するように分解する。
- ここで推移的従属とは A->B->C が成立することであり、これを A,B と B,C に分解することが第3正規形である。
- BCNF 正規化
- 第3正規形を満たし、関数従属性 X->Y が成立するとき、すべての決定子 X が候補キーになるように分解する。