Re: two nasty schemata, union types and surrogate keys

From: Walter Mitty <>
Date: Sat, 26 Sep 2009 15:55:50 GMT
Message-ID: <aQqvm.3366$>

"Sampo Syreeni" <> wrote in message
> Still, to return to my original point, what do y'all think about the
> encoding of facts such as "yes, there are two separate persons called
> John Smith, and no, we don't have any more information about them as
> persons, yet given their sets of cars owned, the one with a Ferrari
> and the one with a Lamborghini are two different persons"?
> I mean, normalization often calls for encoding the persons and their
> ownership of cars in two separate relations. The first of which
> seemingly cannot have a natural key. As such, a surrogate key would be
> required, and no real alternative would be possible.

Normalization has very little to do with the semantics of the data. If you'll look carefully at all the examples of converting from one normal form to the next higher form, you'll see that the schema before conversion and the one after conversion are equivalent in their capacity to express facts. That's important.

Contrary to popular belief, adding a surrogate key to each table does not change the level of normalization of a schema. Candidate keys remain candidate keys after a surrogate has been added and declared the primary key. I'm not sure, but I think you're asserting the opposite above.

How do you know that there are two sets of cars owned, with each set owned by a different person, instead of one set consisting of two cars and with one owner? Is that fact expressed in the database? How? Received on Sat Sep 26 2009 - 17:55:50 CEST

Original text of this message