I am trying to understand how a OUTER UNION $∪^✳$ works, and why it is only partially compatible.

I am aware this operation was created to take union of tuples from two relations if the relation are not type compatible (which I understand).

Examples of this operation will be great!

  • $\begingroup$ what is the difference between this (outer union) and full outer join? $\endgroup$ – anir Dec 3 '17 at 7:09

There are two flavors of outer union: with and without NULLs. Google search readily exibits an example for NULLs version. The cleaner version of relational algebra desn't allow NULLs, and outer union is defined via De Morgan's law:

$ X \bigcup Y = \overline {\overline X \Join \overline Y} $

Date&Darwen call this operation $\blacktriangleleft OR \blacktriangleright$.


R = [A B]
     1 2
     3 4


S = [B C]
     4 5
     6 7

both outer join variants agree that the result projected to common column B should be {2,4,6}. This is what is called inner union -- alternative way of generalizing standard relational algebra union operator. Now the problem is finding values of attributes A and C. Next, we match the values of the "middle column" with attributes A and C trying to leverage information in the relations R and S. In case of value B=2 we don't have matching value of C. Likewise, for B=6 we don't have matching value of A. Therefore, D&D $\blacktriangleleft OR \blacktriangleright$ operator fills the blanks in

[A B C]
 1 2
 3 4 5
   6 7

with all the values from corresponding domain, while the NULL version just blurts NULLs.

  • $\begingroup$ I've already looked at the site, is it possible for you to give me a detailed explanation of what is going on there please as the problem is me understanding it. $\endgroup$ – orange Nov 28 '12 at 20:12
  • $\begingroup$ what is the difference between this (outer union) and full outer join? $\endgroup$ – anir Dec 3 '17 at 7:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.