什么是OUTER UNION,为什么它部分兼容

时间:2012-11-27 16:09:27

标签: union relational-algebra

我试图理解OUTER UNION如何工作,以及为什么它只是部分兼容。

我知道如果关系不是类型兼容的(我理解),这个操作是为了从两个关系中取出元组的联合而创建的。

此操作的示例非常棒!

2 个答案:

答案 0 :(得分:4)

OUTER JOIN运算符存在于关系代数中,即使它可能不存在于大多数查询语言中。

从大学1中选择具有80以上标记的医学学生的姓名和标记

Name Biology
  A   82
  B   88
  C   90

从大学2中选择b级或以上的技术学生的姓名和等级

Name Computer Science
  F    a
  G    a+
  H    b

说这部分内部完成,现在我们需要查看可以申请我的课程的学生及其资格的最终名单,比如生物信息学。外部联盟会有所帮助。

Table 1 OUTER UNION Table 2

Name Marks Grade
  A   82
  B   88
  C   90
  F          a
  G          a+
  H          b

普通UNION无法执行此操作,因为标记和成绩属性具有不同的域(一个采用数值,另一个采用字符等级)。然而,这样的表示在许多场合可能会有所帮助。

答案 1 :(得分:1)

你在哪里听说过这样一个运营商的存在?

它在标准的SQL afaict中不存在,谷歌搜索似乎只导致SAS中的PROC SQL语法。

无论如何,如果此运算符的输出是可能包含NULL的表,则此运算符不是关系代数的一部分。关系代数是依次产生其他关系的关系的计算,而包含NULL的东西不是关系。