【问题标题】:What is ⟕ (left outer join) of 3 relations that have no shared attributes?3 个没有共享属性的关系的⟕(左外连接)是什么?
【发布时间】:2018-03-01 15:09:28
【问题描述】:

考虑 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?让我感到困惑的是,他们没有共同的属性。这和笛卡尔积一样吗?

【问题讨论】:

  • 嗨。请参考您所询问的关系代数。有很多,具有不同的运算符,甚至是关系的概念。特别是给出你正在谈论的左外连接的定义。你的意思是左外自然加入? PS阅读你的左连接的定义并遵循它。你得到了什么?另外:你用“stackoverflow.com”搜索你的标题是什么? (总是用谷歌搜索你的问题/问题/目标的许多清晰、简洁和具体的版本/措辞,并阅读许多答案。)

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


【解决方案1】:

(RA(关系代数)有许多不同的概念,具有不同的运算符集,具有相同名称的运算符的不同定义以及对关系的不同定义。受 RA 启发的查询语言也被称为“RA "s。这个答案的措辞适用于典型的 RA——对于自然或 theta(受限笛卡尔积)内部和外部连接,以及与作为属性集或列表的标题的关系。)

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

注意对于带有集合的标题的关系(或忽略带有列表的标题的关系的列顺序):虽然通常(内部)连接是可交换的(R join S = S join R)和关联的(R join ( S join T) = (R join S) join T),外连接不是。因此,除非您指定应用程序顺序,否则没有“3 个关系的左外连接”。全外自然连接是可交换的。如果多个调用在同一个公共属性集上,那么它是关联的。 (然后我们可以讨论多个关系的“左外自然连接”。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多