関数従属性  部分集合

柴犬さん  
(No.1)
①関数従属性(反射律)がよくわかりません。

BがAの部分集合のとき
A→B(Aが決まるとBも決まる)はOK
B→AはNGとのことですがなぜでしょうか?

逆じゃないのではと思います。
例えば
A(001,002,003,004)
B(002,004)
のときは、Bが決まれば確実にAが決まりますが
Aが決まっても必ずしもBは決まらないと思います。




下記の問題でアが違う、エは正しいのはわかるのですが、イとウがなぜ違うのかわかりません。

関数従属に関する記述のうち、適切なものはどれか。ここで、A、B、Cはある関係の属性の集合とする。

(H25春DB午前II問2)

ア  BがAに関数従属し、CがAに関数従属すれば、CはBに関数従属する。
イ  BがAの部分集合であり、CがAに関数従属すれば、CはBに関数従属する。
ウ  BがAの部分集合であれば、AはBに関数従属する。
エ  BとCの和集合がAに関数従属すれば、BとCはそれぞれがAに関数従属する。
2021.01.10 18:37
関数従属さん 
DB ブロンズマイスター
(No.2)
①  関数従属性を考える際にはA,BにはDBの行や値ではなく、DBの列をイメージしてもらうとよいかと思います。
    BがAの部分集合の場合の例として、A={社員ID,社員名}、B={社員名}とすると
    社員ID,社員名の組の値が決まれば、社員名の値が一意に決まります。(A→B)
    逆に社員名の値が決まっても、社員ID,社員名の組の値は(同姓同名等があるため)一意には決まりません。(B→Aは成り立たず)

②  イ:①の例に加え、C={性別}とすると、CはAに関数従属(A→C)が成り立ちますが、
        CはBに関数従属(B→C)は成り立ちません。(社員名のみから性別は決まらない)
    ウ:①により、BがAの部分集合の場合はAはBに関数従属(B→A)は成り立ちません。
2021.01.10 22:09
柴犬さん  
(No.3)
説明ありがとうございます!
どんな値が入るかで考えていましたが、列で考えればいいのですね。

とてもわかり易かったです。
2021.01.11 11:11

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop