Re: a union is always a join!

From: Brian Selzer <>
Date: Sat, 28 Mar 2009 05:40:24 -0400
Message-ID: <dgmzl.2997$>

"Kevin Kirkpatrick" <> wrote in message
> Brian Selzer wrote:
>> "Kevin Kirkpatrick" <> wrote in message
>> <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".

From an epistemic perspective, the Closed World Assumption relegates everything that is knowable to being either known to be true or known to be false. Whether that knowledge is faulty is a separate issue.

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

No, you're not. You're issuing a correction. There is a significant difference between a correction and a transition. A correction rewrites history: it restates what has been the case since the last transition (or perhaps even before that). A transition, on the other hand, writes history: it marks the end of the interval associated with what had up to now been the case and the start of the interval assocated with what is now the case. So if there is a difference between a correction and a transition, how can the one distinguish between them? It's quite simple, really: if all and only corrections were to require explanation, then whenever an explanation is supplied, what was just issued was a correction instead of a transition. Define an attribute or set of attributes or even a set of relations to record explanations, depending on how much detail you need, and then require that whenever a correction is issued, an explanation must be supplied. Constraints can then be defined so that they target just transitions and not corrections, or different constraints can be defined that target just corrections.

<snip> Received on Sat Mar 28 2009 - 10:40:24 CET

Original text of this message