2

我有两个关于自然连接的基本问题。

假设 A 是一个关系,那么:

  1. (A) 自然连接 (A) = A 吗?

  2. (A) 自然连接 (空集) = A 吗?

据我了解,这两个问题的答案都是肯定的,对吗?

注意:这不是一个家庭作业问题,我只是想了解一些自然加入的基础知识。

谢谢你。

4

2 回答 2

4
  1. (A) 自然连接 (A) = A 吗?是的
  2. (A)自然连接(空集)= A吗?

这是一个工作演示

由于自然连接比较两个表中具有相同列名的所有列,并且对于同名列仅返回一列,因此连接 A 将导致 A。对于第 #2 点,连接将不匹配任何行,因此结果将是空表(不是 A)。

注:A与空集的笛卡尔积为空集

另外,请检查为什么集合 A 和空集的笛卡尔积是空集?

于 2013-09-11T10:42:24.887 回答
2
  1. 正确的

  2. 这个问题是模棱两可的,答案可能是肯定的或否定的。自然连接是对两个关系的操作。在这种情况下,“空集”可能至少意味着两件事:(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。

于 2013-10-30T10:40:44.140 回答