Re: A different definition of MINUS, part 4

From: Bob Badour <>
Date: Fri, 09 Jan 2009 14:59:00 -0400
Message-ID: <49679e85$0$5488$>

paul c wrote:

> Bob Badour wrote:
> ...

>>> can be got without Forall, as long as we have projection.  I gather 
>>> that 'full relation' often means a cartesian product.
>> Just a relation expressing all of what all is. In the suppliers/parts 
>> example, one might group parts from SP into a relation valued 
>> attribute and then compare that against the P relation projected on {P}
>> I am unsure of the exact notation but something like:
>> (SP{S,P} GROUP Parts{P} | Parts = P{P}){S}

> Excellent! It hadn`t occurred to me to use GROUP this way. Seems to
> take advantage of the way GROUP always implies a key or fd that might
> not have been present without GROUP.

As I said, I am unsure of the notation. Above, I more-or-less assumed that GROUP would create a relation valued attribute from some specified set of attributes while projecting on the remaining attributes, but one probably wants to group things other than attributes in a single relation, and one probably wants the option to project on an arbitrary set of attributes.

Ignoring those notation problems, though, I assume you see how that more-or-less expresses "Suppliers who supply all parts."

One could replace P{P} with any expression answering "All of what?" For example, "Suppliers who supply all the green parts." might be:

(SP{S,P} GROUP Parts{P} | Parts = (P | COLOR='green'){P}){S}

assuming the P relation has a COLOR attribute and one of the possible values is 'green'.

I used the vertical bar for RESTRICT similar to set notation, which I generally read as "such that", and {} for PROJECT. Although, I have to say that as my eyes age, I like notations that use both () and {} less and less. Received on Fri Jan 09 2009 - 19:59:00 CET

Original text of this message