アプリ版:「スタンプのみでお礼する」機能のリリースについて

正規形を答える問題で悩んでいます。

次のような問題です。
属性{A,B,C,D}をもつ表に対して、次の二つの従属性が見られる。
(1)A,B → C,D
(2)C→B
この表の正規形は何か。

第2正規形か第3正規形で迷っています。
第2正規形の条件を満たす理由は
候補キーは{A,B},{A,C}で
どの候補キーも非キー属性に対して完全関数従属だからです。

その後、非キー属性が候補キーに対して推移的に関数従属していないかを考えたのですが、「おそらくしていない…」というくらいで第3正規形であると確証ができません。

確証ができない理由が一つあります。
実際の業務でこのテーブルをつくるときに、
{A,C}→D, C→Bを利用して、 
ACD とCBの二つの表に分けると思うからです。
うまく分けられるってことは第2正規形だからかな…と考えてしまいます。

アドバイスいただけないでしょうか…
よろしくお願いします。

A 回答 (1件)

答えは、第3正規形です。



この表には、部分関数従属性も、推移関数従属性も持たないからです。
この形は、ボイスコッド正規形で表せます。

なぜ、{A,C}→D, C→Bになると思ったのですか?

参考URL:http://www.atmarkit.co.jp/fdb/rensai/db_enginer0 …

この回答への補足

早急な回答ありがとうございました。
第3正規形ですよね。

{A,C}→D,C→Bになると思った理由ですが、
AとCが決まれば、C→BよりBが決まるため、
{A,C}→Bが言えて、仮定の{A,B}→C,Dより
AとBが決まれば、Dが決まるので、
{A,C}→{A,B}→Dが成立するからです。

紹介していただいたURLの内容を読んでわかったのですが、
私がABCDをACDとCBに分けたのは ボイスコッド正規形に
分解したことと同じことのようです。
ボイスコッドについて勉強不足だったため、上記のような疑問
が生じたのです。

回答ありがとうございました。
参考URLまでつけていただき、大変助かりました。

補足日時:2008/11/19 17:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!