2016-12-08 5 views
2

次のインスタンスがどの依存関係を満たしているかを知る方法は誰にも分かりますか?グラフから関数の依存関係を調べる

私はそれがB-> A、B-> C、A-> C、C-> A(およびその他の暗黙の依存関係)を満たす知っ
A B C 
1 0 1 
1 1 1 

が、私はどのようにの概念を把握することができていませんこのチャートからそれを見るだけです。どのように私はそれを読んで、それが0と1だけで満足するものを決定することになっていると誰が説明することができますか?

よりよく理解するために別の例を追加する:B = 0、B = 2、あなたはBをベースことができる唯一の行があるので

A B C 
1 0 1 
1 1 1 
2 2 1 

を - >ユニーク一つにのみ1行分のオフA値。同様に、B = 0かつA = 1の場所は1つしかないので、0のBの値がないので自動的に保持されます。

+0

あなたはこれをどこから見つけましたか? –

+0

私は情報とデータベース管理のクラス@ MikeSherrill'CatRecall 'の私の原則のために取らなければならなかったクイズで与えられた質問でした – bkennedy

+1

あなたの教科書には何かありますか?あなたはどの教科書を使っていますか? –

答えて

1
このような質問に答えるの道はのは、それらX を呼ぶことにしましょう、列のすべての可能な適切なサブセットを見ている

、X 、...、そうで(単一の列で最初に始まりますこの場合、我々は、Xで始まる = A、X = B、X = C、およびその他の列が同じ値を有する、X Iに同じ値を、参照しよう。

たとえば、Aで始まって、A = 1の場合、Bは2つの異なる値を持つことがわかります。thi sは、A には依存しないことを意味します(つまり、関数依存の定義であるAの値と同じ値ではありません).C に同じ値(1)を持ちます。この関係のインスタンスがA→Cを満たすと仮定します。

Bを見ると、すべての値が異なることが分かります。したがって、他のすべての列はそれに依存し、B→A、B→ C.最後に、Cの分析では、Cの値が等しいときにAの値だけが等しいので、C→Aとなることがわかります。

属性のペアを考慮せずにAB、AC 、BCである。この単純なケースでは、すべての属性がdある種の依存関係が存在することを意味するので、決定子としての属性の集合との依存関係は、すでに見つかった依存関係によって暗示される。特定のインスタンスで

要するに

、依存関係のXかどうかを知るために - 、我々はチェック> Yホールドかどうか: をXの全ての値が異なっている場合、依存関係の把握を。繰り返し値を持つ行がある場合、Xの値が同じである各行について、Yの値が常に同じであれば、依存関係は成立します。ここ

は別の例である:この場合

A B C 
1 2 2 
0 3 3 
1 2 4 
2 2 4 

]→[B?はい、A(1)と同じ値を持つ2行(1番目と4番目)であり、両方の行でBの値が等しい(2)ためです。 A→Cですか?いいえ、Cは1行目と4行目に2つの異なる値を持つためです。 B→A? Bは同じ値(2)を持つ3つの行を持ち、Aは同じ行(1と2)で異なる値を持つため、いいえ。

+1

FD X - > Yが*の場合の定義を* * *開始した場合、これは改善されます。つまり、あなたの要約を引用して "Xの同じ値を持つ各行について、Yの値は常に同じです"。 (後で、Xのすべての値が異なっていれば、従属関係が成り立っていれば、あなたの結論を正当化することができます。) – philipxy