Re: choice of character for relational division

From: Marshall <marshall.spight_at_gmail.com>
Date: 31 Mar 2007 21:44:20 -0700
Message-ID: <1175402660.753675.320970_at_q75g2000hsh.googlegroups.com>


On Mar 31, 2:47 pm, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
>
> One needs to have set equality and set containment operators. If one has
> those, the query seems simple. What does a special operator for it buy one?

Do we need all of those? We need set equality for RVAs if we want to join on RVAs (which we do) but do we need a top level equality? I mean, I would expect it, but do we need it? Do we ever ask in logic whether these propositions are the same as those propositions? Doesn't seem so.

If we have equality (=) and join (&), we don't need containment:

  A & B = A <=> A ⊆ B.

> >>If "product" has a completely
> >>different name "join", why should a "divide" use the same name?
>
> > A fair question. The inverse of union is called "set subtraction"
> > rather than just "subtraction." Maybe call it "inverse join?"
> > "Unjoin?" "Relational division?"
>
> Can you describe the full operation? Maybe show an inverse for a join
> that is not a cartesian product?

SuppliesParts
S P
7 1
7 2
8 1

Parts
P Desc
1 that little thing with the knob
2 the other thing we used the other day

Using $ for relational division

SuppliesParts $ Parts = {(S=7)}

This implies the existence of a relational remainder, in this case {(S=8, P=1)}

Also:

ItsLateAndICantThinkOfAnExample
A B
1 1
1 2
1 3
2 11

ItsLateAndICantThinkOfAnExample $ (Total = sum(B)) = {(A=1, Total=6), (A=2, Total=11)}

Marshall Received on Sun Apr 01 2007 - 06:44:20 CEST

Original text of this message