# Re: constraints in algebra instead of calculus

From: Brian Selzer <brian_at_selzer-software.com>
Date: Tue, 19 Jun 2007 12:39:32 GMT
Message-ID: <88Qdi.41068\$5j1.38672_at_newssvr21.news.prodigy.net>

"David Cressey" <cressey73_at_verizon.net> wrote in message news:TLOdi.3043\$Sm5.2612_at_trndny04...
>
> "Jan Hidders" <hidders_at_gmail.com> wrote in message
>> On 19 jun, 08:26, "David Cressey" <cresse..._at_verizon.net> wrote:
>> > "paul c" <toledobythe..._at_oohay.ac> wrote in message
>> >
>> > news:vNFdi.37701\$NV3.32514_at_pd7urf2no...
>> >
>> >
>> >
>> >
>> > I can't see much use for grouping on all attributes. It seems to me
> that
>> > this has to be a null operation.
>>
>> That would actually make the math harder, which is often a bad sign.
>> Right now the definition is quite simple:
>>
>> R GROUP A AS B = { t[H-A] + (B : { t'[A] | t' in R, t'[H-A]=t[H-A] })
>> | t in R }
>>
>> where
>> - H is the set of all attributes of R
>> - t[X] is the projection of tuple t on the set of attributes X
>> - + is tuple concatenation
>> - (B : v) constructs a tuple with a single field B with value v
>>
>> If you let A be equal to H then
>> - H-A is the empty set
>> - t[H-A] is the empty tuple () for all t
>> - t[A] = t for all t in R,
>> so you get:
>>
>> { () + (B : { t' | t' in R, ()=() }) | t in R } =
>> { (B : { t' | t' in R }) | t in R } =
>> { (B : { t' | t' in R }) } =
>> { (B : R) }
>>
>> Your suggestion would create an exception to that rule.
>
> It wasn't my intent to make a suggestion. It was supposed to be an
> observation. An incorrect one, it would appear from your response.
>
> It sounds like I'm mixed up on what GROUP does. In particular, it sounds
> like I was confusing
>
> R GROUP A AS B with
> R GROUP (H-A) AS B
>
> Where can I go for a definition of GROUP?
>
paul c provided a link to Appendix A of TTM earlier. It is also described in Date's /An Introduction to Database Systems, Eighth Edition/. Received on Tue Jun 19 2007 - 14:39:32 CEST

Original text of this message