Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bionet!apple!motcsd!hpda!hpcupt1!hpindwa!donovan From: donovan@hpindwa.HP.COM (Donovan Hsieh) Newsgroups: comp.databases Subject: A few words on the "normaliztion" Message-ID: <36270004@hpindwa.HP.COM> Date: 26 Jul 89 20:57:41 GMT Organization: Hewlett-Packard, Cupertino CA Lines: 44 There are two important factors for the designers to consider in designing a good relational database system : performance and data integrity & consistency. Unfortunately, the normalization theory which is commonly used to enforce the data integrity can often cause performance degredation. Since a normalized (to 3/4 NF) database although eliminates update anomalies, but it also increaes the cost for jointing normalized tables (or relations) and creating user views. It is easy to claim that a simple database which contains only a few tables to be fully normalized to its highest possible normal form. But in the real world applications, we are always faced with multi dimensional data attributes and complex relationships which sometimes we need to compromise between those two factors. Thus a good database design really should ballance between those two boundaries, and sometimes even adopt unorthodox approaches to gain the performance and usability. When I design a database application, I always evaluate what is the best data models (or even using only staright flat files or ISAM files) which will provide the most benefit for the users. If a relational database is a good fit, I normally use an Extended Entity-Relationship model to capture the real world semantics which is coupled with functional/multi-valued dependencies. Currently there are several normalization tools available on the market. A typical one would be from Chen & Association which will allow the database scheme to be normalized to 3NF or BCNF. In rare cases 4NF is required by the real world applications. Above all, multi-valued dependencies are very difficult to formulate for the 4NF, and it is also very expensive for the database system to enforce the multi-valued update consistency. After the database is fully normalized to my best knowledge, I will apply certain user requirements to justify if any normalized tables make sense. Most normalization tools which use synthetic algorithms have very little knowledge of the real world operations. Human intervention should be always applied at the final decision for optimal fine tuning. A good database system design is more than just normalizing the tables into normal forms. There are various aspects of issues and problems involved in the design process which require special treatment and attention. Donovan Hsieh Business Network Division Hewlett-Packard