fc2ブログ
 

Technology へようこそ
ここは技術者の「経験」と「ノウハウ」のブログです


2005年11月10日

正規化

正規化とは、「データ構造についてデータの冗長性を少なくし、かつ更新不整合が起こらないよう
にしていく作業」のことです。
なんとなくこなしているDB設計ですが、理論を勉強しはじめると結構深いものなのです。

正規化には6つの種類があり、それぞれの正規形は前者を包含する関係になっています。

(1)第1正規形
表において、属性の値として繰り返しなどの集合や複合値を持たない表のこと。

(2)第2正規形
表が第1正規形であり、かつすべての非キー属性が主キーに対して完全関数従属である場合の表のこと。

(3)第3正規形
第2正規形であり、かつすべての非キー属性が推移的に関数従属でない表のこと。

(4)ボイスコッド正規形・・・

(5)第4正規形・・・

(6)第5正規形・・・

などと言ってますが、(4)から(6)にかけてはほとんど使用しないので(1)から(3)を覚えていれば
実際の仕事には差し支えないのですが、情報処理試験(DB)ともなるとそうはいきません。
実際、午後Ⅰの問題で「どの正規形か答えよ」-「答え:第5正規形」というのがありました。

正規形といえども難しく考える必要はなく、要するに「主キー」はどれか?がわかれば正規化できる
はずなのです。業務的な制約などで自然に「主キー」は決まってきますから、おのずからテーブル
分割を行い、主要なマスタを作成し、トランを作成し・・・・この作業の繰り返しでDB設計はできて
しまったりするのです。

私の場合、第3正規形まで分割するタイミングでわざと多めに冗長な部分を残すようにします。
このへんは経験とセンス・・・あまり無いですが・・・。


この記事に対するコメント


この記事に対するコメントの投稿














管理者にだけ表示を許可する



この記事に対するトラックバック
トラックバックURL
http://comfair2.blog24.fc2.com/tb.php/46-fea16c43
この記事にトラックバックする(FC2ブログユーザー)