フクの非日常

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DB 第○正規形であること。

関数従属、候補キー、部分関数従属、推移的関数従属は何のため?
それは、テーブルを正規化するために必要な考え方だった。
各正規形には段階があって、第○正規形を満たす条件があって、
それを満たしていなければ、その一つ手前の正規形である。
第一正規形を満たしていなければ、「正規化されていない」と分類される。
連邦軍の階級で言えば、「民間人」みたいなものか。

第一正規形を満たす条件は、「単一の値をとる」。
第一正規形にするには「繰り返しを排除する」。
などと解説されていますが。言葉ではさっぱりわからんですね。
(売上、明細1、明細2、明細3)といったテーブルは明細が繰りかえしでてきますので、
(売上、明細)にして、レコード3件にする、といったらなんとか理解の範囲。

第二正規形のための条件は、部分関数従属を排除する。
候補キーに関連する関数従属を外だしするといった感じ。

第三正規形のための条件は、推移的関数従属を排除する。
非キー項目の中で関数従属を排除すること。

反対に、テーブルを見て、このテーブルは今どこまで正規化されているか問われることも多い。
それに答えるには、テーブル内の関数従属を全て見つけ、候補キーを特定し、
関数従属は候補キーだけなのか、候補キーの一部が決定項になるのか、
非キー項目が決定項になるのかを調べると、第三正規形までが区別できる。

実際に正しく判断するのは難しいけれど、ここまではなんとか話についてきた。
こうやってテーブルを正規化できると、ようやくヒット一本打てた感じがする。
ボイスコッド、第四正規形、第五正規形などが続くらしい。
まだまだ大変。

コメント


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

 

トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。