データベース
正規化
Normalization
概要
データの重複や矛盾を排除するために、テーブル構造を段階的に最適化する手法。
詳細解説
正規化は、リレーショナルデータベースのテーブル設計において、データの冗長性を排除し、更新時の異常(挿入異常・更新異常・削除異常)を防止するための手法である。段階的に第1正規形から第3正規形へと進める。
第1正規形は繰返し項目の排除、第2正規形は部分関数従属の排除、第3正規形は推移的関数従属の排除を行う。実務では第3正規形まで行うことが一般的で、性能上の理由からあえて非正規化することもある。
試験対策のポイント
- 暗記必須:正規化は重複・矛盾(更新時異状)を排除する手法。第1正規形(繰り返し項目の排除)、第2正規形(部分関数従属の排除)、第3正規形(推移的関数従属の排除)の順。
- 頻出ポイント:第2正規形は主キーの一部に従属する属性を分離、第3正規形は主キー以外の属性に従属する属性を分離する。関数従属の理解が鍵。
- ひっかけ注意:正規化を進めるとテーブルが分割され整合性は高まるが、結合処理が増え検索性能は低下しうる。あえて非正規化することもある。
- 関連づけ:主キー・外部キー・参照整合性と一体で理解する。
事例・具体例
顧客名と住所が注文テーブルに直接含まれていると、顧客情報の変更時に全注文レコードを更新する必要がある。正規化により顧客テーブルを分離し、この問題を解決できる。