When Is Denormalization Good?{3}


Database normalization is a process in which redundant and duplicate data is reduced. Normalization provides a more readable and organized database. In fact, it is what most database professionals are taught to do and is normally considered a good practice. Denormalization is the exact opposite. In the denormalization process, you take a normalized database of different tables and “combine” them, essential going backwards in the normalization forms. There are certain instances in which this may be beneficial. The pro of denormalization is that access to records are generally faster. SELECT queries perform better and are less complicated because there are less JOIN statements. The cons of denormalization are that INSERT and UPDATE queries take longer. In instances where there are drastically more SELECT queries than INSERT or UPDATE queries, denormalization makes sense and the performance increases greatly outweigh the cons.

Our class lecture this week was on normalization. I found that many database classes preach normalization and consider it as part of their database design process. As with many things in technology, there is never just one way to do things. Personally, I have also practiced normalization (although apparently incorrectly) because that’s the way I was taught. I never even thought that denormalization could improve database performance in some situations.

As the article mentioned, situations in which there are more SELECT queries as compared to INSERT or UPDATE queries can benefit from denormalization. In fact, you can probably have parts of the database normalized and other parts denormalized.  This would give your database the benefits of both worlds.

Steelman, R., (June 7, 2012) What is MySQL denormalization and should you be doing it? Retrieved October 19, 2012 from http://www.linux.org/article/view/what-is-mysql-denormalization-and-should-you-be-doing-it-