Re: separation of church and state?

"paul c" <toledobythesea_at_ooyah.ac> wrote in message
news:hoONi.6504$_K.2827_at_pd7urf3no...
> I finally sprung for CJ Date's "Writings, 2000-2006" and skimming it,> noticed this point in chapter 10. It reminded me of the recent posts> about avoiding books that start with silly sentences even though this> quote is from page 174:>> "Ordering, by contrast, is not part of the relational algebra; nor can> it be, because its result isn't a relation. This doesn't mean you can't> have an ORDER BY operator, of course - it just means that operator isn't> part of the algebra as such, and it can't be used in an expression> that's nested inside some other (relational) expression, or more> generally in any context where the result is indeed required to be a> relation. That's why you can't use ORDER BY in a view definition, for> example.">> It seems a little doctrinaire to me. I can agree that the "result isn't> a relation" but on the other hand a user could see such a result without> knowing that "ORDER BY" was involved and not be faulted for taking it to> be a relation. For that matter, in some apps, users take it for granted> that all results are arbitrarily ordered and that those results can be> used to produce other results.>

It is a little doctrinaire. Oracle/Rdb (originially DEC Rdb/VMS) has
always allowed ORDER BY in a view definition. No damage was done to the
ability of the user to apply concepts of relational algebra to the task of
getting useful work done. One could reference such a view inside another
view, or in any other context where an unordered table would have been
expected, and the results were logically equivalent to the result one would
have obtained in the absence of the ORDER BY.

Oracle RDBMS, by contrast, has always forbidden ORDER BY in view
definitions. Other than satisfying some people's need for doctrinaire
purity, the RDBMS users gained nothing by this restriction.

> By analogy of separating the logical from physical implementation, if> you want to declare a separation of church and state, I'd think you'd> need to mention both. Not to tout SQL but I took the above to mean that> if a table were declared with an "INDEX", it shouldn't be allowed to> participate in expressions of the relational algebra, which seems> extreme and somewhat useless to me.>

I think you're extrapolating Date's remarks to a point that he might not
agree with. A table with an index is still a table.

BTW, the doctrinaire folks among us will insist that SQL does not have INDEX
in the standard. But we all know that SQL databases use indexes to speed up
queries. And many application programmers appreciate being told what
indexes are present so that they can organize their queries for performance.

The doctrinaire people will say that the programmers have no need to know
index information, because it's not part of the logical model. In theory
they are right. In practice, it helps to provide them with it.
Received on Sat Oct 06 2007 - 11:54:15 CDT