关系代数:自然连接与笛卡尔积具有相同的结果

时间:2018-01-03 15:56:07

标签: relational-algebra cartesian-product natural-join

我试图了解执行自然连接的结果 在两个关系R和S之间,它们没有共同的属性。

按照以下定义,我认为答案可能是空集:
Natural Join definition.
我的想法是因为“选择”符号中的条件不符合,所有属性的投影都不会发生。
当我向我的讲师询问此事时,他说输出与在R和S之间做一个cartezian产品相同。
我似乎无法理解为什么,会感激任何帮助)

2 个答案:

答案 0 :(得分:1)

自然连接将交叉产品和选择合二为一 操作。它执行选择强制相等 两种关系方案中出现的属性。重复是 在所有关系操作中删除。

有两种特殊情况:

•如果两个关系没有共同的属性,那么他们的 自然联合只是他们的交叉产品。

•如果两个关系有多个共同属性, 那么自然连接只选择所有对的行 匹配属性匹配。

Notation: r s
Let r and s be relation instances on schema R and S
respectively.
The result is a relation on schema R ∪ S which is
obtained by considering each pair of tuples tr from r and ts from s.
If tr and ts have the same value on each of the attributes in R ∩ S, a
tuple t is added to the result, where
– t has the same value as tr on r
– t has the same value as ts on s

示例:

R = (A, B, C, D)
S = (E, B, D)
Result schema = (A, B, C, D, E)
r s is defined as:
πr.A, r.B, r.C, r.D, s.E (σr.B = s.B r.D = s.D (r x s))

答案 1 :(得分:1)

您链接的自然联接的定义是:

enter image description here

可以打破:

  

1.首先采取cartezian产品。

     

2.然后只选择那些行,使同名的属性具有相同的值

     

3.现在应用投影,以便所有属性都有不同的名称。

如果两个表没有同名的属性,我们将跳到第3步,因此结果确实是cartezian产品