Re: 2nd and 3rd Normals
Posted in 1996
batonnet@zeta.org.au (Bryan Tonnet) wrote: ...snip of great tale... :Recent conversations with :ArchDBAs have torn up my preconceived ideas, and I have come to you, the :bodyless collective, for enlightenment. I do have a body though. :So, on with the question. Forgetting the book definition, and talking in :real terms, I have always believed that the 2nd normal form of a DB is :where every column in a record is dependant on the primary key. For example, :in an order file, where the primary key is Order Number, a column called Customer :number is in the second normal form if there is a "business dependancy" :between the order number and the customer number. The DB would not be in :2nd normal if the customer number had nothing to do with order number (hard :to imagine) or if the customer number/order number pair was already held :in another table making the instance in the order file redundant. :For 3rd normal, each non key column in the table (not primary or foreign) :has to be dependant on the primary key only. For example, if our order file :contained stock number, and stock description, then it could be said that :stock description is functionaly linked to the order number but also to the :stock number, and therefore the table in not 3rd normal. :Can anyone clarify this for me? Although most of my tables are in 3rd or higher normal forms I do also have some that are in 2nd normal form for good reasons. I do however not remember an exact enough definition to publish it here. The best place to get these forms clear is in the writings of C.J.Date. He have treated them extensively. If you haven't allready read his books they are great, and even the oldest onse are still very valuable reading. He have an educational type book on relational databases with excelent explanations of the normal forms. I don't remember the title, but it's published by John Wiley & Sons, Inc. Nils.Myklebust@idg.no NM Data AS, P.O.Box 9090 Gronland, N-0133 Oslo, Norway My opinions are those of my company The Informix FAQ is at http://www.iiug.org