Re: Primary Key Theory Question

From: ben brugman <ben_at_niethier.nl>
Date: Sat, 3 Apr 2004 15:47:47 +0200
Message-ID: <c4mf3m$4lq$1_at_reader08.wxs.nl>


"Mike Sherrill" <MSherrillnonono_at_compuserve.com> wrote in message news:l1fq60h3q0puk064v0pvjmafs3rdb7hnvi_at_4ax.com...
> On Thu, 1 Apr 2004 15:47:40 +0200, "ben brugman" <ben_at_niethier.nl>
> wrote:
>
> >> In my experience, a surrogate key takes the place of a candidate key,
> >> and an artificial key isn't a key. An artificial key might uniquely
> >> identify a row, but it doesn't uniquely identify what the row
> >> represents.
> >>
> >I do not really understand what you are writing.
> >
> >If an artificial key uniquely identifies a row but not what the row
> >represents, the row does neither uniquely identify what the
> >row represents. This is what I read and do not understand.
>
> I think you do understand it. If you start with this kind of table:
>
> Full_Name
> --
> Sherrill, Mike
> Sherrill, Mike

By definition this can not be a candidate key and therefore can't be a primairy key either.
Since quite some time it is customary to follow the concepts candidate key and primairy key as being unique. (Those definitions stem from the codasyl 1976 I think). (A candidate key uniquely defines a row).

So the same 'identification' can not be a candidate or primairy key. I reacted to your message going from those definitions.

So if we are not in agreement of the terms candidate and primairy then the other keys as artificial and surrogate become very difficult to talk about, because in general there is no concensus about those two.

ben

>
> There's no key. You can't tell which row refers to which Mike
> Sherrill. (You can't really tell whether there are one or two of us,
> but that's a different point.) Add a sequence and you can identify
> the row,
>
> ID Full_Name
> --
> 1 Sherrill, Mike
> 2 Sherrill, Mike
>
> but you still don't know which Mike Sherrill is which. I'd call that
> an artificial key. OTOH, we have security badges here. They're
> unique, but clumsy.
>
> Badge_Number Full_Name
> --
> ACH234A-B33F3E Sherrill, Mike
> ACH11DE-B53F7F Sherrill, Mike
>
> To make life easier on yourself, you might add a sequence to this
> table.
>
> ID Badge_Number Full_Name
> --
> 1 ACH234A-B33F3E Sherrill, Mike
> 2 ACH11DE-B53F7F Sherrill, Mike
>
> Since it takes the place of a key, I'd call it a surrogate.
>
> --
> Mike Sherrill
> Information Management Systems
Received on Sat Apr 03 2004 - 15:47:47 CEST

Original text of this message