Re: Date's First Great Blunder
Date: 20 Apr 2004 23:02:07 -0700
> NULLs aren't part of the RDM. Codd did include them, but they
> are not necessary and increase complexity too much.
Within the common scope where reality provides all the values for a tuple, no NULLs are incurred. For cases where, reality can't provide all values of a tuple, a NULL would be incurred unless that column is moved to a seperate table. In the extreme case, reality could fail to provide a value for any column, thus all columns of a relation would need to be in seperate tables to avoid NULLs. The net result: NULLs are common and are impractical to avoid in RDM implementations.
Suppose you have the special values "UNKNOWN", "UNAVAILABLE", etc. If john's age is the special value "UNAVAILABLE" and mary's age is the special value "UNAVAILABLE" is john's age equal to or not equal to mary's age? Since the values are the same, some would say they are equal. Since the values indicate unavailable, others would say the answer is unknown, thus resulting in 3VL.
Per Date, Intro to Db Sys, "3VL suffers from the very serious ('showstopper') problem that it does not match reality - that is, results that are correct according to 3VL are sometimes incorrect in the real world. NULLs and 3VL undermine the entire foundation of the relational model." Received on Wed Apr 21 2004 - 08:02:07 CEST