What is OUTER UNION and why is it partially compatible
-
16-10-2019 - |
Question
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!
Solution
There are two flavors of outer union: with and without NULL
s. Google search readily exibits an example for NULL
s version. The cleaner version of relational algebra desn't allow NULL
s, 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$.
Given
R = [A B]
1 2
3 4
and
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 NULL
s.