数据库:无损分解和自然连接

时间:2014-03-16 13:33:05

标签: mysql database functional-dependencies natural-join

我回答的问题是:

  

考虑使用FD A - >的 R(A,B,C)。乙。提供 r R 的虚拟实例,以便在关系 R1(A,B)上投影 r 时和 R2(B,C)然后再次加入 R1 R2 ,我们没有得到相同的实例 r

我想不出会发生这种情况。由于B依赖于A并且两个表都将加入B值,因此自然连接是否总是相同?

实施例

r1 = (1, 4, 6)
r2 = (2, 6, 4)

R1:  A | B     R2:  B | C
    ---|---        ---|---
     1 | 4          4 | 6
     2 | 6          6 | 4

R:  A | B | C
   ---|---|---
    1 | 4 | 6
    2 | 6 | 4

1 个答案:

答案 0 :(得分:0)

正如@ErwinSmout所指出的那样,第一个例子是不正确的。 如果我理解正确C不依赖于A和B,所以给出r如下:

<击>
r1 = (1,4,6)
r2 = (1,4,7)

 A | B | C
---|---|---
 1 | 4 | 6
 1 | 4 | 7
 1 | 4 | 6
 1 | 4 | 7

将它们重新加入后,我们会得到双倍的行。也

多个A可以具有相同的B,因此您最终会得到不正确的值。

r1 = (1,4,6)
r2 = (2,4,7)

 A | B | C
---|---|---
 1 | 4 | 6
 1 | 4 | 7
 2 | 4 | 6
 2 | 4 | 7