Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Teach SELECT DISTINCT first!
Mikito Harakiri wrote:
>> OK here's a pathological example: Define a function f on the >> integers by: f(i) = i (if Fermat's Last Theorem is true >> = 0 (if Fermat's Last Theorem is false
I'm sure you could expand it out in terms of arithmetic operations and elementary functions. It might be very long though...
> CAS have their own problems even within practical realm of
> closed-form expressions, there is no need to go as far as FLT. The
> idea is however, that in vast majority of the cases CAS does an
> excellent work.
OK so say for example I do "SELECT i from R WHERE i*i < 0" where i is an integer column, then the DBMS engine should know that the square of an integer is never less than zero?
>> Now functions are actually special cases of (mathematical) >> relations. So maybe a relational system could think of them in this >> way and access them as logical (DBMS) relations. Whether they are >> physically implemented as an actual table or not would be up to >> the optimizer. For example say you define a complicated function on >> the integers. It might be best for the DBMS to store a table that >> pre-calculates this.
Maybe the DBMS could store statistics about what actual ranges are used for a function in practice and physically store them which would help in 99% of cases?
>> For non-integer domains you might have more problems though. But >> then you've already got problems with rounding etc. where two >> decimals may be different theoretically but the same according to >> the DBMS.
Yes, I guess the problem is it's very complicated to write just a plain DBMS, let alone one with fancy optimizations, unlimited precision and computer algebra systems etc. built in.
Paul. Received on Tue Apr 27 2004 - 18:48:32 CDT