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

From: Bob Badour <>
Date: Wed, 15 Aug 2007 09:43:31 -0300
Message-ID: <46c2f4b4$0$4056$>

JOG wrote:

> On Aug 15, 6:45 am, "Brian Selzer" <> wrote:
> [snip]

>>A simple example:  Suppose that you built several identical computers.  Each
>>has one motherboard, one DIMM, one hard drive, one video board, and one
>>case.  Each component is serialized, so the serial number for each component
>>would be a candidate key value in a relation describing the composition of
>>each computer.  You're having trouble with one of the computers, but you're
>>not sure which component is failing, or even if it is a hardware problem, so
>>you swap the hard drives from two of the computers to see if the problem
>>moves.  For either of the two computers affected by the swap, the
>>motherboard is the same, the DIMM is the same, the video board is the same,
>>and the case is the same.  So obviously, since those serial numbers are the
>>same before and after the swap, it's the same computer, right?  But wait,
>>the hard drive is different; therefore, it must not be the same computer
>>because the serial numbers for the hard drives are different.

> Nice little example. The answer is that in your schema you have no
> concept of a computer. None whatsoever. A computer does not exist.
> There is just a relationship between several components. A computer
> (which you have defined as a set of components) has no identity of its
> own over time outside the things it contains - and as such, if these
> components can be changed, it simply cannot be identified throughout
> its lifetime.
> Hence if you switch a component, well then you have a different set of
> components. And if you want to call that set of components a computer,
> yes, you have a different computer.
> If this was not what was desired (as I imagine) then your schema was
> broken. Your computer should have an id on the box to allow it to be
> identified / give it an identity.
> Make sense?
>>>>In addition, identification is not identity!
>>>Aha! That's where we differ then. That is /exactly/ what identity is
>>>in my opinion.  Identification is stating that if I know one attribute
>>>(or set of attributes) I can functionally determine the rest. Perhaps
>>>we should discuss that and then the rest of the arguments might fall
>>>into place? Let me start the ball rolling, with a catfood example for
>>>the new century ;)
>>An individual's identification is a set of properties that distinguishes the
>>individual from all others in the context of a picture of the universe; an
>>individual's identity is that set of properties that defines the individual.
>>These are two different things.

> "identity is that set of properties that defines the individual." -
> what does that mean, if not the properties that distinguish it from
> other entities of the same type in that universe?
>>>I am shown a can of catfood from an identical batch of three. Its
>>>only, single identifying feature is a number on it. I read it, and the
>>>can is taken away. I am then shown a new can. Is it the same can? Does
>>>it have the same identity? I read the number on it, which is
>>>different. I conclude therefore, quite sensibly, it is a different can
>>>to the first.
>>>Unbeknownst to me someone had shuffled the can numbers up at random
>>>after i'd read the first one. Even this mischevious soul himself has
>>>no idea if the original can I was given ended up with the same number
>>>on it as before (the shuffling was done blind). In fact /noone/ in the
>>>world now knows.
>>>Where does identity stand now?
>>Identity stands as it always did.  What is different is identification.

> If /noone/ can identify it any longer you still think the original can
> has some god-given soul-number? Us, humans, give something an identity
> - it doesn't just exist as a force of nature.
>>This is a perfect example of why update is primitive and assignment isn't.
>>An assignment replaces the current relation value with a new one, blindly,
>>but an update specifies which tuples are different and how each differs,

> An update replaces a relation with a new one with a delete, and then
> replaces it again with another new relation with an insert. Just
> because it the system does some jiggery pokery to work out which
> proposition to delete, and the content of the new one to be inserted
> does not change this.
>>which has the same effect as observing each can of cat food throughout the
>>interval from the first reading to the second.  Obviously, if you were able
>>to simultaneously observe each can, then there would be no doubt as to
>>whether the new can is the original can.

> In that (let us note different) situation there would be two different
> definitions of the relative identity of a can. One would be its point
> in space (which one observer has tracked) and the other its no. ID,
> which someone else is observing. Two different constructs. Neither is
> right, neither is wrong. Two things with their own distinct identity.
> And given I'm sure your not suggesting that someone should walk around
> pointing at things continually to give them their identity, they must
> have an observable property that does not change in the propositions
> in which they feature, otherwise they simply could not be recognized
> as the same thing in real life, never mind a database encoding.
> I know this is a subtle, uncomfortable way of viewing things - but
> I've managed to shake off the idea that something has an identity even
> if noone is observing it, so I'm sure others can. There is nothing to
> relative identity outside an objective human decision. Recognizing
> this means good conceptual modelling, as making the right decision is
> down to us. Regards, J.
>>>>Identification is used by one individual to pick another out of a crowd,
>>>>whereas identity is what one individual is.  It may be that much of the
>>>>confusion is caused by misinterpreting this simple distinction.
>>>>Identification is the nominative form of the verb "to identify."
>>>>Update is a primitive operation.  It is not a shortcut--it cannot be a
>>>>shortcut, because not all key values permanently identify individuals.

Jim, why do you continue to elevate this guy? I suggest cutting him off, and I don't care whether you use Occam's Razor or Grampa's axe to do it! Received on Wed Aug 15 2007 - 14:43:31 CEST

Original text of this message