Re: What to call this operator?

From: Mikito Harakiri <mikharakiri_nospaum_at_yahoo.com>
Date: 3 Jul 2005 11:05:38 -0700
Message-ID: <1120413938.601008.269190_at_z14g2000cwz.googlegroups.com>


Marshall Spight wrote:
> Jon Heggland wrote:
> > In article <1120069466.357430.273600_at_o13g2000cwo.googlegroups.com>,
> > marshall.spight_at_gmail.com says...
> > > With join, all keys are preserved.
> >
> > Umm... they are? What do you mean by "preserved"? Perhaps I
> > misunderstand you, but a key of one of the operands is not necessarily a
> > key of the result.
>
> Okay. What rule would you propose?
>
> In fact, since I proposed that rule in the above-referenced message,
> I did think of a counterexample which would make some relations
> unjoinable, which isn't good.)

I have trouble understanding Marshall's idea, but the functional dependency formula for

R(x,y,z), x->y

in lattice terms is

R <= X,
R <= Y,
R (y=z) \/ xz R (y!=z) = xyz

with the following conventions

* predicate names are single letters,
* predicates with small letters are empty relations,
* predicates with capital letters X,Y,Z are full domain relations,
* the '=' and '!=' with no spaces around it means binary equality and
nonequality relation, correspondingly
* \/ is union
* in the absence of the other infix between the two relation it is assumed to be a join
* operations associate to the left Received on Sun Jul 03 2005 - 20:05:38 CEST

Original text of this message