Re: Newbie question about db normalization theory: redundant keys OK?

From: Brian Selzer <brian_at_selzer-software.com>
Date: Sat, 29 Dec 2007 01:41:40 -0500
Message-ID: <E_ldj.3287$lo5.332_at_newssvr19.news.prodigy.net>


"David Cressey" <cressey73_at_verizon.net> wrote in message news:A57dj.397$cq5.319_at_trndny06...
>
> "Brian Selzer" <brian_at_selzer-software.com> wrote in message
> news:lTXcj.3065$lo5.1456_at_newssvr19.news.prodigy.net...
>
>> You're sidestepping the issue. The information need not be preserved in
> the
>> database in order to be useful: it may only be needed to decide whether
>> or
>> not to permit an update. In any case, your demonstration would not prove
>> that there is /always/ a way to tell which transformation actually
> occurred.
>> I noticed that you ignored the balance of my last post.
>>
>
> That is plainly and simply not true. If the information is not preserved
> in
> the database state, its usefulness vanishes at the same instant that the
> information vanishes.
>

But the information is available and useful during a potential modification, so it doesn't matter that it vanishes once the modification completes (or doesn't). A rule might require that players start out with zero points; a rule might require that the quantity on hand be zero before removing a part from inventory; a rule might require an employee to have worked full time for several months before becoming eligible for benefits. In each case an assignment would not necessarily be sufficient to convey that a new individual exists, that an individual no longer exists, or that an individual differs in appearance.

Of course, you could always introduce surrogates or object identifiers or some other form of rigid designation or description, and then it would be possible to determine whether an insert, update or delete was intended whenever an assignment is issued. But it should be noted that it is only possible to make that determination when each key has values that rigidly designate or describe individuals. Also, in the case where a relation has multiple keys, it is not always possible to determine which individual was the target of an update, even if the values for the key rigidly designate individuals.

It should be obvious by now that relying on key values to correlate individuals at successive database states is problematic at best.

> Your argument rests, AFAICT, on contradictory views of what constitutes
> database state. Unless I'm wrong about this, you have crossed over into
> mysticism as far as I'm concerned.
>
>

If describing a mechanism that can more closely model reality constitutes crossing over into mysticism, then I'm guilty as charged. I would only point out here that in no way does that mechanism depend upon any particular interpretation. I'm also mystified [ ;) ] by your reference to contradictory views. What views have I expressed that contradict each other? Received on Sat Dec 29 2007 - 07:41:40 CET

Original text of this message