EXCLUSIVE UNION

In set theory, union is inclusive; that is, given sets s1 and s2, an element appears in their union if and only if it appears in either or both of s1 or s2. Thus, UNION can be seen as the set theory counterpart to logical OR, which is inclusive in a similar sense. But logic additionally defines an exclusive version of OR (XOR), and so we can define an exclusive union operator analogously: The exclusive union (XUNION) of two sets s1 and s2 is the set of elements appearing in s1 or s2 but not both. And, of course, we can define a relational version of this operator as well:

Definition: Let relations r1 and r2 be of the same type; then their exclusive union, r1 XUNION r2, is a relation of the same type, with body consisting of all tuples t such that t appears in r1 or r2 but not both.

For example (assuming as we did in Chapter 6, in the section UNION, INTERSECTION, AND DIFFERENCE, that parts have an extra attribute called STATUS, of type INTEGER):

image with no caption

Tutorial D also supports an n-adic form of XUNION. However, the details are a little tricky; for that reason, I’ll just give a definition here, without further discussion. You can find more details, if you’re interested, in the paper “N-adic vs. Dyadic Operators: An Investigation” (see Appendix G).

Definition: Let relations r1, r2, ..., rn (n ≥ 0) all be of the same type T. Then the expression XUNION{r1,r2,...,rn} denotes a relation ...

Get SQL and Relational Theory, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.