Rich Shepard wrote:
On Thu, 22 Feb 2007, Tim Tassonis wrote:
I do still think it is a bit of an oddity, the concept of the null
column.
From my experience, it creates more problems than it actually solves and
generally forces you to code more rather than less in order to achieve
your goals.
Tim,
Long ago, a lot of database applications used 99, or 999, or -1 to
indicate an unknown value. However, those don't fit well with a textual
field and they will certainly skew results if used in arithmetic
calculations in numeric fields.
I remember, my first database to write stuff for was an IMB IMS
hierarchical/network one.
The concept of NULL representing an unknown value, and therefore one that
cannot be compared with any other value including other NULLs, is no
different from the concept of zero which was not in mathematics for the
longest time until some insightful Arab mathematician saw the need for a
representation of 'nothing' in arithmetic and higher mathematics.
There was probably resistance to that idea, too, as folks tried to wrap
their minds around the idea that 'nothing' could be validly represented
by a
symbol and it was actually necessary to advance beyond what the Greeks and
Romans -- and everyone else -- could do. Now, one would be thought a bit
strange to question the validity of zero.
That's one point for me, then!. NULL exactly is _not_ the equivalent the
the number 0, but the mentioned strange symbol that has to be treated
specially and does not allow normal calculation, like '0' does in
mathematics. I don't know how many times I had to write a query that
ends with:
- or column is null
- and column is not null
exactly because it is a special symbol. In mathematics, the only special
case for zero that springs to my mind is the division of something by
zero (I'm by no means a mathematician).
As a completely irrelevant sidenote to the discussion, I'm greek and not
arabic, but I certinly do accept the superiority of the arabic notation.
NULL solves as many intransigent problems with digital data storage and
manipulation in databases as zero did in the realm of counting.
As I said, I don't deny it solves some problems (that could be solved in
a different way, too), but in my opinion, it creates more (that also can
be solved, as above examples show).
Tim