我在确定以下关系的MVD时遇到了一些困难
R=(A,B,C,D,E) where A->>B and B->>D
给出以下元组:
(0,1,2,3,4) and (0,5,6,7,8)
我想确定可能完成关系的all
元组。
据我了解,如果元组t(A)=u(A)
必须有第三元组v(A)=t(A)
和v(B)=t(B )
第四元组w(A)=t(A)
和w(B)=u(B)
所以我试过了:
A B C D E
t 0 1 2 3 4
u 0 5 6 7 8
v 0 1 2 3 4
w 0 5 6 7 8
但是,我想我可能会错过一些东西(也就是传递性)。因为元组中没有元组(v
和w
):
1.(0,1,2,7,4)
2.(0,1,2,3,8)
3.(0,1,6,3,4)
4.(0,5,2,7,8)
其中至少有一个元组必须为true。我只是不能把它放在一起,并希望任何帮助!关于及物性,我发现A->>B
和B->>D
所以A->>(D-B)
或A->>BD
,但我无法做到正确。
答案 0 :(得分:0)
在您的示例中,对于给定的MVD,使用两个元组作为示例会产生误导:
(0,1,2,3,4) and (0,5,6,7,8)
因为从示例中无法说明,如果某个D
有B
的多个值(您有两个不同的B
值),那么就可以是其他多值依赖项,因为C
和E
的值不同,但A
的值相同。
为了更清楚地表明这一点,我将尝试用不同的,更具体的数据来重新描述你的例子。假设您的关系是关于多站点公司的,属性是:
A company name (N) (a company has a single name)
B site (S) (a company can have multiple sites)
C website (W) (a company has a single web site)
D phone number (P) (a company site can have multiple phone numbers)
E CEO (E) (a company has a single CEO)
因此,我们可以将模式重写为C(N,S,W,P,E)
,N->>S
和S->>P
,如您的示例所示。这只是意味着每个公司可以有多个站点,每个站点都有几个电话。
假设公司N1
有两个网站S1
和S2
,以及每个网站的电话号码:P11
和网站P12
网站S1
的{1}}和P21
以及P22
。因此S2
中必须至少包含以下两个元组:
C
但是,就像你的例子一样,只知道这两个元组并没有提供任何关于其他元组存在的其他信息(这是因为每个元组只有两个网站只有一个(单个)不同的电话现场。
相反,从具体示例的描述中,我们知道在 (N1, S1, W1, P11, E1) and (N1, S2, W2, P21, E1)
中所有以下元组必须存在:
C
最后,关于及物性,你说的是N S W P E
N1 S1 W1 P11 E1
N1 S2 W1 P21 E1
N1 S1 W1 P12 E1
N1 S2 W1 P22 E1
和A->>B
可以推断出B->>D
但不 A->>(D-B)
(这是完全不同的事情!)