# Re: Extending my question. Was: The relational model and relational algebra - why did SQL become the industry standard?

Date: Thu, 13 Feb 2003 12:37:11 -0800

Message-ID: <irT2a.10$O%2.40_at_news.oracle.com>

"Lauri Pietarinen" <lauri.pietarinen_at_atbusiness.com> wrote in message
news:3E4B8137.2080204_at_atbusiness.com...

> < quotes from book Hector Garcia-Molina, Jeffrey D. Ullman, and

*> Jennifer Widom, DATABASE SYSTEM IMPLEMENTATION>
**>
**> [Relational] algebra was originally defined as if relations were sets
**> [sic!--italics added].Yet relations in SQL are really bags ... Thus, we
**> shall introduce relational algebra as an algebra on bags.
**>
**> ...
**>
**> For instance, you may have learned set-theoretic laws such as A
**> INTERSECT (B UNION C) = (A INTERSECT B) UNION (A INTERSECT C), which is
**> formally the "distributive law of intersection over union." This law
**> holds for sets, but not for bags.
**>
**> < quotes from book/ >
*

Therefore, the idea here is that Set Algebra is superior to Bag Algebra? Not for aggregates:

**PROJECTION*AGGREGATE != AGGREGATE*PROJECTION
**
for example

select distinct S from (

select distinct SUM(SAL) from emp

)

is not the same as

select distinct SUM(SAL) from (

select distinct SAL from emp

)

where i'm using SQL with the "distinct" keyword merely as a surrogate for true relational syntax ("distinct" is redundant after aggregate operation, of course). Received on Thu Feb 13 2003 - 21:37:11 CET