什么是3个没有共享属性的关系的⟕(左外连接)?

时间:2018-03-01 15:09:29

标签: database left-join rdbms relational-algebra cartesian-product

考虑3种关系:r,p和e。

考虑r:

+-------+
| CD RD |
+-------+
|  1 11 |
|  2 22 |
|  3 33 |
+-------+

和p:

+-------+
| PD PR |
+-------+
| 1 U   |
| 2 C   |
| 3 S   |
+-------+

和e:

+---------+
| ED Name |
+---------+
| 1 B     |
| 2 BB    |
| 3 BBB   |
+---------+

什么是r?p?e?让我感到困惑的是他们没有共享属性。这与笛卡尔积相同吗?

1 个答案:

答案 0 :(得分:0)

(RA有很多不同的概念(关系代数),有不同的运算符集,不同的运算符定义,关系是什么。还有RA启发的查询语言被调用&# 34; RA" s。这个答案用于典型的RA - 用于自然或theta(受限制的笛卡尔积)内部和外部连接以及与标题集或属性列表的关系。)

阅读左外连接的定义。它返回相应内连接的元组以及由null扩展的每个非参与左关系元组。如果没有用于自然连接的共享属性或用于theta连接的始终为真的条件,则内连接返回左关系元组与右关系元组的每个可能组合。 (这是一个所谓的关系笛卡尔积。)由于每个左关系元组都参与,左外连接中没有额外的元组。所以左外连接与内连接(以及右外连接和内连接)相同,它是笛卡尔积。同样适用于右外连接。全外连接是左外连接和...的结合。右外连接所以在这种情况下,所有三个是相等的。

请注意,对于与标题集合的关系(或忽略与列表标题的关系的列顺序):虽然一般(内部)连接是可交换的(R join S = S join R)和associative(R join) S join T)=(R join S)join T),外连接不是。所以没有"左边的3个关系的外连接"除非您指定申请单。全外部自然连接是可交换的。如果多个调用位于同一个公共属性集上,则它是关联的。 (然后我们可以谈论""多个关系的左外部自然联接。)