> I agree with most everything you said, as far as the use of a RDBMS, and
> especially: quoting you,
> "theoretically you break up your data into tables so that there is never a
> non-applicable field for any given row."
> Here is where I disagree with you, and please DON'T take this as an insult
> (we're just haggling over good/bad practices ),
No Insult or offense taken. Sorry for opening this can of worms ;)
> but I think it is lazy
> database design when you say:
> "In the real world, this can lead to a lot of complexity, so many people
> usually cheat and have a few "does not apply" fields for some records."
> OK! Now here is my top 5 explanations why using Nulls is a bad idea:
> Explanation(5): The more you understand how the database is to be used,
> and the more complexity and thought you put into your database design, the
> less complex it will be to retrieve reliable information out of it.
> Furthermore, (and this is probably what makes me crazy when Nulls are
> evolved) after a ten year stretch of software development, where I and a
> team designed our own databases, I did a nine year stretch of statistical
> programming, using databases designed by other people, and Nulls in the
> data made the results unpredictable, and yeah, made me crazy! I had to
> write nightly processes to resolve inconsistencies in the data, if at
> least report inconsistencies. You know the old saying "Garbage in =
> Garbage out", to me Nulls are garbage, and if there is a good reason for
> nulls to be a part of good clean data then someone please help me
> understand that.
> Explanation(4):I think that the brilliant computer scientists who
> developed the RDBMS database model, didn't want to support nulls
> initially, but they had to because null is a form of data, it means "We
> don't know what this is", and so it must be stored knowing that Null
> should NOT be used as valid information.
> Explanation(3):I think it was back in the sixties at Berkley, when some
> smart guy on LSD found a use for the Null value, and now this use of Null
> is taught in Universities all over the world, and considered to be a
> blessed method to practice.
> Explanation(2): Using a Null column, and you have an index on that column,
> the index will not be used since NULL values do not get stored in an index
> and that is why the optimizer will need to go to the data pages in order
> to retrieve more information to suffice the requirements of the query.
> Explanation(1): I'm just in a argumentative mood today.
I'm staying out of the debate on numbers 3,4 and 5, but I am watching with
interest. Number 2 is very good to know and I will make note of that. as for
number 1, well ...?
> Cheers and have a great weekend!