Re: some information about anchor modeling

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: Thu, 19 Jul 2012 22:02:30 +0100
Message-ID: <1KWdnbBa9_x16JXNnZ2dnUVZ8nWdnZ2d_at_giganews.com>


"Eric" wrote in message news:slrnk0dvkm.pit.eric_at_teckel.deptj.eu...

> The VIN (and most other such things) is nothing more or less than
> Somebody Else's Surrogate Key. It is not an intrinsic property of the
> object it refers to.

I have very little idea what you mean by "intrinsic" here. All data in database systems are symbols assigned to things by people and/or machines. Who does the assigning is not necessarily important. What matters is what propositions the database user wishes to assert by using those symbols.

Different sources may disagree somewhat about what is a "surrogate" and what isn't. Codd's RM/T defines them as hidden attributes not exposed to database users and therefore not used to identify things in the external UoD. It follows that other (non-surrogate) keys are required to be used as external identifiers. This I think is the only sound and useful way in which a surrogate is distinguishable from a key that isn't a surrogate. Quite simply: either a key is being used to identify a correspondence between database propositions and facts in the external UoD (a domain key) or it is not (surrogate key).

> > The VIN is an intrinsic property.

> No it is not. It is not even an acceptable candidate key. If you think
> that it is, consider a database about car crime and insurance fraud.

Surely a VIN is an "acceptable" candidate key if you desire to ensure it is unique in a relation and you create a database constraint to guarantee that it is. That is all. The acceptability or otherwise of making such a constraint depends on what business rules you wish to enforce. If you are an insurer then I suggest it *could* be perfectly reasonable to enforce such a constraint on a Policy relation - to provide some degree of fraud prevention.

> > A property is an intrinsic property of an entity if we can say: "yes,
> > this entity has this property".

> You forgot "and the property is permanent".

Permanence is obviously not a requirement of candidate keys however. Again, I fail to see why the notion of something being "intrinsic" is interesting or relevant in a discussion about keys.

David Received on Thu Jul 19 2012 - 23:02:30 CEST

Original text of this message