Re: A real world example

From: JOG <jog_at_cs.nott.ac.uk>
Date: 15 Aug 2006 06:51:44 -0700
Message-ID: <1155649903.685743.170520_at_i3g2000cwc.googlegroups.com>


Just as it is good to describe a person by something that will remain consistent (for example telling someone that they will recognise 'john' by his 'green jumper' is not particularly useful if he does actually change his clothes once in a while), so in database design it is vital to pick a good candidate key. Desirable properties are:

  1. very likely to maintain uniqueness over relation values.
  2. very unlikely to change between relation values.

The RM does not require that anything is immutable, but clearly, finding a key that tends to immutability is desirable for (2).

It appears to me reading the posts in this thread, that everyone is agreed on these points, so I would like to suitably bang all your heads together, as in some instances you are all just agreeing loudly, just with the vociferous bluster of miscommunication.

Given that all are agreed that surrogates are useful, this leaves the _only_ point that seem to be in contention:

"Should a surrogate be made hidden from the user"

I'd contend no, absolutely not. Surrogates are instigated by real world difficulties in distinguishing items even if they are generated by a DBMS (in fact it does not matter a jot what generates them logically). Hence if they are hidden, it is a clear violation of the information principle, which is vital for the real world identification that precipitated the need for them in the first place. Received on Tue Aug 15 2006 - 15:51:44 CEST

Original text of this message