# Re: a union is always a join!

Date: Tue, 6 Jan 2009 00:14:17 -0500

Message-ID: <KMB8l.13434$c45.10526_at_nlpi065.nbdc.sbc.com>

"paul c" <toledobythesea_at_oohay.ac> wrote in message
news:Pkv8l.42236$em5.22922_at_newsfe22.iad...

*> Criticisms, please (preferably ones based on some formal logic or other).*

*>*

I think your reasoning is circular: A relation is a join because it can be joined to a projection of itself over a subset of its own heading?

*>*

*> It is inescapable that every relation is a join (eg., Heath's theorem). *

*> So every relvar points to a join. If we can't 'delete' through a join, we *

*> can't delete from any relvar (my father, who thought a disk buffer was a *

*> polishing material could have concluded this - also, I surmise, we can't *

*> logically express some number of otherwise possible relations when we *

*> have some purpose besides defining a 'view').*

*>*

*>*

*> The reason for every relation being a join has nothing to do with the *

*> expression that forms a join 'view'. I think it's a consequence of *

*> Codd's algebra that every relation that has more than one subset of *

*> attributes is a join of two or more relations. By Heath, there will *

*> always be two heading subsets (at least one of them having the same *

*> heading as the relation) that will determine the other possible pairs of *

*> heading subsets in a join. Because the join on all of a relation's *

*> attributes with any subset of them is algebraically equal to the relation, *

*> it looks to me that the number of possible and irreducible join *

*> expressions is at least equal to the number of subsets of attributes in a *

*> relation heading. (This is implicit. Explicit constraints may have a *

*> number of expressions that are fewer and still sufficient to express all *

*> the possible expressions.)*

*>*

*>*

*> For the same reason, every 'insert' is through a join, even if the *

*> 'insert' is also to a 'view' formed by union. One can equally say that *

*> some relations involve union, but this doesn't change the fact that they *

*> are also joins, in other words, not all joins are algebraically equal to *

*> some union or other, ie., if a relation is formed by join, it is not *

*> always also a union.*

*>*

*> If so, it should be far more productive to design a language based on *

*> axioms that are universal, the theorems that are always true, rather than *

*> on statements that are true only sometimes.*

*>*

*> *

Received on Mon Jan 05 2009 - 23:14:17 CST