Re: a union is always a join!

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 7 Mar 2009 02:47:44 -0500
Message-ID: <BEpsl.24370$ZP4.9956_at_nlpi067.nbdc.sbc.com>


"Walter Mitty" <wamitty_at_verizon.net> wrote in message news:YYasl.1674$%u5.965_at_nwrddc01.gnilink.net...
>
> "Brian Selzer" <brian_at_selzer-software.com> wrote in message
> news:pi_rl.24249$ZP4.5099_at_nlpi067.nbdc.sbc.com...
>>
>> "Walter Mitty" <wamitty_at_verizon.net> wrote in message
>> news:Ziyrl.1235$%u5.1161_at_nwrddc01.gnilink.net...
>>>
>>> "Brian Selzer" <brian_at_selzer-software.com> wrote in message
>>> news:wLsrl.14888$as4.3977_at_nlpi069.nbdc.sbc.com...
>>>>
>>>
>>>>> that states what is happening. Whenever nothing is happening, what
>>>>> has been the case /is/ the case. For example, if Joe has been second
>>>>> in line
>>>
>>> Let's look at "whenever nothing is happening" in more detail. I submit
>>> that, at a point in time where there are no transactions in progress,
>>> that "nothing is happening". Further, I submit that, if serializability
>>> is the criterion for concurrency management, then the DBMS ensures that
>>> the view of the database is as if "nothing is happening", during a
>>> transaction, except for the actions of that transaction. Every other
>>> transaction can be seen as being completed "in the past" or beginning
>>> "in the future".
>>>
>>> So, if the transactions can be serialized, each transaction sees the
>>> database as if "nothing is happening". If you agree with all that,
>>> then why isn't your point moot? If you don't agree, where don't you
>>> agree?
>>
>> My point has little if anything at all to do with transactions and
>> concurrency control. Those belong to implementations. My point is that
>> relational calculus, or any equivalent mechanism such as relational
>> algebra, while necessary for describing database updates, is not
>> sufficient for that purpose because it can only apply to a single
>> database, not two successive databases. The mechanism of updating the
>> database cannot be reduced to mere algebraic expressions, but instead to
>> asserting, in the context of what has been the case, just what in the
>> world is different and exactly how. Let me explain.
>>
>
> So, what does "whenever nothing is happening" mean in the context of the
> point you are making?
>

In the context of the point I am making it introduces the null case: the case where no database update is indicated because the things that have been in the world are the things that are in the world and exactly how those things have been related to each other is exactly how those things are related to each other.

"What has been the case" encompasses the interval [Tn, Now), where Tn is the instant of the last change. "What is the case" is the snapshot of the world at the current instant. Whenever nothing is happening, "what has been the case" will obtain at least until the succeeding instant, so nontemporal queries against "what has been the case" must return exactly the same results as the same queries against "what is the case." Whenever something /is/ happening, on the other hand, at that instant "what has been the case" becomes "what had been the case during [Tn, Tc)" where Tc is the instant of what is happening, and since "What is the case" will obtain at least until the succeding instant, notemporal queries against "what is the case" must return exactly the same results as the same queries against a new instance of "what has been the case" that encompasses the interval [Tc, Now).

A changing world can be described as a series of snapshots or as a series of events. I prefer the latter because while the series of snapshots can be derived from the series of events, the series of events cannot always be derived from the series of snapshots. An expression that refers to one individual at one time may refer to a completely different individual at another. For example, "the person that is first in line" is definite in that it refers to exactly one person at a time, but the statement "The person that is first in line is wearing a red hat." could be true at successive times even if "the person that is first in line" refers to Joe at one time and to Mary at the next, provided both Joe and Mary are wearing red hats. Similarly, "The person that is first in line is wearing a red hat." could now be false because Mike, who is wearing a blue hat, is now first in line, or because Joe just put on a blue hat. Since each event occurs in the context of what has been the case, the confusion is eliminated because the transition that describes the event asserts just what in the world is different and exactly how. So it would be clear that Mike is now first in line or that Joe just put on a blue hat. Received on Sat Mar 07 2009 - 08:47:44 CET

Original text of this message