Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!uunet!cimshop!davidm From: cimshop!davidm@uunet.UU.NET (David S. Masterson) Newsgroups: comp.databases Subject: Re: Entity Models and BCNF Message-ID: Date: 18 Dec 90 18:09:53 GMT References: <9129@cognos.UUCP> <34942@netnews.upenn.edu> Sender: davidm@cimshop.UUCP Organization: Consilium Inc., Mountain View, California. Lines: 32 In-reply-to: aaron@grad2.cis.upenn.edu's message of 17 Dec 90 15:10:21 GMT X-Posting-Software: GNUS 3.12 [ NNTP-based News Reader for GNU Emacs ] >>>>> On 17 Dec 90 15:10:21 GMT, aaron@grad2.cis.upenn.edu (Aaron Watters) >>>>> said: Aaron> Okay, please give me an example where the paradigm shift actually Aaron> helps. Someone previously mentioned something about removing a foriegn Aaron> key from an entity -- which seemed to me to be a silly mistake in the Aaron> first place -- the modeller should have asked `Is this thing really an Aaron> attribute of this entity?' to get the right answer without worrying Aaron> about dependancies at all. Well, you may quibble about talk of "functional dependencies", but the logical grounds are sound. In a logical model, its better to identify relationships separately from the entities so that attributes may be properly assigned. For instance, the Married-To relationship might have a Date attribute that logically does not make sense as part of one the entities (Employee or Wife). However, in final analysis, it may be decided to represent the Married-To relationship as a foreign key on the Employee relation. To be more explicit: The denormalization process should only occur when physically implementing the logical model. A normalized logical model presents DB analyst with a more complete view of the world for both the current implementation and future changes. -- ==================================================================== David Masterson Consilium, Inc. (415) 691-6311 640 Clyde Ct. uunet!cimshop!davidm Mtn. View, CA 94043 ==================================================================== "If someone thinks they know what I said, then I didn't say it!"