Re: two nasty schemata, union types and surrogate keys

From: Roy Hann <specially_at_processed.almost.meat>
Date: Mon, 21 Sep 2009 09:27:08 -0500
Message-ID: <fv-dncBlv-yhECrXnZ2dnUVZ8uGdnZ2d_at_pipex.net>


Brian wrote:

> On Sep 21, 3:41 am, Roy Hann <specia..._at_processed.almost.meat> wrote:
>> Brian wrote:
>> > Databases don't record objects: they record facts [...].  
>>
>> Admirably close, but not quite cigar-worthy.  Databases record
>> *assertions* of fact.  The assertsions may be sincere and truthful, or
>> sincere but false, or deceitful and false.
>
> Whatever. What is in the database is supposed to be true.

Says who?

It doesn't need to be true, and it can't be guaranteed to be true, so it is wise to remember that what's in the database is just claims and assertions. It is completely sufficient that the database is consistent.

>> As I have said before, it
>> is useful to think of the content of a database as being like the
>> testimony in a court case.
>
> I don't think that's very useful at all. The content of a database
> isn't necessarily tagged with who said it and when they said it, but a
> deliberating jury knows who said what when and can therefore weigh
> each statement accordingly. Without a record of who said what when,
> it is best to suppose that what is in the database is true.

You want to assume the database is true and I want not to spend time fretting whether it is or it isn't. How would you manipulate the data differently from me because you know it is "true"?

If you did need to know it is true, then you would need to guarantee it is. That would lead you into trying to design all kinds of clever ways to give that guarantee. Which will fail. I've been involved in two criminal justice projects that tried; both were train-wrecks.

-- 
Roy
Received on Mon Sep 21 2009 - 16:27:08 CEST

Original text of this message