正規化
読み
せいきか
意味
- リレーショナルデータベース設計でデータの冗長性を排除し更新異常を防ぎデータ整合性を保つための体系的な手法
- 第1正規形から第5正規形までの段階があり実務では第3正規形までが一般的で各段階で特定の問題を解決する
- データを適切なテーブルに分割して重複を排除するがパフォーマンス要件によっては意図的に非正規化することもある
比喩
図書館の整理整頓のようなもの。同じ本を複数箇所に置かず一箇所にまとめて管理し在庫管理を効率化する。
語源
Normalization = 正規化・標準化。数学の正規形(Normal Form)から来ており標準的な形式に変換する意味
例文
- 第1正規形で繰り返し項目を排除し第2正規形で部分関数従属を解消して第3正規形で推移的関数従属を除去した
- ユーザーテーブルと注文テーブルを正規化して分割しユーザー情報の変更が注文履歴に影響しないようにした
- データベーステーブルを第3正規形まで正規化したがパフォーマンス改善のため一部を意図的に非正規化した
よくある勘違い
- 正規化すれば常に良いと思うこと → 過度な正規化はJOIN増加でパフォーマンス低下を招く
- 正規化と非正規化を知らずに設計すること → データの重複や更新異常が発生する
- 第3正規形が最高だと思うこと → 第4・第5正規形もあるが実務では第3正規形で十分なことが多い