Is your database normalized?
or
Is that inBCNF?
What is Normalization?
Normalization is the process of efficiently organizing data in a database.
Two goals of the normalization process are optimally design a database to:
1) To reduce redundant data
2) Data dependencies make sense
Without normalization, database systems can be inaccurate, slow, and inefficient and they might not produce the data you expect.
Benefits of Normalization
Normalization provides numerous benefits to a database. Some of the major benefits include the following :
- Greater overall database organization
- Reduction of redundant data
- Data consistency within the database
- A much more flexible database design
- A better handle on database security
The Normal Forms
First Normal Form
A Relation is said to be in 1NF if the values in the domain of each attribute of relation are atomic.Each cell of the table must have single value.No two rows in a table may be identical.
Second Normal Form
A relation R is said to be in 2NF if it is in 1NF and there should not be any partial dependency. Here all the non key attributes are dependent on the key alone. No attribute is depend upon a part of the key. Any relation having a key with single attribute is in 2NF.
Third Normal Form
A relation R is in 3NF if it is in 2NF and has no transitive dependency.Here all the non-key attributes are depend on the key alone.There should not be any dependency among the non-key attributes.
Boyce – Codd Normal Form BCNF
A relation R is in BCNF if every determinant is a candidate key.
Problem with BCNF: Given a relation R , Functional Dependency F, BCNF may or may not preserve all given functional dependencies.
Fourth Normal From
A Relation is in 4NF if it is in BCNF and has no multi valued dependency.
Fifth Normal Form
It deals with join dependency. A relation R is in 5NF if it has no join dependency.
Loss less Join Dependency : When we join the decomposed relation then we must get the original relation without any loss.