什么是自然连接中的最大元组数

时间:2015-05-09 22:13:02

标签: database

给定关系R和S,每个分别具有n和m元组。在R和S自然连接之后,元组的最大数量是多少?我看到一个给定的答案是n*m,但我无法弄清楚是什么情况。请帮我理解这个场景。

2 个答案:

答案 0 :(得分:6)

我希望,你明白什么是自然加入。您可以查看here

如果表R和S包含公共属性,并且两个表中每个元组中该属性的值相同,则自然连接将产生n * m个元组,因为它将返回元组的所有组合。

考虑以下两个表

表R (属性 A C

 A  |  C
----+----
 1  |  2
 3  |  2

表S (属性 B C

 B  |  C
----+----
 4  |  2
 5  |  2
 6  |  2

自然加入的结果 R * S (如果两个表中属性 C 的域相同)

 A | B |  C
---+---+----
 1 | 4 |  2
 1 | 5 |  2
 1 | 6 |  2
 3 | 4 |  2
 3 | 5 |  2
 3 | 6 |  2    

您可以看到 R S 都包含属性 C ,其值在每个元组中为2。表 R 包含2个元组,表 S 包含3个元组,其中Result表包含2 * 3 = 6个元组。

希望这会有所帮助。

答案 1 :(得分:1)

写这篇文章,因为我无法添加到Surajeet的回答

对于关系R(A,B,C)和S(C,D,E)的连接(R>< S)之后的元组数由下式给出: T(R>< S)=

Number of tuples for join

其中V(R,C)与R和R相关的C值不一致 V(S,C)是关系S

中C的值

在极端情况下,如果只有1个不同的值且该值相同(假设保留值集)。然后我们得到T(R>< S)= T(R)* T(S)。因此n * m。