Jim Dettman
jimdettman at earthlink.net
Tue Jun 15 07:26:36 CDT 2004
Francis, Yes, you have a handle on it. I don't agree 100% that the autonumber would become a natural key in the sense that you describe (as I mentioned earlier, there are a lot of gray areas in terms of what "is" is<g>), but for the sake of argument, let's assume it does. Given that, I would doubt you could so casually discard it once again as information would then exist that uses that number. So now it is no longer meaningless and cannot be changed arbitrarily. But Autonumbers in the typical sense are not used in that way. They are used as tags or pointers, or in other words surrogate keys. They can be changed at anytime without affecting anything. I say "typical" in that we have no control over them. I'm not saying that they can't be used the way you describe, but one would normally want to retain control over an attribute. For example, in what you outlined, I certainly would not want gaps in a sequence, as I would derive information value from the numbers assigned. So I would still stand by the statement that an autonumber cannot be a natural key. <<Fun, but hardly the significant difference you have made it out to be.>> There is a significant difference. The point is that when discussing keys one needs to be aware of the different view points that exist between relational theory and computer systems. The term "key" means very different things. That will be it for me for a bit. Work has really heated up the past day or two. Have a client in Phoenix that's been giving me fits. Makes for a long day with a 3 hour time difference<g>. Jim jimdettman at earthlink.net -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Francis Harvey Sent: Monday, June 14, 2004 6:21 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] OT: The Great Primary Debate Jim, I would say you have missed the point. Nobody is disputing that there is a difference between surrogate and natural keys. The problem is with your characterization of the difference. By definition, a natural key is going to be in the data being modeled. A surrogate key won't. Okay. Now, take your objection to the autonumber as a natural key. Leave it as an arbitrary number being assigned to houses by the database as in your example. Now have the realtor tell people that for faster service when interacting with the database via phone, they should use the database number she is providing. I have just moved the autonumber into the data that has to be modeled and made it an attribute without changing anything else. It just so happens that this attribute is assigned by a database. Now I have my autonumber natural key. Now, imagine they drop automated phone support and tell homeowners to forget the number. I just moved it out of the data model again. Now I am back to just having an autonumber surrogate key. Fun, but hardly the significant difference you have made it out to be. Francis R Harvey III WB 303, (301)294-3952 harveyf1 at westat.com > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Dettman > Sent: Monday, June 14, 2004 3:59 PM > To: Access Developers discussion and problem solving > Subject: RE: [AccessD] OT: The Great Primary Debate > > > Scott, > > <<What exactly is the point?>> > > That there is a difference between a surrogate key > (something like an > autonumber) and a natural key. An autonumber cannot be a > natural key by > definition since it is meaningless. Look back at the > response I gave to > Lambert with the house number example. > > <<We are getting close to what someone else said(I think > Gustav). The only > natural key for an object, is the object.>> > > It was Lambert and it was in regards to talking about the > attributes of a > person. > > Jim > (315) 699-3443 > jimdettman at earthlink.net > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Scott Marcus > Sent: Monday, June 14, 2004 3:37 PM > To: Access Developers discussion and problem solving > Subject: RE: [AccessD] OT: The Great Primary Debate > > > << Nope sorry, but your missing the point. > > What exactly is the point? > > We are getting close to what someone else said(I think > Gustav). The only > natural key for an object, is the object. > > Scott Marcus > TSS Technologies, Inc. > marcus at tsstech.com > (513) 772-7000 > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Jim Dettman > Sent: Monday, June 14, 2004 3:32 PM > To: Access Developers discussion and problem solving > Subject: RE: [AccessD] OT: The Great Primary Debate > > Francis, > > <<Perversely, I would state the situation as the inverse of your > statement, as long as you don't change the autonumber, you can change > any attribute without changing the instance.>> > > Nope sorry, but your missing the point. > > Jim > (315) 699-3443 > jimdettman at earthlink.net > > -----Original Message----- > From: accessd-bounces at databaseadvisors.com > [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of > Francis Harvey > Sent: Monday, June 14, 2004 1:23 PM > To: 'Access Developers discussion and problem solving' > Subject: RE: [AccessD] OT: The Great Primary Debate > > > Jim, > > Perversely, I would state the situation as the inverse of your > statement, as long as you don't change the autonumber, you can change > any attribute without changing the instance. By using this approach, > you provide a solution to fix mistakes in the attributes that make up > the so-called "natural" keys due to miskeying, incomplete information, > or a change in value. > > In fact, if you used "natural" keys as your primary key, in order to > fix such mistakes you would have to allow for the very same thing that > you are claiming prevents autonumbers from being natural keys, > changing an attribute without changing the instance. > > Francis R Harvey III > WB 303, (301)294-3952 > harveyf1 at westat.com > > > > -----Original Message----- > > From: accessd-bounces at databaseadvisors.com > > [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of > Jim Dettman > > Sent: Monday, June 14, 2004 8:33 AM > > To: Access Developers discussion and problem solving > > Subject: RE: [AccessD] OT: The Great Primary Debate > > > > > > Scott, > > > <snip> > > > > No because the serial number would be associated with the > > instance, so it > > becomes an attribute even though it was assigned. An > > autonumber is not. I > > can change an autonumber at any time with no affect at all. > > Looking at any > > given row, if I change the autonumber, nothing happens. If I > > changed the > > serial number, I'd no longer be referring to the same instance. One > > meaningless, the other derived from the attributes of what > > I'm referring to. > > > > Jim Dettman > > (315) 699-3443 > > jimdettman at earthlink.net > <snip> > -- > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > -- > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > > > -- > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > > > -- > _______________________________________________ > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com > -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com