| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: All hail Neo!
Marshall Spight wrote:
> Jay Dee wrote:
>
>>Marshall Spight wrote: >> >>>Bob Badour wrote: >>> >>> >>>>If one starts with a two valued logic and adds a third value, one >>>>changes all of the features of the prior logic. Every truth table must >>>>change. Every identity is potentially affected as are associativity, >>>>distributivity etc. >>> >>>Do the pre-existing rows of the truth tables of existing >>>boolean functions change? >> >>Yes; columns and rows are added. The result is the "combinatorial >>explosion" referred to elsewhere.
(using a monospace font...)
and| T | F
---+-------
T | T | F
F | F | F
must become
and| T | F | null
----+-------------
T | T | F | ?
F | F | F | ?
null| ? | ? | ?
more columns, more rows.
The question becomes, "WTF do we put in for ??"
If we decide that null means more than one thing, as SQL has done, we have to add more columns and rows for "null, type 1," "null, type 2," &c.
Some may ask, "How is it that SQL has decided that null has more than one meaning?" One brief answer is: it allows null to be stored in tables - having some magic meaning known to the designer - and it creates nulls (sic) in outer joins. (There are more examples; I could go on, but there's no point to it.)
Once a piece of magic fluff has more than one meaning, its "real" meaning is unknowable. In other words, I can imagine more than one way that a null showed up in a response to a query, but I can't discern *the* reason that it's there.
There's no good end to that trail. Received on Sat Apr 29 2006 - 20:29:18 CDT
![]() |
![]() |