1

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

通过遵循以下定义,我认为答案可能是一个空集:
自然连接定义。
我的思路是因为不满足“选择”符号中的条件,所有属性的投影都不会发生。
当我问我的讲师这个问题时,他说输出将与在 R 和 S 之间进行笛卡尔积相同。
我似乎不明白为什么,希望有任何帮助)

4

2 回答 2

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))
于 2018-01-03T16:03:54.363 回答
1

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

在此处输入图像描述

它可以分解为:

1.首先取cartezian产品。

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

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

如果这两个表没有同名的属性,我们将跳转到第 3 步,因此结果确实是 Cartezian product

于 2018-01-03T16:05:35.153 回答