Re: Why relational division is so uncommon?

From: Vadim Tropashko <vadimtro_invalid_at_yahoo.com>
Date: 27 Apr 2007 13:28:26 -0700
Message-ID: <1177705706.598602.253890_at_c18g2000prb.googlegroups.com>


On Apr 27, 12:33 pm, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> What you are saying is, essentially, that
>
> (a)
> R1 <X,Y>: {<1, a>, <1, b>, <2, c>}
>
> and
>
> R2 <X,Y>: {<1, {a, b}> <2, {c}>}
>
> are 'the same' relation;
>
> (b)
> '/' in
>
> R1 / D1 = {<1>}, where D1<Y> = {<a>, <b>}
>
> is 'the same' operation
>
> as 'project/join' in
>
> project(join(R2, D2, D2.Y is_a_subset_of R2.Y), X) = {<1>}, where D2<Y>
> = <{a, b}>.
>
> Obviously, neither (a) nor (b) is true, but I won't argue with you ;)

Pehaps there is little to argue? You either take the definition of set join literally, or extend it to flattened relations. For me it is as natural as extending the division in arithmetics from integer to rational numbers.

> >> > PatientDecease(PatientName,DeceaseName) =
> >> > PatientSymptom(PatientName,SymptomName) /
> >> > DeceaseSymptom(SymptomName, DeceaseName)
>
> > One more point about this schema is normalization. I have a de ja vu
> > of 5 NF generalized to accomodate set joins...
>
> How can a 5NF schema accomodate a set join if the set join tables are not
> even in 1NF ?!

No arguing, huh? Both relations PatientSymptom and DeceaseSymptom in the equation

PatientDecease(PatientName,DeceaseName) =
PatientSymptom(PatientName,SymptomName) /
DeceaseSymptom(SymptomName, DeceaseName)

are flat. Set join is even written as the division:-) Received on Fri Apr 27 2007 - 22:28:26 CEST

Original text of this message