参考はWikipedia。
中央寄せ太字がキー。
第一正規形
スカラ値のみをもつ。
第一正規形ではない例
ブログID | タイトル | 内容 | タグ |
---|---|---|---|
1 | はじめまして | こんにちは | [一般] [生活] |
タグに複数のデータがあるので第一正規形ではない。
第二正規形
X → A のとき、次のどちらかを満たす
- Xはキーの真部分集合ではない
- Aがキーの構成要素
第二正規形ではない例
商品番号 | 顧客番号 | 営業社員番号 | 販売価格 |
---|---|---|---|
A001 | 1001 | S0010 | 2,500 |
A002 | 1001 | S0010 | 3,500 |
顧客番号 が決まれば 営業社員番号 が決まるとき、第二正規形ではない。
1. 顧客番号はキーの真部分集合である
2. 営業社員番号はキーの構成要素ではない
つまり、キーの一部から(候補)キーではない項目に従属性があったらダメ。
A002 の行で営業社員番号だけ変更すると、顧客番号1001 => S0010 の関連が崩れる。
通常、第三正規形にするまでの中間形式として表れる。第二正規形にあまり意味はない。
第三正規形
X → A のとき、次のどちらかを満たす
- Xはキー
- Aがキーの構成要素
第三正規形ではない例
顧客番号 | 届け先ラベル | 郵便番号 | 都道府県 | 住所 |
---|---|---|---|---|
001 | 自宅 | 107-0052 | 東京都 | 港区赤坂 |
郵便番号 が決まれば 都道府県 が決まるとき、第三正規形ではない。
1. 郵便番号はキーではない
2. 都道府県がキーの構成要素ではない
ただし以下を満たすので第二正規形ではある。
1. 郵便番号はキーの真部分集合ではない
つまり、第二正規形ではキー以外の従属性は認められたが、第三正規形になるとキー以外でもダメ。
中途半端な関連がないのでデータ変更時に矛盾が起こらない。なのでデータベースの正規化は第三正規形までやれとなる。
第二正規形だと、例えば都道府県だけ変更すると関連に矛盾が起こる。
以降の正規形については http://qiita.com/nishimura/items/b0d722c021236d932d95 こちら。