Normalization
Normalization
Normalization(正規化)とは
ひとことで
データベースの表を、同じデータが何か所にも重複して記録されないように分割・整理すること。重複をなくすことで、データを更新したときに一部だけ書き換え忘れるといった矛盾(不整合)を防ぐ。
たとえると
クラス名簿のすべての行に担任の先生の電話番号を書いていると、番号が変わったときに全行を直さなければなりません。担任の情報は別の表に1回だけ書き、名簿にはクラス名だけ書いておけば、直すのは1か所で済みます。
現場ではこう使う
小さな通販サイトを運営する会社員は、注文の表に顧客の住所を毎回書き込んでいました。顧客が引っ越したとき、古い注文の行の住所だけ直し忘れて、どれが正しいかわからなくなりました。そこで表を正規化し、「顧客表」と「注文表」に分けて、注文表には顧客番号だけを記録するようにしました。
試験のポイント
EXAM POINT「データの重複をなくす」「更新時の不整合を防ぐ」と出てきたら正規化です。第1正規形は繰り返しの項目をなくした形、第2・第3正規形は主キーとの関係をもとに、ほかの項目に従属する項目を別の表に分けた形です。正規化で分割した表は、主キーと外部キーを使ってつなぎ直して利用します。
混同しやすい用語との違い
- Primary Key表の1行を一意に特定する項目。正規化では表を分けるときの基準になる
- SQLデータベースを操作する言語。正規化は表の設計の考え方