[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1783
  • 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

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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