【发布时间】:2013-09-11 10:33:59
【问题描述】:
我有两个关于自然连接的基本问题。
假设A是一个关系,那么:
(A) 自然连接 (A) = A 吗?
是 (A) 自然连接(空集)= A 吗?
据我所知,这两个问题的答案都是肯定的,对吗?
注意:这不是作业问题,我只是想了解一些自然连接的基础知识。
谢谢。
【问题讨论】:
标签: sql database join relational-algebra natural-join
我有两个关于自然连接的基本问题。
假设A是一个关系,那么:
(A) 自然连接 (A) = A 吗?
是 (A) 自然连接(空集)= A 吗?
据我所知,这两个问题的答案都是肯定的,对吗?
注意:这不是作业问题,我只是想了解一些自然连接的基础知识。
谢谢。
【问题讨论】:
标签: sql database join relational-algebra natural-join
这是working demo。
由于自然连接比较两个表中具有相同列名的所有列,并且对于同名列仅返回一列,因此连接 A 将导致 A。对于第 #2 点,连接不会匹配任何行,因此结果将是空表(不是 A)。
注意:The Cartesian product of A and the empty set is the empty set
另外,请查看Why is the Cartesian product of a set A and empty set an empty set?
【讨论】:
正确
问题含糊不清,答案可能是肯定的或否定的。自然连接是对两个关系的操作。在这种情况下,“空集”可能至少意味着两件事:(a)没有元组的关系(零基数); (b) 带有空标题(零度)的关系,这意味着它没有任何属性,但可能包含也可能不包含元组。
2(a) 如果 A 或 B 的基数为零,则 A ⋈ B 也是空的。如果 A 和 B 具有不同(且非空)的标题,则 A ⋈ B 实际上与 A 无法比较,因为连接的结果与 A 具有不同的标题,因此在这种情况下,说结果是不正确的是“等于”A。A ⋈ B 可能导致与 A 相同的标题当然在这种情况下 A ⋈ B 可能等于 A。
2(b) 只有两个带有空标题的关系,一个带有零元组,一个带有单个元组。按照惯例,它们分别称为 DUM 和 DEE。 A ⋈ DUM 导致与 A 具有相同标题但元组为零的关系。 A ⋈ DEE = A。
【讨论】: