Introduction
This article is intended for audiences who are aware of designing the database but are not sure about the Normalization process.
What is Normalization?
When we want to store some piece of information, we store it in a database. Now storing a data in database means it should be stored properly so that while retrieving it, it should be easy. So we say to store it in a Normalized way. In short, Normalization can be defined as the process of organizing the data in a database efficiently. The result of normalization is a logical database design and is called Normal Form.
Why Normalization?
The goals of the Normalization process are
- It helps you to eliminate the redundant data from the same table.
- It ensures the data dependencies between the tables are proper.
- A Normalized database design makes it easy to change in modification is required.
Advantages of Normalization
- Data redundancy is removed
- Faster update as redundant columns from tables are removed.
- Easy understanding of the structure
- Improvement in Index as be achieved
- Long-term maintainability of the database gets easier
Disadvantages of Normalization
- Query, to some extent, gets complicated
- Performance may degrade due to multiple joins
Suppose I have some data with me, say
UnNormalized Table

As you can see above, the table is not properly managed
The normalization process is mainly divided into stages which we call Normal Form. Let’s talk about each Normal Form one by one with an example. Basically, a database can be normalized into various normal forms, such as
- First Normal Form (1NF)
- Second Normal Form (2NF)
- Third Normal Form (3NF)
- Boyce Codd Normal Form (BCNF)
- Fourth Normal Form (4NF) and so on
But today I would like to talk about only up to Boyce Codd Normal Form because Fourth Normal Form and others are rarely used in the database design.
First Normal Form (1NF)
- Eliminate all repeating groups in individual table
- One cell should contain only one data
- Create a separate table for each set of related data
- Identify each set of related data with a primary key

As you can see above,
- Our UnNormalized table does not have a repeating group. So this is not applicable over here.
- We have eliminated the comma-separated values and shifted to another table, Skill. Each employee in the Employee table is related to the Skill table through the EmployeeId column (Note: It is not a foreign key relationship. We are just replacing the comma-separated values in each cell into rows and creating a separate table for each)
- Each cell is containing a single value
- Skills of the table are identified with primary key






sidharthanPosted Sep 1, 2014, 9:11 AM
Very Understandable question
sidharthanPosted Sep 1, 2014, 9:10 AM
Good Articles