# Re: a union is always a join!

From: Brian Selzer <brian_at_selzer-software.com>

Date: Wed, 7 Jan 2009 22:35:12 -0500

Message-ID: <Qve9l.515$PE4.406_at_nlpi061.nbdc.sbc.com>

> All relations have at least n+1 fd's, even if trivial, where n is the

> <AND> or the equivalent in another algebra is the only way to understand

> Originally, the most potent axioms for an implementation language that

Received on Thu Jan 08 2009 - 04:35:12 CET

Date: Wed, 7 Jan 2009 22:35:12 -0500

Message-ID: <Qve9l.515$PE4.406_at_nlpi061.nbdc.sbc.com>

This is really very simple, if you choose to actually use the mass of tissue between your ears.

~(p /\ q) = ~p \/ ~q

So if ~(p /\ q), then which is false? p? q? both? All we can determine for certain is that it is definitely not neither.

"paul c" <toledobythesea_at_oohay.ac> wrote in message
news:Gea9l.52558$u17.60_at_newsfe20.iad...

> rpost wrote:

>> paul c wrote: >> >>> Criticisms, please (preferably ones based on some formal logic or >>> other). >>> >>> It is inescapable that every relation is a join (eg., Heath's theorem). >> >> As Brian writes, this is one step too far. Every relation can be >> decomposed into smaller ones based on its nontrivial functional >> dependencies, but if it hasn't any - and the resulting relations don't - >> it is only a join of itself. >> ... >

> All relations have at least n+1 fd's, even if trivial, where n is the

*> number of attributes. All relations with at least one attribute (all but**> 'Dee') are a join of at least two (non-empty) relations.*> >> Perhaps by join you mean something like the AND in Darwen's 'A New >> Relational Algebra' (thanks for giving its URL earlier), which has the >> join and and union of relational algebra as special cases. We can also >> decompose relations by writing them as the unions of other relations >> (someone I know wrote a PhD thesis about it), but Heath isn't about that. >> ... >

> <AND> or the equivalent in another algebra is the only way to understand

*> what join and union really mean, ie., are actually capable of being**> interpreted as. Some 'unions' can only be expressed as the union of**> themselves and an empty relation. I think it is helpful to understand**> union from some formal definition that acknowledges the logical**> possibility that two relations may not be 'union' compatible, eg., the**> '<OR>' operation or equivalent. Understanding relation structure based on**> empty relations seems as pointless/useless to me as understanding**> relational complement as being 'simple' complement. In fact, I'd rather**> call simple complement the vague complement and relative complement the**> exact complement. Why eschew a more precise interpretation when it's**> staring us in the face?*> >> algebra join horizontally (it extends tuples with attributes and values), >> but when projecting these attributes away again, hasn't added anything). >> An insert can be expressed as a (relational algebra) union of the >> existing >> relation with the inserted tuples, but no nontrivial r.a. union is a >> r.a. join (and vice versa). Using the term 'join' for Darwen's AND >> operator, which combines r.a. union and join, doesn't change this. >> >> What are you trying to achieve? >> ... >

> Originally, the most potent axioms for an implementation language that

*> follows McGoveran's suggestions, ie., ones that recognize relation**> structure as opposed to how a relation value may have been arbitrarily**> formed. The way most people talk of Codd's algebra is simplistic because**> they have typically not tried to interpret it, probably have never even**> read it, for example, in the above, what do horizontal and vertical**> coordinates have to do with anything relational?. This is faux**> technocracy, usually involving what de Bono called porridge words which in**> this case are additional lingo to disguise a lack of basic understand (and**> which is how I believe Codd's algebra is usually 'taught', or thought to**> be 'taught'. But more to the point, I continue to be amazed that people**> claim they can 'insert' a tuple to a relvar but cannot 'delete' that very**> tuple! (vice-versa too.) I think when they say they can't delete, what**> they are really saying is that they can't delete a tuple that**> is not in the join! The same goes for asserting and retracting a**> proposition in general. I've no doubt that it might be difficult to**> retract a proposition that one has never asserted! In a way, this is no**> surprise to me and I still don't know why people think it is a problem,**> when all human affairs contain much mumbo-jumbo that is logically**> make-believe. Now that you mention it, another goal would be to prevent**> geometric interpretations of the basic algebraic structures! Sounds like**> tables or arrays are getting mixed up with relations.**>*Received on Thu Jan 08 2009 - 04:35:12 CET