• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1785
  • Last Modified:

Newbie Q. : Which Normalization Form?

Some books recommend the database design is to move the
Non-Normal Form to Boyce Codd Normal Form :
Non-NF -> 1NF -> 2NF -> 3NF ->BCNF

Does nobody use Non-NF now?
When should I use 1NF,2NF,3NF or BCNF?
What is the advantage/disadvantage to use each normalized form?
Is BCNF ALWAYS better than 3NF and 2NF?
Is 3NF ALWAYS better than 2NF?

Many thanks.
rgds.
alan
alanpong@hkstar.com
0
alanpong
Asked:
alanpong
1 Solution
 
pagladasuCommented:
The basic purpose of normalisation is to reduce redundancy in data and avoid problems in updates, inserts and deletes.
The 1st normal form is always required as a minimum in a relational model - by definition every relation will always be in 1NF.
The 2NF is needed only when you want to remove partial dependencies - ie, you have a composite primary key on which some of the non-key attributes are partially dependent.
The 3NF form is needed to remove transitive dependencies - requred when a non-key attribute is functionally dependent on another non-key attribute.
BCNF is a special type of 3NF and is needed to be addressed when the relation may be in 3NF and yet have 2 composite candiate keys with an overlapping attribute.
It is not always necessary for a relation to be in a higher normal form. A higher normal form does not always imply better performance. For example if your system has low update activities but has to generate a lot of queries from many relations,  then it is better to keep them in lower normal forms as this would reduce the overheads of doing joins.

Thanks
pagladasu
0
 
alanpongAuthor Commented:
After seeking more examples in some reference books, I
understand now.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now