データの重複をなくし整合的にデータを取り扱えるようにDBを設計する
形式ばった用語が並ぶが、普通の考え方で十分データベース設計ができます
1.正規化の段階
各段階を経てデータは正規化されていく
第1正規形(first normal form 1NF)
関係がスカラ値のみを持つ
属性の値として繰り返しなどの集合や複合値を持たない表
スカラ値とは
単一の数値や値で表現される「大きさ」のみを持つ数値
第2正規形(second normal form 2NF)
関係が、第1正規形で、
すべての非キー属性が、すべての候補キーに対して完全関数従属する
完全関数従属とは
属性(X)の値を定めると、属性(Y)の値が位置的に定まるとき、
YはXに関数従属であるといい、X→Yと表記する
Xのいかなる真部分についても関数従属性が成り立たない場合、
Xが関数従属性を成り立たせる最小の属性集合である場合を
完全関数従属の状態という
Xのうちの真部分とはXが複数の部分に分割できる場合を考える
A、B、Yという属性があってB→Cであるときに、
AとBとの組み合わせをXとするとX→Yとなるが、
XのうちのBすなわちXの真部分と関数従属性が成り立つ
Yからみた場合、Aの部分については冗長な関係にある
第3正規形(third normal form 3NF)
関係が、第2正規形で、
非キー属性があるならば、全てが 候補キーに非推移的に関数従属する
ボイス・コッド正規形(Boyce/Codd normal form BCNF)
関係上に存在する自明でない全ての関数従属性の決定項が候補キー
第4正規形(fourth normal form 4NF)
候補キーではない属性への多値従属性をもった属性があってはならない
第5正規形(fifth normal form 5NF)
関係が第4正規形であり、
その関係に含まれる結合従属性の決定項が候補キーのみである
2.正規化と属性の変化

正規化の例
第一正規化:仕入先と入荷日・数量等のデータを正規化
繰り返し項目を持たず、導出項目の排除された表

第二正規化:商品表と入荷表に整理する
非キー属性は主キーに従属する、完全関数従属と呼ぶ


第三正規化:仕入先表と電話帳を追加する
項目同士で依存関係を持っているものを別テーブルにする
非キー属性がすべて主キーに完全関数従属し、
推移的関数従属性の排除された形式

