Re: A pk is *both* a physical and a logical object.

From: Brian Selzer <brian_at_selzer-software.com>
Date: Wed, 18 Jul 2007 03:28:58 GMT
Message-ID: <_Nfni.26756$2v1.2010_at_newssvr14.news.prodigy.net>


"Roy Hann" <specially_at_processed.almost.meat> wrote in message news:D6qdnak9D4K82gDbRVnytQA_at_pipex.net...

> "Brian Selzer" <brian_at_selzer-software.com> wrote in message 
> news:_jani.39744$Um6.23567_at_newssvr12.news.prodigy.net...

>>
>> "Roy Hann" <specially_at_processed.almost.meat> wrote in message
>> news:7e2dncCYhYD45wHbRVnytAA_at_pipex.net...
>>> "Brian Selzer" <brian_at_selzer-software.com> wrote in message
>>> news:1Pwmi.39574$Um6.32783_at_newssvr12.news.prodigy.net...
>>> [snip]
>>>> In addition, the definition of a candidate key does not demand that its
>>>> values rigidly designate individuals in the universe of discourse.
>>>
>>> I've been waiting for someone else to pick up on this comment, but since
>>> they haven't I'm going to bite. When you talk about "individuals" here,
>>> do you intend that to be understood as "individual propositions"?
>>>
>> No.
>
> Then what the heck *are* you talking about?  What is an "individual" (in 
> the context of a database)?
>

An individual is something that can be discussed.

>>> My layman's understanding is that the value of a candidate key most
>>> definitely *is* a unique identifier (and is irreducible).
>>
>> Indeed. But does the same key value identify the same individual in all
>> possible relation values? Clearly this is not the case. Consider a
>> relation schema in which the entire heading is the key. Now suppose that
>> a user issues a update. The tuple that identified an individual in the
>> universe prior to the update is now different from the tuple that
>> identifies the same individual after the update. Because the entire
>> heading is the key, it is clear that although the key uniquely identifies
>> an individual and is irreducible, it does not rigidly designate that
>> individual. A rigid designator identifies the same individual in all
>> possible relation values, not just the one that happens to be actual at
>> any given point in time.

>
> Under the closed world hypothesis, the only sensible reason to do the 
> update you describe to a row in a relation in which the entire header is 
> the key would be to retract a falsehood.   I have no interest in 
> falsehoods and I don't see how they are related to "individuals" (whatever 
> they are).  What am I not getting?
>

What does the closed world assumption have to do with it? The closed world assumption simply requires that if a tuple that does not violate the predicate of a relation is not contained within the particular relation value at a particular world, then the atomic formula represented by the tuple is false at that particular world. An update selects which possible world is actual; therefore, it operates independent of the closed world assumption. Any possible world can become the actual world, so it follows that each possible world should be closed with respect to itself.

> Roy
> Received on Wed Jul 18 2007 - 05:28:58 CEST

Original text of this message