Normalization is a process of organizing the data in database to avoid data redundancy, insertion anomaly, update anomaly & deletion anomaly.
It is a multi-step process that puts data into tabular form, removing duplicated data from the relation tables.
Normalization is used for mainly three purposes,
- Eliminating redundant data.
- Ensuring data dependencies make sense i.e data is logically stored.
- To reduce disk space.
If a table is not properly normalized and have data redundancy then it will eat up extra memory space and it is difficult to handle and update the database, without facing data loss.
Advantages of Normalization :
- Greater overall database organization will be gained.
- The amount of unnecessary redundant data reduced.
- Data integrity is easily maintained within the database.
- The database & application design processes are much for flexible.
- Security is easier to maintain or manage.
Disadvantages of Normalization :
- Performance: all the joins required to merge data slow processing & place additional stress on your hardware.
- Complex queries: developers have to code complex queries in order to merge data from different tables.
The database community has developed a series of guidelines for ensuring that databases are normalized.
These are referred to as normal forms. There are five types of normal forms
- First Normal Form(1NF)
- Second Normal Form(2NF)
- Third Normal Form(3NF)
- Boyce-codd Normal Form(BCNF)
- Forth Normal Form(4NF)