如何确定多值依赖MVD(传递规则)?

时间:2015-07-26 20:01:05

标签: database normalization

我在确定以下关系的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

但是,我想我可能会错过一些东西(也就是传递性)。因为元组中没有元组(vw):

   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->>BB->>D所以A->>(D-B)A->>BD,但我无法做到正确。

1 个答案:

答案 0 :(得分:0)

在您的示例中,对于给定的MVD,使用两个元组作为示例会产生误导:

 (0,1,2,3,4) and (0,5,6,7,8) 

因为从示例中无法说明,如果某个DB的多个值(您有两个不同的B值),那么就可以是其他多值依赖项,因为CE的值不同,但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->>SS->>P,如您的示例所示。这只是意味着每个公司可以有多个站点,每个站点都有几个电话。

假设公司N1有两个网站S1S2,以及每个网站的电话号码: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)(这是完全不同的事情!)