我有两个关于自然连接的基本问题。
假设 A 是一个关系,那么:
(A) 自然连接 (A) = A 吗?
(A) 自然连接 (空集) = A 吗?
据我了解,这两个问题的答案都是肯定的,对吗?
注意:这不是一个家庭作业问题,我只是想了解一些自然加入的基础知识。
谢谢你。
我有两个关于自然连接的基本问题。
假设 A 是一个关系,那么:
(A) 自然连接 (A) = A 吗?
(A) 自然连接 (空集) = A 吗?
据我了解,这两个问题的答案都是肯定的,对吗?
注意:这不是一个家庭作业问题,我只是想了解一些自然加入的基础知识。
谢谢你。
这是一个工作演示。
由于自然连接比较两个表中具有相同列名的所有列,并且对于同名列仅返回一列,因此连接 A 将导致 A。对于第 #2 点,连接将不匹配任何行,因此结果将是空表(不是 A)。
另外,请检查为什么集合 A 和空集的笛卡尔积是空集?
正确的
这个问题是模棱两可的,答案可能是肯定的或否定的。自然连接是对两个关系的操作。在这种情况下,“空集”可能至少意味着两件事:(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。