Surrogate Key:

From: David Cressey <david_at_dcressey.com>
Date: Mon, 08 Jan 2001 19:53:45 GMT
Message-ID: <dVo66.34413$2X4.47487_at_petpeeve.ziplink.net>


Joe,

You are using the term "surrogate key" differently than some other authors do,
unless I'm misreading either you or them. I'm thinking of Ralph Kimball in particular,
but not limited to him.

The way they use "surrogate key", the key would be of no interest to the programmers
of the source databases, but they would be of interest to programmers constructing
queries against, say, a data mart.

The reason is that surrogate keys that serve as primary keys to the dimension tables
are referenced via foreign keys in the fact tables. Whoever programs the join conditions
needs to be aware of the surrogate keys.

Joe Celko <71062.1056_at_compuserve.com> wrote in message <93d3hh$2kr$1_at_nnrp1.deja.com>...

>
>A surrogate key is created by the database system for its own use and
>it is never exposed to the user. Artifical keys are created by the
>users and they are exposed. These two terms get confused. I don't
>care about surrogate keys, any more than I would care about pointer
>chains, indexes and all the other various access methods SQL products
>use -- I never see them as a programmer. I would care about them if I
>were the PHYSICAL database administrator and had to tune them, buy more
>disk drives, etc.
>
Received on Mon Jan 08 2001 - 20:53:45 CET

Original text of this message