Re: All hail Neo!

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Wed, 26 Apr 2006 14:50:26 GMT
Message-ID: <SML3g.66136$VV4.1263877_at_ursa-nb00s0.nbnet.nb.ca>


Marshall Spight wrote:

> Frank Hamersley wrote:
>

>>I can cope with that - I would have no problem being forced to write
>>
>>"select avg(age) from table where age is not null"
>>
>>to get the crappy statistic that it is if the user demanded it.

>
>
> I dunno. If you have a whole lot of people and most of them
> have their ages filled in and a few don't, are you ever going
> to want to ask, "what is the average age", since the answer
> will always be "unknown."

The naive user will ask the query and get a surprising result. The naive user will then have to think about what is really desired. If an unknown answer is unacceptable, the user will have to make the effort to discover the missing ages.

If the user can accept the average of the known ages but has to adjust some other aspect of the application to account for the difference, the user can make both adjustments.

The elixir of null keeps the user blissfully ignorant of the mistake while magnifying a simple and easily corrected mistake beyond all recognition.

  Doesn't seem much use to me.

I suppose we should change square root to give us the root of the absolute value when dealing with integers, eh? Doesn't seem much use to ask for the root of a negative, or does it?

By the same logic, I suppose one can omit the ", x != 1" in a proof when simplifying:
(x-1)/(x-1) to 1 ? Your teachers were no doubt just being persnickity.

> If you want to know if any of them are unknown, you could
> ask that specifically.

But what would ever induce the naive user to ask that? I suppose one could ask whether any of the integers for which one evaluates the square root are negative. But if one asks for the square root and gets an integer, why would anyone think to dig further?

> But if you want to know the average
> age, then you want to know the average of the data you have;

In the example I gave, the average of the data the user had was truly unknown. The correct answer was unknown. Wouldn't the user want to know the correct answer? Or are you saying that the purpose of the dbms is to guarantee incorrectness?

> you're not asking about the data you don't have because
> you don't have it.

I disagree. As I said, I could model the data to state explicitly that the ages are unknown. That, then, is the data the user has.

 > The only useful query in there is "give
> me the average age for the data I have";

Yes, I agree, and the correct answer is unknown.

> why should we
> make the way you ask for that longer winded than other,
> never-useful queries?

You have not established that the queries are never useful. I have already established the counter examples.

> And how "crappy" is that statistic anyway? Probably not
> at all crappy. It's probably exactly what you want.

Actually, the probability that the incorrect result is desired is zero in the examples I gave. I already established that. Why would you waste everybody's time with this straw men?

> The idea of null as something that taints everything it
> touches doesn't seem useful or practical to me.

Null isn't useful or practical. Duh. Received on Wed Apr 26 2006 - 16:50:26 CEST

Original text of this message