Re: a union is always a join!
Date: Mon, 23 Mar 2009 13:18:11 -0700 (PDT)
Message-ID: <c1fcd68c-d62e-48f8-a8e1-48d7c1ac724c_at_v39g2000yqm.googlegroups.com>
Brian Selzer wrote:
> "Kevin Kirkpatrick" <kvnkrkptrck_at_gmail.com> wrote in message
> news:20aa4363-4618-492f-9a38-b7b0291f03fa_at_a12g2000yqm.googlegroups.com...
>
> <big snip>
> >
> > Brian,
> >
> > I have a major objection to your "transition-constraints".
> >
> > It is my understanding that databases are models of the real world,
> > and database values are collections of assertions (tuples) that fit
> > the database model (relations). At any given time, a database value
> > may contain assertions which are factually incorrect. When this is
> > detected, database users need to correct the database value by
> > updating/inserting/deleting appropritate tuples. Modifying a database
> > value from V1 to V2 is ONLY asserting that V1 is incorrect, and V2 is
> > correct. Nothing more.
> >
> > Modifying a database value from V1 to V2 is NOT the same as
> > 1) asserting that V1 was a fully correct description of the real world
> > at some earlier time,
> > 2) V2 is a correct description of the real world at present, and
> > 3) that the real-world transitioned directly from state V1 to V2 (e.g.
> > no other database value V3 exists such that V3 correctly described the
> > real world after V1 and before V2).
> >
> > However (and please identify/correct the straw-man here if it is one),
> > it seems like this is precisely how you think a modification of a
> > database value from V1 to V2 should be interpretted.
>
> Not exactly. (1) The universe of discourse is not nor have I even sought to
> imply that it is "the real world." The universe of discourse is just an
> abstraction that might reflect some aspect of the real world, or might be
> completely contrived.
Fair enough, my statement could have been more precise; "Databases are models of aspects of the real world; scoped by what is called the domain of discourse."
> That said, under the Closed World Assumption, what is
> not stated by the database is not true, and under the Domain Closure
> Assumption, only those terms that appear in positive formulae denote (map to
> things in the universe of discourse).
Nope. The CWA says, that which the database doesn't affirm, it denies. It doesn't say, "that which the database doesn't affirm, is not true / factually false". I mean, if I create a database of US states, enter the states to the best of my recollection, and leave Hawaii out, Hawaii will continue to be a member of the US of A, right? And if, the next day, I see a map and realize my mistake, and INSERT 'Hawaii', I'm not claiming that the United States just annexed a new territory, am I?
Sorry if this comes across as sophomoric, but without getting agreement on such simple ideas, I can't figure out if we're just talking past each other, or if you're some sort of weird crackpot.
> So under those assumptions, a
> database is a complete description of just a picture of the universe of
> discourse.
It's a description of the U-of-D based on human input, poor memory, imperfect sensory data, etc., and thus subject to revision and corrections. Do you believe that claims about the real-world stored in databases are supernaturally inerrant?
> In particular, during a transition, V1 is a complete description
> of what had since the last transition and up to now been the case /with
> respect to the universe of discourse./
You start working at a new company, and their HR person enters some information about you into the database, giving V1. You query the database later that day and discover that according to V1, you were born in 1917 (not 1971). In this hypothetical, what is V1 a "complete description" of? If the HR person gets your frantic call, apologizes, and updates the year-of-birth to 1971, (giving database value V2), what real-world transition occured between V1 and V2? Birthdays can't just change by 62 years in the real world - in light of this, what role do you think transition-constraints should have played in this situation? Would they have helped?
<snip>
>
> So what you're saying is that (1) we shouldn't specify constraints that can
> keep garbage out of the database because the users that supply information
> are unreliable witnesses; that (2) we shouldn't specify constraints that can
> keep garbage out of the database because the users that supply information
> are unreliable witnesses; and that (3) we shouldn't specify constraints that
> can keep garbage out of the database because the users that supply
> information are unreliable witnesses.
>
> By your reasoning, there's just no point in defining /any/ constraints at
> all.
>
Wow, sorry, but that is just obtuse. Constraints are *great* for keeping garbage out. For instance, "The traffic light at <1st and Elm> is <Blue>" should be excluded. "The traffic light at <1st and 1st> is <Blue>" should be excluded. These are garbage because they describe impossible states of affairs. That's what constraints do: they take your model of the universe of discourse, and prevent the entry of claims about the real world which are nonsensical, impossible, or leave some internal contradiction within the database.
Your "transition constraints" don't do this. They don't constrain the data at all; they constrain the means with which bad/incorrect/outdated data can be corrected. When can this possibly be useful?
User:"The database value V1 is incorrect, it should be V2".
TransCon: "Error... if V1 was correct, then V2 is impossible".
User: "Um, but V1 wasn't correct. It's incorrect, that's why I'm
changing it to V2"
TransCon: "Error... if V1 was correct, then V2 is impossible".
(and so on)
Received on Mon Mar 23 2009 - 21:18:11 CET