Re: Lucid statement of the MV vs RM position?
Date: Mon, 08 May 2006 23:10:55 +0200
Message-ID: <e3oc8l$qbr$1_at_orkan.itea.ntnu.no>
Marshall Spight wrote:
> Jon Heggland wrote:
>> I focus on the significant difference between >> >> 1. An aggregate operator >> 2. The invocation of an aggregate operator within a SUMMARIZE operator >> >> You don't get from relation (1) to relation (2) in my post to Marshall >> just by using SUM. You have to use SUMMARIZE as well.
>
> I agree, however I consider this point so obvious as to be not
> worth mentioning. No one bothers to distinguish carefully
> between, say, a function literal and an application of that
> function in speech. It's just quite clear from context.
I'm not quite sure I understand your argument here; please ignore if I'm
setting up a straw man here. I think the distinction between SUMMARIZE
... ADD (SUM(...) AS ...) and SUM(...) is crucial for at least two reasons:
Furthermore, Tutorial D's aggregate operators can also be used as
expressions directly, i.e. not only within the context of a SUMMARIZE.
For example, SUM(R,A) is an expression evaluating to the sum of the A
attribute in relation R. If SUMMARIZE ... ADD (SUM(...) AS ...) is
called "the aggregate operator SUM", what should we call SUM(R,A)? They
are obviously not the same.
> There are quite a number of different programming models
> or functional programming languages that support "fold"
> or "reduce". (D&D here again making up their own terminology
> when perfectly good decades-old terms exist, confusing the
> discussion.)
> Only SQL and TutD, that I'm aware of, bother
> to have a separate abstraction called an "aggregate
> function."
What do other relational or quasi-relation systems do, then? What kind of terminology/syntax would you prefer?
-- JonReceived on Mon May 08 2006 - 23:10:55 CEST