Re: What are cons and pros for using IDENTITY property as PK in SQL SERVER 2000?
You are starting to get on my nerves with your claims of having
super-preciseness that no one else has. You state:
[color=blue][color=green]
> > Well, then apparently you are so good at English, and less good at being
> > precise. If natural keys and surrogate keys were in fact the same[/color][/color]
thing,[color=blue][color=green]
> > then why would we have multiple terms for these things?[/color]
>
> I don't recall saying they are the same thing. I recall saying that one is[/color]
a[color=blue]
> subset of the other. Perhaps, if you had better grasp of written english,
> you would have observed that the first time. I see nothing imprecise about
> what I said.[/color]
Then you say
[color=blue][color=green]
> > It is used as a surrogate key.[/color]
>
> All keys are surrogates.[/color]
By anyones cound, a natural key must be a key. You state that all keys are
surrogates, hence, due to our old friend the transitive property, all
natural keys are surrogates. .
[color=blue]
> A surrogate key is a unique identifying attribute that is not derived from
> any other data in the database and whose only significance is to act as an
> identifying attribute.[/color]
By any other data, it means that the value is not based on the existence of
any other data. Otherwise all normalized data (one single source) is by
your definition surrogate data.
[color=blue][color=green]
> > You name is part of what makes you you, because everyone has a name.[/color]
>
> Your statement shows a general lack of imagination. Not every infant is
> named at the moment of birth, and my name is not a part of me. It is
> external to me, and I do not change when my name changes.
>[/color]
We are talking about modeling reality in relational database, not reality in
and of itself. Every column that makes up the table becomes part of the
essense of the row/instance of the entity being modeled. Not one column in
our person table reflects any real attribute of my being, as I am a human
being (go ahead, feel free to challenge it :) and as such not electronic.
However, the row in the database models me, and has as much information to
represent me as possible/necessary.
[color=blue][color=green]
> > If it is a matter of taste, then I don't mind anyhow. I like hearing[/color]
> others[color=green]
> > opinions, and as to why my ideas are wrong if they are (and some are.)[/color]
>
> It is not a matter of taste but a matter of education. By very objective
> criteria, hiding the logical identifier from users is just plain stupid. A
> user must have access to the logical identifier to properly and to[/color]
correctly[color=blue]
> express queries.[/color]
Two reasons this is wrong. One, most users do not do any direct querying
into an OLTP database directly. Generally all queries would be built for
them by administrators (possibly the meaning of user as I was using it was
not quite clear, I should have said end users)
But second, if I express the following query:
Select fieldList
from table1
join table2
on table1.table1Id entityKey = table2.table1Id entityKey
When have I ever seen this value? I haven't. This would likely never be
seen, even by administrative users, other than for convienience of not
typing a compound key that might contain a date value, or a guid, or
whatever is needed to naturally identify the row.
[color=blue][color=green]
> > I have these discussions so I can improve my opinions that I
> > have carefully crafted over 11 years, and that I frequently give to[/color]
> others.
>
> Some people frequently give others syphyllus, but I would not congratulate
> them for the deed. I suggest you get more out of the gift than the others
> do.
>[/color]
The only think I can think to respond here is "You are a ninny." Though
that is possibly a bit sophisticated a response to such a preposterously
banal comment from someone who has such high regards for his own knowledge.
[color=blue]
> Again, I suggest your perception of anger suggests your ability to
> comprehend written english sorely lacks. I invite you to consider whether
> you project your own emotional state onto the words you read and to[/color]
consider[color=blue]
> whether this might cloud your ability to interpret the meaning of those
> words.[/color]
You are correct. You have been quite nice, and I apologise for miscontruing
your remarks as having any anger or animosity towards myself or any of the
other persons who have responded.
--
----------------------------------------------------------------------------
-----------
Louis Davidson (drsql@hotmail. com)
Compass Technology Management
Pro SQL Server 2000 Database Design
Note: Please reply to the newsgroups only unless you are
interested in consulting services. All other replies will be ignored :)
"Bob Badour" <bbadour@golden .net> wrote in message
news:IuudnRiuHo aJyFOiRVn-ig@golden.net.. .[color=blue]
> "Louis Davidson" <dr_dontspamme_ sql@hotmail.com > wrote in message
> news:uOuI6hduDH A.1088@tk2msftn gp13.phx.gbl...[color=green]
> > "Bob Badour" <bbadour@golden .net> wrote in message
> > news:Oq-dnVyyJ6z0t1OiRV n-vw@golden.net.. .[color=darkred]
> > >
> > > Then I can only conclude you lack the ability to comprehend relatively
> > > simple written english.[/color]
> >
> > Well, then apparently you are so good at English, and less good at being
> > precise. If natural keys and surrogate keys were in fact the same[/color][/color]
thing,[color=blue][color=green]
> > then why would we have multiple terms for these things?[/color]
>
> I don't recall saying they are the same thing. I recall saying that one is[/color]
a[color=blue]
> subset of the other. Perhaps, if you had better grasp of written english,
> you would have observed that the first time. I see nothing imprecise about
> what I said.
>
>[color=green][color=darkred]
> > >That might be a good definition of an IDENTITY column, but it has no[/color]
> > bearing[color=darkred]
> > >on surrogate keys. By equating the identity columns with surrogate[/color][/color][/color]
keys,[color=blue][color=green]
> > you[color=darkred]
> > >only confuse yourself and potentially any similarly uneducated readers.
> > >Nothing about a surrogate key requires a DBMS to generate it.[/color]
> >
> > I did not come up with any of this terminology.[/color]
>
> That's obvious. You do not comprehend the terminology either.
>
>[color=green]
> > An identity is an
> > artificial key.[/color]
>
> It is an rdbms generated key.
>
>[color=green]
> > It is used as a surrogate key.[/color]
>
> All keys are surrogates.
>
>[/color]
You are starting to get on my nerves with your claims of having
super-preciseness that no one else has. You state:
[color=blue][color=green]
> > Well, then apparently you are so good at English, and less good at being
> > precise. If natural keys and surrogate keys were in fact the same[/color][/color]
thing,[color=blue][color=green]
> > then why would we have multiple terms for these things?[/color]
>
> I don't recall saying they are the same thing. I recall saying that one is[/color]
a[color=blue]
> subset of the other. Perhaps, if you had better grasp of written english,
> you would have observed that the first time. I see nothing imprecise about
> what I said.[/color]
Then you say
[color=blue][color=green]
> > It is used as a surrogate key.[/color]
>
> All keys are surrogates.[/color]
By anyones cound, a natural key must be a key. You state that all keys are
surrogates, hence, due to our old friend the transitive property, all
natural keys are surrogates. .
[color=blue]
> A surrogate key is a unique identifying attribute that is not derived from
> any other data in the database and whose only significance is to act as an
> identifying attribute.[/color]
By any other data, it means that the value is not based on the existence of
any other data. Otherwise all normalized data (one single source) is by
your definition surrogate data.
[color=blue][color=green]
> > You name is part of what makes you you, because everyone has a name.[/color]
>
> Your statement shows a general lack of imagination. Not every infant is
> named at the moment of birth, and my name is not a part of me. It is
> external to me, and I do not change when my name changes.
>[/color]
We are talking about modeling reality in relational database, not reality in
and of itself. Every column that makes up the table becomes part of the
essense of the row/instance of the entity being modeled. Not one column in
our person table reflects any real attribute of my being, as I am a human
being (go ahead, feel free to challenge it :) and as such not electronic.
However, the row in the database models me, and has as much information to
represent me as possible/necessary.
[color=blue][color=green]
> > If it is a matter of taste, then I don't mind anyhow. I like hearing[/color]
> others[color=green]
> > opinions, and as to why my ideas are wrong if they are (and some are.)[/color]
>
> It is not a matter of taste but a matter of education. By very objective
> criteria, hiding the logical identifier from users is just plain stupid. A
> user must have access to the logical identifier to properly and to[/color]
correctly[color=blue]
> express queries.[/color]
Two reasons this is wrong. One, most users do not do any direct querying
into an OLTP database directly. Generally all queries would be built for
them by administrators (possibly the meaning of user as I was using it was
not quite clear, I should have said end users)
But second, if I express the following query:
Select fieldList
from table1
join table2
on table1.table1Id entityKey = table2.table1Id entityKey
When have I ever seen this value? I haven't. This would likely never be
seen, even by administrative users, other than for convienience of not
typing a compound key that might contain a date value, or a guid, or
whatever is needed to naturally identify the row.
[color=blue][color=green]
> > I have these discussions so I can improve my opinions that I
> > have carefully crafted over 11 years, and that I frequently give to[/color]
> others.
>
> Some people frequently give others syphyllus, but I would not congratulate
> them for the deed. I suggest you get more out of the gift than the others
> do.
>[/color]
The only think I can think to respond here is "You are a ninny." Though
that is possibly a bit sophisticated a response to such a preposterously
banal comment from someone who has such high regards for his own knowledge.
[color=blue]
> Again, I suggest your perception of anger suggests your ability to
> comprehend written english sorely lacks. I invite you to consider whether
> you project your own emotional state onto the words you read and to[/color]
consider[color=blue]
> whether this might cloud your ability to interpret the meaning of those
> words.[/color]
You are correct. You have been quite nice, and I apologise for miscontruing
your remarks as having any anger or animosity towards myself or any of the
other persons who have responded.
--
----------------------------------------------------------------------------
-----------
Louis Davidson (drsql@hotmail. com)
Compass Technology Management
Pro SQL Server 2000 Database Design
Note: Please reply to the newsgroups only unless you are
interested in consulting services. All other replies will be ignored :)
"Bob Badour" <bbadour@golden .net> wrote in message
news:IuudnRiuHo aJyFOiRVn-ig@golden.net.. .[color=blue]
> "Louis Davidson" <dr_dontspamme_ sql@hotmail.com > wrote in message
> news:uOuI6hduDH A.1088@tk2msftn gp13.phx.gbl...[color=green]
> > "Bob Badour" <bbadour@golden .net> wrote in message
> > news:Oq-dnVyyJ6z0t1OiRV n-vw@golden.net.. .[color=darkred]
> > >
> > > Then I can only conclude you lack the ability to comprehend relatively
> > > simple written english.[/color]
> >
> > Well, then apparently you are so good at English, and less good at being
> > precise. If natural keys and surrogate keys were in fact the same[/color][/color]
thing,[color=blue][color=green]
> > then why would we have multiple terms for these things?[/color]
>
> I don't recall saying they are the same thing. I recall saying that one is[/color]
a[color=blue]
> subset of the other. Perhaps, if you had better grasp of written english,
> you would have observed that the first time. I see nothing imprecise about
> what I said.
>
>[color=green][color=darkred]
> > >That might be a good definition of an IDENTITY column, but it has no[/color]
> > bearing[color=darkred]
> > >on surrogate keys. By equating the identity columns with surrogate[/color][/color][/color]
keys,[color=blue][color=green]
> > you[color=darkred]
> > >only confuse yourself and potentially any similarly uneducated readers.
> > >Nothing about a surrogate key requires a DBMS to generate it.[/color]
> >
> > I did not come up with any of this terminology.[/color]
>
> That's obvious. You do not comprehend the terminology either.
>
>[color=green]
> > An identity is an
> > artificial key.[/color]
>
> It is an rdbms generated key.
>
>[color=green]
> > It is used as a surrogate key.[/color]
>
> All keys are surrogates.
>
>[/color]
Comment