When Is Denormalization Good?

by Hieu H
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-

3 thoughts on “When Is Denormalization Good?

  • October 20, 2012 at 8:07 pm
    Permalink

    Very interesting! I just read another blog about too much normalization. I can see how normalization has its place. Too much can be bad and inefficient, in which denormalization would be recommended. However, normalization is very important and should be incorporated into every database modeling.

  • October 21, 2012 at 12:22 am
    Permalink

    I built a database in my accounting class and I would said denormalization really useful when making queries because in one screen it has everything I needed. But like Hieu and Katheryn both method will be useful depend on the use of the database.

  • October 22, 2012 at 12:02 am
    Permalink

    Normalization can be very cumbersome and time-consuming. As you mention in the post, normalization reduces data redundancy and maintains data integrity, however, incorporating normalization in the design can be overwhelming when you have to deal with hundreds of tables. I believe that the professor said in the class that the highest normalization form can go up to 8NF. I can’t even imagine how many JOIN statements you have to use to make one report.

Comments are closed.