| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Lucid statement of the MV vs RM position?
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'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.)
I'm not familiar with those terms, so I cannot validate your claim that they would be perfectly good in this case. :) In any case, I thought nest/unnest was the perfectly good terms that D&D discard. ;)
(I for one have sympathy for "making up" terminology when the existing is unsatisfactory. For instance, I think "irreducible key" is much better than "minimal key", for reasons I deem obvious, even though "minimal" may be decades-old.)
> 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 - 16:10:55 CDT
![]() |
![]() |