- ベストアンサー
正規化について
データベースを勉強していて、正規化についての問題についてお聞きしたいです。とりあえず問題をまず書いてその後自分の考えたことを述べます。以下問題です。 いま表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)
- 専門家の回答
お礼
ありがとうございます。 >第二正規形を満たした時点で第三正規形が自動的に成立するといいう >のもなんだか、すごく気味が悪いです。 そうなんですか・・・。実際に出題された試験問題で、しかも前年の問題でも似たような形で出題されているのですよ。 いまいち腑に落ちないですね。ともあれご丁寧にありがとうございました。