Re: dbdebunk 'Quote of Week' comment

From: David Cressey <david.cressey_at_earthlink.net>
Date: Fri, 26 Aug 2005 21:43:24 GMT
Message-ID: <02MPe.2727$FW1.744_at_newsread3.news.atl.earthlink.net>


"Marshall Spight" <marshall.spight_at_gmail.com> wrote in message news:1125074070.799079.80320_at_z14g2000cwz.googlegroups.com...
> x wrote:
> >

> > This means that there must be a one to one mapping between the generated
key
> > and some key with a meaning for the end user. Therefore that meaningless
> > primary key is a pointer. But one of the goals of the relational model
is to
> > eliminate pointers from the data model.
>
> I'm not sure I share this point of view. I propose that
> every pointer is meaningless; every key is meaningful,
> whether system generated or not. The meaning is exactly
> that it is the identity of the row. A randomly-generated
> customer id still means something.
>
I'm not sure I share YOUR point of view, either. I would suggest that the key is not the identity of the row, but the identity of the entity described in the row. If we were to delete the row, and then insert another row with a different key, who is to say that the system didn't reuse the unused row?

> Another difference between keys and pointers is that
> keys are content-addressible, while pointers are
> location-addressible.

And the important thing, as far as I'm concerned, is that rows are "unpinned" in the RM.
In practice, this is only partly true. If the DBMS alters either the content or the location of a row, it may have to do some index maintenance to reflect that change. But at least a row is unpinned except for the pins in the index. Received on Fri Aug 26 2005 - 23:43:24 CEST

Original text of this message