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

Mysql 数据库:无损分解和自然连接,mysql,database,functional-dependencies,natural-join,Mysql,Database,Functional Dependencies,Natural Join,我要回答的问题是: 考虑具有FD A-->B的R(A,B,C)。给出R的一个有效实例,这样当我们在关系R1(A,B)和R2(B,C)上投影R,然后再次加入R1和R2时,我们就不会得到相同的实例R 我想不出会发生这种情况。既然B依赖于A,并且两个表都将根据B值进行连接,那么自然连接不总是相同的吗 前 正如@ErwinSmout所指出的,第一个例子是不正确的。如果我理解正确,C既不依赖于A也不依赖于B,那么给定r如下: r1 = (1,4,6) r2 = (1,4,7) A | B | C --

我要回答的问题是:

考虑具有FD A-->B的R(A,B,C)。给出R的一个有效实例,这样当我们在关系R1(A,B)和R2(B,C)上投影R,然后再次加入R1和R2时,我们就不会得到相同的实例R

我想不出会发生这种情况。既然B依赖于A,并且两个表都将根据B值进行连接,那么自然连接不总是相同的吗


正如@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

-1关系不能有重复的行,因此,联接操作如果是关系的,就不能产生一个包含重复行作为其结果的对象。@ErwinSmout-Hmm…好的,第一个示例实际上是错误的。但另一个还可以,对吧?是的。“我在键入相同的解决方案后不久看到了这一点。”埃尔温斯穆特编辑。希望现在不会让任何人误入歧途。
r1 = (1,4,6)
r2 = (2,4,7)

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