2016-06-14 9 views
0

私はR(A、B、C、D)またはA - > Cは正しいですか?機能的依存性F = {AB-> CD、A-> B}またはA-> C

私は公理をamstrongによって発見Fの閉鎖を試してみてください。

AB->C (decomposition from AB->CD) 
AB->D (decomposition from AB->CD) 
AB->AB (reflexivity) 
AB->A (decomposition from AB->AB) 
AB->B (decomposition from AB->AB) 
A->A 
B->B 
AB->ABCD (Union) <- candidate key 

私はそれが私が行方不明何すべてではない感じ?また、A→Cは正しいと思います。なぜなら、AB→Cだから確信しているからです。

答えて

1

あなたはA → CAB → CDA → Bすることによって導出することができるかどうかを確認するには、2つの異なる方法があります:あなたは属性のセットの閉鎖を計算するために使用されるアルゴリズムで、属性Aの閉鎖を計算してみてください、と見ることができるのいずれかをC(簡単な方法)が含まれている場合や、Armstrongの公理を適用して証明することができます(より困難な方法)。

てみましょう最初のそれを簡単に行います。A+C含まれているため

A+ = A  (starting point) 
A+ = AB (by using A → B) 
A+ = ABCD (by using AB → CD) 

ので、我々はA → CF+に属していることが示されている、A → CAB → CDA → Bによって暗示されていることを言うのと同じです。

今度は、第二の方法を試してみましょう:これは非常に長いだろうので、あなたはおそらくを行うにはしたくないでしょう

1. A → B (given) 
2. AB → CD (given) 
3. A → AB (by 1. for enrichment, adding A both to left and right side of the dependency) 
4. A → CD (by 3. and 2. for transitivity) 
5. A → C (by 4. for decomposition) 

何、一方、Fの閉鎖を計算することです退屈な仕事...(それは指数関数的な仕事です!)。

0

AB-> CD(所与)
従って、
AB-> C、およびSO
AB-> D
(分解により)
A-> B(所与)
、A- > AB、増強によって
したがって、転移性により、A→C & A→D!

関連する問題