- ベストアンサー
正規化について
データベースを勉強していて、正規化についての問題についてお聞きしたいです。とりあえず問題をまず書いてその後自分の考えたことを述べます。以下問題です。 いま表R(A,B,C,D)があり、 Aの列の値が(a1,a2,a3,a4,a4) Bの列の値が(b1,b2,b1,b2,b3) Cの列の値が(c1,c2,c1,c3,c4) Dの列の値が(d1,d2,d1,d2,d3) となっている。 1.このとき、表Rで成り立つ関数従属を選べ。 (1)A→CD(2)B→D(3)BC→A(4)AB→CD(5)D→A 2.表Rは第一正規形であるか? 3.表Rは第二正規形であるか? 4.表Rは第三正規形ではないが、この表Rを第三正規形になるような二つの表に分割せよ。 1.について 考え方がいまいちわからないのですが、自分で考えてみて、正解は(2)のB→Dかなと思ったのですが、どうやら正解は(2)と(4)っぽいのです。 これはどのように考えたらよいのでしょうか? 社員番号、とか社員名とかいう具体的な値ならまだわかるのですが、a1とかb1とかいう値のときにどのように考えたらいいのかがわかりません。 2.について これは第一正規形でよろしいですよね? 3.について これはもし1.の正解が(2)のB→Dであった場合、R1(A,B,C),R2(B,D)と分割できるので第二正規形ではないと考えました。答えはわかりません。 4.について 第三正規形と第二正規形の違いがわからないのでぜんぜんわかりません。 以上についてわかる方いらっしゃいましたら教えてください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なんだか、設問が無理っぽい気がするのは、PED02744同感です。 無理を承知で解くならば・・・ おそらく、設問1は消去法で解くほかないんでしょうね。 まず、(1)はa4の値の時矛盾するので×。 (2)は、矛盾なし。 (3)は、b1・c1の時矛盾します。 (4)は、矛盾なし。 (5)は、d1の時とd2の時に矛盾します。 というわけで、正解は2と4なのかな・・・(意味が考えられないから与えられたデータで矛盾があるかどうかを追及するよりしょうがないでしょう。) というわけで、AB→CDと、B→Dの従属関係があることがわかったことにします。というか、この設問(1)で提起された以外の従属関係は「ない」と解釈しないとこの問題解けないような気がします。 第一正規形は間違いありません。 第二正規形に関しては、候補キーABの真部分集合であるBに対して、Dが従属しているので、候補キーABに対して、非候補キーのDは完全従属となっていません。よって、第二正規形ではないことになります。 第二正規形でないとすれば、当然第三正規形でもありません。 ところで、kireinooneさんのかかれるように、R1(A,B,C) R2(B,D)とすれば、第二正規形は満たします。それと同時に、推移則を適用できるパターンも存在しなくなるので、(推移則を適用するには、最低でも3カラム必要ですが、R1の候補キーは(A,B)となるので、事実上2カラムとなる)第三正規形も同時に満たす。ということになってしまいます。 でも、これって、第2正規形を満たした時点で第3正規形が自動的に成立するというのもなんだか、すごく気味が悪いです。問題としてほんとに成り立ってるのかしら?という不安を感じます。
その他の回答 (1)
- PED02744
- ベストアンサー率40% (157/390)
う~ん。。設問が悪い気がしますね。 主キー候補が任意・データ個数が5つ・カラム数が4つ というのでは、 正確な判断がつかないですね。 もし、1.の答えに(4)が含まれる事が確定しているとしたら、主キーとして(A,B)にする事を考えていると思います。 そうなると、 1.について。 Bが決まれば、Dが決まるので、B→Dがいえますね。 (A,B)が決まれば(C,D)が決まるので、(A,B)→(C,D)もいえると思います。 ただし、このとき、(A,B)が決まったとき、一意の(C,D)とならないので正規化不足とわかります。 その他、詳細は参考URLをご参照ください。 ただ言える事は、設問にするには情報が足らないと思われることです。
お礼
ありがとうございます。 実際に出題された試験問題なので問題に不備があるとは考えにくいのですが、ひょっとして僕の書き方が悪かったのでしょうか・・・? 実際の問題では表にして書いてあります。 参考URLは既知でした。そのサイトでは具体的なデータを使って考えているのでわかるのですが、a1とかb1とかいう値になったときにどう考えているのかわからないんです。
お礼
ありがとうございます。 >第二正規形を満たした時点で第三正規形が自動的に成立するといいう >のもなんだか、すごく気味が悪いです。 そうなんですか・・・。実際に出題された試験問題で、しかも前年の問題でも似たような形で出題されているのですよ。 いまいち腑に落ちないですね。ともあれご丁寧にありがとうございました。