Normalization of Database
Normalization of a database, in short, describes the process of organizing the data efficiently in order to improve the database. There are two main objectives of normalization.
First goal is to eliminate redundancy of data. This simply means that the same information is not stored in more than one place in the database. Second goal is to make sure that there are data dependencies. Both objectives strive to reach a “good” and efficient database by opening up space in database (very beneficial to organization) and ensuring that the way data are stored is logical.
Normal Forms were created to guide the normalization process of a database. It is numbered from 1 to 5 (1NF, 2NF, 3NF, 4NF, 5NF). 1NF to 3NF are what we will normally encounter; 4NF is occasionally used whereas 5NF is very rare. However, normal forms are only a guideline; it is not the “right” way of normalization.
First Normal Form (1NF) is the lowest form which describes the basic features that make an organized database:
1) Eliminate duplicating columns from one table.
2) Using separate tables for groups of related data; apply primary key (unique columns to identify each row).
Second Normal Form (2NF) implements the idea of eliminating duplicative data.
1) Both criteria for 1NF need to be applied
2) Eliminate subsets of data from one table and create separate tables for those data.
3) Make relationships among these newly created tables with the original table (use foreign keys)
Third Normal Form (3NF)
1) All criteria of 2NF need to be met
2) Eliminate columns which are not fully dependent on the primary key.
Fourth Normal Form (4NF)
1) All criteria up to 3NF should be met.
2) Eliminate multi-valued dependencies.
Normalization is generally a good way to organize a database and make its design more efficient. However, it is not a requirement. Especially, it is important to keep in mind that the Normal forms are only a guideline, and in fact, often times, different cases require different methods than normal forms in process to achieve normalization.