关系代数:Natural Join 具有与笛卡尔积相同的结果

Relational Algebra: Natural Join having the same result as Cartesian product

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

按照下面的定义,我认为答案可能是一个空集:
Natural Join definition.
我的想法是因为不满足'Select'符号中的条件,所以不会发生所有属性​​的投影。
当我问我的讲师这个问题时,他说输出将与在 R 和 S 之间做笛卡尔积相同。
我似乎不明白为什么,希望得到任何帮助)

自然连接将叉积和选择合并为一个 手术。它执行一个选择,强制那些 出现在两个关系方案中的属性。重复项是 与所有关系操作一样被删除。

有两种特殊情况:

• 如果两个关系没有共同的属性,则它们 natural join 只是他们的叉积。

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

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.First take the cartezian product.

2.Then select only those row so that attributes of the same name have the same value

3.Now apply projection so that all attributes have distinct names.

如果两个表没有同名的属性,我们将跳到第3步,因此结果确实是笛卡尔积