Re: Database design, Keys and some other things

From: Marshall Spight <>
Date: 30 Sep 2005 07:37:41 -0700
Message-ID: <>

x wrote:
> "Marshall Spight" <> wrote in message
> > JOG wrote:
> > > A VIN exists in the real world, and as such is part of the proposition
> > > we are encoding. A surrogate key is an artifice of the database, does
> > > not exist in the world you are modelling, and is implemented to get
> > > your system working. This seems a very clear distinction to me.
> > Perhaps we have different definitions of surrogate keys. The VIN
> > may be something that's not a surrogate key in database A, but
> > it's certainly a surrogate key in *some* database, and hence I
> > don't see any particular difference between it and any other
> > made-up identifiers. SOMEone, some database, made up the VIN
> > out of thin air; we could well say they "implemented [it] to get
> > [their] system working." So I still don't see the distinction
> > you're drawing here.
> A VIN exists in the "real world" (outside every database), doesn't matter
> if it is artificial or not (maybe it was born at the same time with the car,
> so it is natural after all :-)).
> An "invisible id" never leave the database where it was born. It exists in
> exactly one database.
> Or
> An "invisible id" never escape the database world. It doesn't exists in the
> real world (outside every database).

Okay. By that line of thought, if we, say, print out the "invisible id" on a piece of paper, does it then transform into the same kind of thing as a VIN? To this way of thinking, what category does a bank account id fall into? I can see my bank account id on my account statement ...

Are these invisible ids we're discussing supported in any existing DBMS product, or are we speaking of them exclusively as a theoretical construct?

> > However, there is a definite trap in this general area, which
> > is the trap of thinking that there is anything profound to
> > be said about the relationship between the internal and the
> > external predicate. That relationship, between the database
> > and the world it models, exists only in the minds of the users
> > of the system, and it is wholly an illusion, if you will.
> > This is an important point, and it is also a philosophical one.
> The database have to be in sync with the world it models .
> When they go out of sync, the database and/or the world need to be updated
> somehow.

Well, yeah. But that doesn't mean the two have any actual relationship. The only way they relate is though a human doing data entry. (Or an automated sensor, or whatever.) That doesn't fall into the category of "anything profound."

Marshall Received on Fri Sep 30 2005 - 16:37:41 CEST

Original text of this message