2005年02月24日

[ テクニカルエンジニア(データベース)/試験対策本 ]

データモデリング入門の第2正規形

参考図書の所でも書いているのだが,

業務別データベース設計のためのデータモデリング入門
 ⇒モデリングの入門用。この本の正規化論は試験の参考にしない方が良い。

理由はひとつ
 参考:capsctrl:BC正規化
 説明が足りない&内容があやしいと思ったからだ。

 ※この本で使われている「識別子」という単語はP42で,識別子=候補キーという注意書きがあるので,以下は,試験にあわせて候補キーと呼ぶ。

 具体的に言うと,
 関係 E1(d1,d2,d3,d4) において
 第2正規形の条件として,d1→d2とd2→d1を認めていない点である。 

 第2正規形の条件は,「すべての非キー属性が候補キーに完全関数従属すること」であり,候補キー間での関数従属は第2正規形の条件とは関係ない。
 さて,d1→d2とd2→d1というのは,候補キーを構成する属性間の関数従属であり,第2正規形の条件とは関係ないように見える。

 だからおかしい!!と,短絡的に思うかもしれないが,
 違和感を感じないだろうか?

 ここで冷静に・・・排除されている条件を再度確認しよう。
 {d1,d2} → {d3,d4} の条件下において
 d1 → d2 が,成立してはならない。と,なっている。

 成立した場合を考えると,関数従属は d1 → {d1,d2} → {d3,d4} であって,{d1,d2}はスーパーキーであるが候補キーではない。そもそも,d2を候補キーに含めている事が間違いとなる。
 つまりは,「候補キーとしているものが候補キーでなくなるから排除しなければならない。」と,いうことと思われるが,それならば『第1正規形の条件で既に排除』されていなければならない。

 書いていて混乱する。。。w

 {d1,d2}が候補キーで,d1 → d2が成立して良い第1正規形とは。。。?
 何なのだ。。。。あり得るのか???私は,あり得ないのではと思うのだが。。。
 
 有識者のご意見をいただきたい。

Posted by g@kko at 2005/02/24 12:21 | 個別記事表示 | コメントを見る (0) |
この記事をLicWikiに埋め込む:
コメント