Normalization and Denormalization

Normalizationis the process of arranging the data into a database in efficient manner. Goal of the normalization is to reduce the amount of space consumed in database and ensure that data is properly stored. In order to reach the goal, normalization process has two major aspects to focus on; avoiding overwrite process of data by eliminating redundancies and arranging related data in a table to ensure data dependencies.
Advantages:
  • Elimination of duplicate data reduce the overall size of database.
  • More fine-tuned tables allows to fit more records per data page.
  • Faster maintenance of tasks because of fewer indexes per table.
Disadvantages:
  • More number of tables are needed to join in such cases like spreading of data into more tables make database difficult to understand.
  • Time consuming and very difficult to query the database to function properly.
  • Higher level of normalization includes lots of tables in database leads to maintenance overhead.

Denormalizationis the process of improving the performance of the infrastructure by selectively adding the instances of redundant data after it has been normalized. Which can be used to reduce the number of joins in database leads to increase in overall size of the database. However, Denormalization can be applied in First and Second Normal Form only and not applicable to Third Normal Form.
Advantages:
  • Data present in same table so there is no need to include any joins. So, data retrieval process is very last.
  • Databases work very well under heavy-load when the application requires faster read operations.
Disadvantages:
  • Data duplication makes complex and expensive to perform update and insert operations.
  • Denormalization is always application specific and needs to re-evaluate whenever the application changes.