Re: choice of character for relational division
Date: Sun, 01 Apr 2007 14:28:35 GMT
Message-ID: <nkPPh.18075$PV3.187215_at_ursa-nb00s0.nbnet.nb.ca>
Marshall wrote:
> 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.
But we do ask whether one set is equal to another set. Are you constructing a calculus or an algebra?
> If we have equality (=) and join (&), we don't need containment:
>
> A & B = A <=> A ⊆ B.
Are you constructing an internal language or an external language. I agree it is unecessary internally, but I know from past experience that users are drawn to use containment when it is available to them. (At least, english speaking users are.)
>>>>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)}
If we define
SDP = Supplies $ Parts
then Supplies = SDP X Parts
granted the X is also join because SDP and Parts have no common attributes.
Hmmmm....
> Also:
>
> ItsLateAndICantThinkOfAnExample
> A B
> 1 1
> 1 2
> 1 3
> 2 11
>
>
> ItsLateAndICantThinkOfAnExample $ (Total = sum(B)) =
> {(A=1, Total=6), (A=2, Total=11)}
Consider:
ItsEarlyAndICan
What does "ItsEarlyAndICan $ (Total = sum(B))" evaluate to?
A B C
1 1 b
1 2 a
1 3 c
2 11 d