如何确定多值依赖MVD(传递规则)?
How to determine Multivalued Dependency MVD (transitive rule)?
我在确定以下关系的 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)
其中至少一个元组必须为真。我只是不能把它放在一起,如果有任何帮助,我将不胜感激!关于传递性,我发现 A->>B
和 B->>D
所以 A->>(D-B)
或 A->>BD
但我就是做不对。
在您的示例中,对于给定的 MVD,使用两个元组作为示例会产生误导:
(0,1,2,3,4) and (0,5,6,7,8)
因为没有办法说,从这个例子来看,如果某个 B
有多个 D
值(你有两个不同的 B
值)和可能还有其他多值依赖关系,因为给定 A
.
的相同值,C
和 E
的值不同
为了更清楚地展示这一点,我将尝试用不同的、更具体的数据来重新表述你的例子。假设您的关系是关于多站点公司的,并且属性是:
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
,如您的示例所示。这只是意味着每个公司可以有多个站点,每个站点可以有多个 phone。
假设公司 N1
有两个站点,S1
和 S2
,每个站点有 phone 个编号:P11
和 P12
用于站点 S1
,P21
和 P22
用于站点 S2
。因此至少以下两个元组必须存在于 C
:
(N1, S1, W1, P11, E1) and (N1, S2, W2, P21, E1)
但是,就像你的例子一样,只知道这两个元组并不能提供关于其他元组存在的任何其他信息(这是因为可能只有两个站点只有一个(单个)不同的 phone 每个站点。
相反,从具体示例的描述中,我们知道在 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)
但 不能 A->>BD
(完全不同!)
我在确定以下关系的 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)
其中至少一个元组必须为真。我只是不能把它放在一起,如果有任何帮助,我将不胜感激!关于传递性,我发现 A->>B
和 B->>D
所以 A->>(D-B)
或 A->>BD
但我就是做不对。
在您的示例中,对于给定的 MVD,使用两个元组作为示例会产生误导:
(0,1,2,3,4) and (0,5,6,7,8)
因为没有办法说,从这个例子来看,如果某个 B
有多个 D
值(你有两个不同的 B
值)和可能还有其他多值依赖关系,因为给定 A
.
C
和 E
的值不同
为了更清楚地展示这一点,我将尝试用不同的、更具体的数据来重新表述你的例子。假设您的关系是关于多站点公司的,并且属性是:
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
,如您的示例所示。这只是意味着每个公司可以有多个站点,每个站点可以有多个 phone。
假设公司 N1
有两个站点,S1
和 S2
,每个站点有 phone 个编号:P11
和 P12
用于站点 S1
,P21
和 P22
用于站点 S2
。因此至少以下两个元组必须存在于 C
:
(N1, S1, W1, P11, E1) and (N1, S2, W2, P21, E1)
但是,就像你的例子一样,只知道这两个元组并不能提供关于其他元组存在的任何其他信息(这是因为可能只有两个站点只有一个(单个)不同的 phone 每个站点。
相反,从具体示例的描述中,我们知道在 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)
但 不能 A->>BD
(完全不同!)