generated at
なぜ正規化するのか
データの整合性を保つため
同じデータはを2重に持たない=2重に持たないので矛盾した事実が存在することはない=1カ所変更すればよい
>重複とは「事実の記録が重複している」
真実のソース source of truthは通常正規化されている
導出データシステム
オリジナルのソースから再生成できる
キャッシュ
非正規化 denormalizedされた値、インデックス、マテリアライズドビュー

第1正規形
リレーションがスカラ値のみで構成されている=反復列が含まれていない
=リレーショナル演算で扱える形になっている
更新時異常が生じる可能性がある
顧客名商品名数量単価金額
A商店テレビ3198000594000
Bマートテレビ101980001908000
Bマート洗濯機559800299000
C社餅つき器12980029800
更新時異常
タップル挿入時異常
電子レンジを加えるとき -, 電子レンジ, -, 74800, -
電子レンジが74800というデータを挿入できない
タップル削除時異常
C社からの注文がキャンセルになったとき削除すると、 餅つき器, 29800 という情報が消える
タップル修正時異常
1
テレビの単価が変更になったとき2つのタップルを変更しなければならない
2
C社の注文が餅つき器からテレビになったとき、餅つき器の価格の情報が失われる
リレーションを分割する
第2正規形
第1正規形かつ主キーに依存する列のみを含んでいる
まだ更新時異常が生じる可能性がある
社員番号社員名量給与所属勤務地
0650鈴木一郎50K55神奈川
1508浜崎アユ40K41東京
0231宇多田ヒカル60K41東京
2034別所幸治40K55神奈川
2100森虎丸40K58静岡
更新時異常
タップル削除時異常
2100 森虎丸 40 K58 静岡 が削除されると - - - K58 静岡 の情報がなくなる
タップル更新時異常
1
K41が東京から千葉にうつったとする
2
森がK55の神奈川勤務になったとき K58 静岡 の情報が消える
所属 -> 勤務地の関数従属性が存在する
推移的関数従属性である
第3正規形
第2正規形かつ過渡的にも依存していない列のみが含まれている
意味的制約としての関数従属性が保存されない場合ある
第4正規形
第5正規形

どこまで正規化すれば良いか
>「第3正規化止まりにするのが良いのではにか」という共通認識ができている。
経験則から


サロゲートキー