Re: a union is always a join!
Date: Thu, 19 Mar 2009 17:34:39 -0400
Message-ID: <PTywl.24297$yr3.6707_at_nlpi068.nbdc.sbc.com>
"Kevin Kirkpatrick" <kvnkrkptrck_at_gmail.com> wrote in message
news:20aa4363-4618-492f-9a38-b7b0291f03fa_at_a12g2000yqm.googlegroups.com...
<big snip>
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
>
> 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.
> I'll try to use
> your example to illuminate how absurd this is:
>
> Let us assume that we need to model the predicate "The traffic light
> at <cross_road> is <color>". I'll leave aside any attempt to find any
> use for such a predicate, but let's assume this is all the information
> our client cares to store about traffic lights at cross-roads.
>
> We model the predicate with the aformentioned TrafficLight relation.
>
> At 1:00 p.m., database user Alice asserts "The traffic light at <1st
> and Elm> is <Green>"
>
> The database receives :
>
> UPDATE TrafficLights
> SET color = 'Green'
> WHERE crossroad='1st and Elm';
>
> 5 minutes later database user Bob asserts, "The traffic light at <1st
> and Elm> is <Red>"
>
> The database receives:
>
> UPDATE TrafficLights
> SET color = 'Red'
> WHERE crossroad='1st and Elm';
>
> Nobody has asserted any proposition that fits "The traffic light at
> <crossroad> transitioned directly from <color1> to <color2>".
> Specifically, Bob is NOT asserting "The traffic light at 1st and Elm
> transitioned directly from green to red".
>
> Perhaps
> 1) the light had always been red, but Alice is color-blind and mis-
> reported it as 'Green', or
> 2) between when Alice and Bob reported its state, it was yellow (but
> nobody noticed).
> 3) the light was green or yellow when Bob saw it, but he clicked the
> wrong dropdown item and asserted 'Red'
> Since our databse does not model the real world in a way that allows
> us to infer 1, 2 or 3 (or any other plausible alternative), it cannot
> use your "transition constraints" to assume and prevent #3.
>
<snip> Received on Thu Mar 19 2009 - 22:34:39 CET