Re: A real world example
Date: Thu, 17 Aug 2006 11:50:01 GMT
Message-ID: <JJYEg.8958$1f6.5008_at_newssvr27.news.prodigy.net>
"JOG" <jog_at_cs.nott.ac.uk> wrote in message
news:1155809294.447326.279260_at_m73g2000cwd.googlegroups.com...
> Brian Selzer wrote:
>> [snip]
>> If you've read the rest of my argument, then I ask you: how can you
>> possibly
>> use a temporal attribute to make the tuples in the database instance
>> preceding a change correspond to tuples in the database instance
>> succeeding
>> a change?
>
> I'm running out of ways to explain why this doesn't make sense Brian,
> so let me summarize:
>
I understand why it doesn't make sense. That's my entire argument. If something can have its appearance altered and still be the same thing, and if the only way to compare things is by their appearance, then you can't tell if two sets contain the same things unless you know how each of their appearances has changed or unless you know that the appearance of only one of them has changed.
> * Tuples can /only/ correspond if they have a common key attribute. To
> do so otherwise makes no logical sense.
>
If you know that the tuples in the proposed instance correspond to those in the current instance, and you know that only one tuple has a different key value, then the one that doesn't correspond by the key values is the one that is different.
If you know how to identify tuples in one instance and you know how to identify tuples in another and if you know how they're supposed to correspond, then instead of issuing a single assignment containing all of the changes, you can issue a series of individual assignments where only one tuple is different in each. (e.g., FOR EACH ROW)
> * If there is /no/ attribute value that remains the same, then the
> items the propositions refer to have no correspondence. They are
> different.
>
> * This isn't a problem because there is /always/ an attribute that will
> identify something. If your aim is to model the entity that consists of
> an 'item over its lifetime', then it is up to the designer to determine
> that key to identify that lifetime.
>
Then the model should take this into account in its definition. That may embody changing the definition of a key, or changing its treatment of attributes in the definition of a relation schema, or both. You can define multiplicity constraints, and that is defined in the model. Maybe you could define mutability constraints, and include that in the model. Maybe the entity integrity rule could be changed to include restrictions against mutable attributes as well as nullable attributes. I don't know. All I know is that I can break it, and that should be addressed somehow.
> * If no natural key is recordable then the designer must use an
> artificial surrogate for it (remember the underlying natural attribute
> it represents does exist somewhere). That artificial surrogate /must
> not/ be hidden as it is an external identifer.
>
I would have said, "If no natural key is both recordable and immutable then the designer must use an artifical surrogate for it."
> That's it. Nothing more to it. Can anyone else see any holes in this
> logic, or am I losing the plot?
>
Received on Thu Aug 17 2006 - 13:50:01 CEST