ホーム用語辞典 > 正規化

正規化とは?

正規化とは、データベースの表を、重複や矛盾が起きにくい形に整理する設計手法です。合言葉は「1つの事実は1か所に」。同じ情報をあちこちに持たないようにします。

ふつうは段階を追って進めます。第1正規形で1マス1値(繰り返しをなくす)にし、第2正規形で主キーの一部だけで決まる項目を分離、第3正規形で主キー以外から決まる項目を分離します。

正規化:重複を別の表に分けて「1つの事実は1か所に」 正規化前(1つの表) 注文・顧客住所 1 田中東京… 2 田中東京… 3 佐藤大阪… 同じ住所が何度も=重複・矛盾のもと 正規化 正規化後(表を分ける) 注文表 1 顧客A2 顧客A3 顧客B 顧客表 A 東京…B 大阪… 住所は顧客表に1か所だけ
図:重複する情報(住所)を別の表に分けて1か所にまとめる。更新時の矛盾を防げる

正規化されていないと、たとえば取引先の住所を複数行に持ってしまい、住所変更のときに一部だけ直し忘れて矛盾する(更新時異常)といった問題が起きます。正規化はこれを防ぎます。ただし分割しすぎると結合(JOIN)が増えて処理が重くなるため、性能とのバランスで、あえて崩す(非正規化)こともあります。

基本情報技術者試験では、第1〜第3正規形の判定、関数従属、更新時異常が定番です。

🔗 関連:データベース正規化をやさしく図解SQL入門トランザクション用語辞典トップ