Re: What does this NULL mean?

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: 11 Dec 2005 08:25:00 -0800
Message-ID: <1134318300.044294.82060_at_f14g2000cwb.googlegroups.com>


John Eggert wrote:

> David Portas wrote:
>
> > John Eggert wrote:
> >
> >>
> >> Ok, I've been somewhat ignoring this entire topic lately, but I have a
> >> real world situation that I'd like to see a solution for. I am currently
> >> moving the operator reporting for an industrial process from a paper
> >> system to a computer based system. One thing that is occuring with the
> >> paper system is:
> >>
> >> An operator does what are called 'rounds'. They do certain things at a
> >> certain time. Most of these are manual checks of various circuit
> >> parameters. Take one of these as an example: The amount of activated
> >> carbon per tank ( I like this one because there is no automated method
> >> for this measurement at this time ). They then write this number down. On
> >> occasion, it is not possible to get the value. They are usually busy
> >> somewhere else. This information (the fact that the operator missed a
> >> round) is indicated by the blank cell in the hand written report sheet. I
> >> would interpret this as a NULL value. How can I capture the same data
> >> (the missing information IS the data) in a database? Just to be clear,
> >> the empty cell in the completed operator's report sheet IS USEFULL DATA.
> >> It isn't 0, it isn't unknown, it is missing data. The fact that >>the
> >> data is missing<< is the data I need to capture. I need to be able to
> >> quantify how frequently the data is missing, if it is any particular
> >> operator or any particular part of the process etc. I am using "NULL" as
> >> a default value. Given the long debate on the good bad and ugly of NULL,
> >> what is wrong with that? Isn't this exactly the situation where a NULL
> >> value is needed, appropriate and functionally usefull?
> >>
> >> With respect to the normalization aspect. How can one better normalize a
> >> system so that one can capture the fact that someone did not fill in
> >> something that should normally have been filled in but for unknown
> >> reasons did ( and possibly could ) not? If I have single attribute tables
> >> I can still have the missing data. How can I further normalize a single
> >> number?
> >>
> >> Cheers.
> >>
> >> JE
> >
> > Have you read:
> >
> >
> http://web.onetel.com/~hughdarwen/TheThirdManifesto/Missing-info-without-nulls.pdf
> >
>
> I generally don't look for real world solutions in THM. I'm not designing a
> new RDMS. I'm designing an application that must run on what currently
> exists.
>
> From THM:
> ?The person identified by 1236 is called Cindy and has the job of
> a ?,earning 70,000 pounds per year?, does not make sense.
>
> As you can see from the above, from your reference, the premise that the
> missing data "does not make sense" is critical to the rest of Date's
> argument. As I pointed out, in my case, it does make sense, because it is
> something that happens in the current situation. Please note that the
> statement that it "does not make sense" is not further explained. Why not?
> It makes perfect sense to me, hence the premise is flawed. As such, the
> further logical structure based on that premise is also flawed. No answer
> for me there.
>

You have misunderstood the "does not make sense" comment. Darwen does not mean that it doesn't make sense to model missing data. In fact he presents a solution for doing exactly that. What doesn't make sense to Darwen is the predicate derived from the table with ?s. To record the fact that we don't know something makes perfect sense.

I don't think you read enough because the solution is there and is possible (with variations) with existing database systems.

-- 
David Portas 
SQL Server MVP 
--
Received on Sun Dec 11 2005 - 17:25:00 CET

Original text of this message