LoginSignup
3
3

More than 5 years have passed since last update.

DBの正規化されていない例

Posted at

参考はWikipedia。
中央寄せ太字がキー。

第一正規形

スカラ値のみをもつ。

第一正規形ではない例

ブログID タイトル 内容 タグ
1 はじめまして こんにちは [一般] [生活]

タグに複数のデータがあるので第一正規形ではない。

第二正規形

X → A のとき、次のどちらかを満たす

  1. Xはキーの真部分集合ではない
  2. Aがキーの構成要素

第二正規形ではない例

商品番号 顧客番号 営業社員番号 販売価格
A001 1001 S0010 2,500
A002 1001 S0010 3,500

顧客番号 が決まれば 営業社員番号 が決まるとき、第二正規形ではない。
1. 顧客番号はキーの真部分集合である
2. 営業社員番号はキーの構成要素ではない

つまり、キーの一部から(候補)キーではない項目に従属性があったらダメ。

A002 の行で営業社員番号だけ変更すると、顧客番号1001 => S0010 の関連が崩れる。

通常、第三正規形にするまでの中間形式として表れる。第二正規形にあまり意味はない。

第三正規形

X → A のとき、次のどちらかを満たす

  1. Xはキー
  2. Aがキーの構成要素

第三正規形ではない例

顧客番号 届け先ラベル 郵便番号 都道府県 住所
001 自宅 107-0052 東京都 港区赤坂

郵便番号 が決まれば 都道府県 が決まるとき、第三正規形ではない。
1. 郵便番号はキーではない
2. 都道府県がキーの構成要素ではない

ただし以下を満たすので第二正規形ではある。
1. 郵便番号はキーの真部分集合ではない

つまり、第二正規形ではキー以外の従属性は認められたが、第三正規形になるとキー以外でもダメ。
中途半端な関連がないのでデータ変更時に矛盾が起こらない。なのでデータベースの正規化は第三正規形までやれとなる。

第二正規形だと、例えば都道府県だけ変更すると関連に矛盾が起こる。

以降の正規形については http://qiita.com/nishimura/items/b0d722c021236d932d95 こちら。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3