• SanDroid (7/5/2011)


    For anyone that want's to read what Ted Codd wrote about NULL (SQL):

    http://en.wikipedia.org/wiki/Null_(SQL) I know it is wikipedia, but so what if it is correct.

    It's a pretty good reference. Some trivial errors (for example the two distinct null values were introduced more than a decade before the RM V2 book, not in it.). Most importantly it points out that NULL indicates the absence of a value for the datum, not the truth value "unknown".

    For anyone that want's to read what Codd & Date wrote about 1NF:

    http://www2.yk.psu.edu/~lxn/IST_210/normal_form_definitions.html

    It's certainly not what Codd wrote about normal forms. It may be something like some of what CJD write (I haven't read all his writings), but referring everything to THE primary key instead of to the set of primary keys (usually now called candidate keys) is not at all Codd's style.

    It is the RDBMS Ternary Value theory Codd introduced that most people seem to confuse the most. Codd never said NULL = Unknown.

    The Unknown truth value is generated whenever Null is compared with any data value, or with another Null.

    That's another of those errors - sometimes comparing NULL with NULL delivers True (Paul's clever use of INTERSECT mentioned above explicitly depends on this), and TC stated that it should deliver True in some cases (cases listed in his SIGMOD 1979 paper, and the Dec 79 ToDS version). Wikipedia even mentions these particular comparisons further down the page.

    If you read the Dec 79 ToDs paper (it's available somewhere online without requiring an ACM library subscription, but I'm not telling you where because that would be encouraging copyright violation :angry: - as well as encouraging TC's view that the research belongs to everyone ;-)) you will see that TC had introduced the two NULLs and 4VL system before then, but thought it reasonable to merge the NULLs and stick to 3VL for many purposes. If you read the 1990 book, in particlular the rules for replacing NULLs with actual values (you can download thbe book from the ACM library for $15, if I recall correctly) you'll see that the i and a NULLs aren't actually "inapplicable" and "applicable" since that would have precluded convertions between them.

    Tom