Re: two nasty schemata, union types and surrogate keys

From: Brian <>
Date: Mon, 21 Sep 2009 11:42:39 -0700 (PDT)
Message-ID: <>

On Sep 21, 10:27 am, Roy Hann <specia..._at_processed.almost.meat> wrote:
> 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?  

Everyone who advocates the closed world assumption.

> 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.

I don't think that it is sufficient.

> >> 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"?  

I don't know that what is in the database is true: I suppose that it is true. Under the closed world assumption what is not in the database is supposed to be false. As a consequence, many more conclusions can be drawn from the same data. For example, if there isn't a row in an employee table for Bob Smith, then under the closed world assumption we can infer that Bob Smith isn't an employee, but without the closed world assumption, that inference wouldn't be valid.

> 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 - 20:42:39 CEST

Original text of this message