Over at “Coding Horror” blog, Jeff Atwood published an interesting article titled “Maybe Normalizing Isn’t Normal“.
But more than the article itself, the debate that ensued in the comments there is very interesting. The “High Scalability” blog published a compilation of some of the interesting quotes from the debate. This compilation provides a great overview of the (admittedly long) discussion.
I would recommend that you read the original article first and then the compilation of the quotes at the High Scalability blog.
4 Comments
Normalization is a double sided sword. You need to know when to stop normalizing.
I had a case where I had to join the same table again and again ( table joined with the same table) to get few rows of data. The app performance was pathetic just because of complex queries. (due to highly normalized tables)
yenna mame, sappunu oru matter ah solli irukka….
You can do both!
Normalize the Master or Origin information and De-Normalize of the deployment of the information that is used for look-ups.
We do this all of the time and real life. The information we USE is a De-Normalized version of the database for most re-life uses. For example out day-timer. The internal version may be very folded or normalized.
The bank creates a De-normalized version of information on paper as a backup for bank use if the database is down and as a cross reference.
Do the same for your applications. For example, once a day compile the “stats” that the user sees on the web page from the Normalized internal schema. Let the user know that this is a “once a day” roll up of the stats. Now the action needed for this web page will be VERY fast. The over head low. You have a fast solution. The information is NOT real time, but the user gets a quick reply.
Edward M. Goldberg
http://Blog.EdwardMGoldberg.com
Normalization is nothing just read the following link
http://sqldbsolution.blogspot.com/2009/06/normalization-is-first-step-for-db.html
By nathan