我试图理解在两个关系R和S之间执行自然连接的结果是什么,它们没有共同的属性。
按照下面的定义,我认为答案可能是一个空集: Natural Join definition. 我的想法是因为不满足“选择”符号中的条件,所有属性的投影都不会发生。 当我向我的讲师询问这个时,他说输出与在R和S之间做一个cartezian产品是一样的。 我似乎无法理解为什么,会感激任何帮助)
自然连接将交叉产品和选择结合到一个操作中。它对两个关系方案中出现的属性执行强制相等的选择。在所有关系操作中删除重复项。
有两种特殊情况:
•如果两个关系没有共同的属性,那么它们的自然连接就是它们的交叉积。
•如果两个关系具有多个共同属性,则自然连接仅选择所有匹配属性对匹配的行。
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))