<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Why too much Database Normalization can be a Bad Thing</title>
	<atom:link href="http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/</link>
	<description>Java/J2EE Software Development and Technology Discussion Blog</description>
	<lastBuildDate>Tue, 07 Feb 2012 22:20:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Memo: Avoid Functions in Database Queries &#124; Down Home Country Coding With Scott Selikoff and Jeanne Boyarsky</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-2894</link>
		<dc:creator>Memo: Avoid Functions in Database Queries &#124; Down Home Country Coding With Scott Selikoff and Jeanne Boyarsky</dc:creator>
		<pubDate>Thu, 21 Oct 2010 06:19:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-2894</guid>
		<description>[...] although since reads are more common than writes, this is often easy in practice. I am aware some developers have issues with denormalized data, but it is often necessary on large tables with queries that can run for minutes or even [...]</description>
		<content:encoded><![CDATA[<p>[...] although since reads are more common than writes, this is often easy in practice. I am aware some developers have issues with denormalized data, but it is often necessary on large tables with queries that can run for minutes or even [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ARH95</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-2877</link>
		<dc:creator>ARH95</dc:creator>
		<pubDate>Fri, 15 Oct 2010 21:18:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-2877</guid>
		<description>Fabulous article.  I&#039;m dealing with overnormalization right now, in an IT computer database.  Normalizing, in this case, is just more work than it&#039;s worth, especially for a small company.

I mean, I&#039;ve got a table for CPUType and three entries for a P5.  I will NEVER buy another P5.  They don&#039;t make them.  I don&#039;t don&#039;t want one...   you get the picture, I hope.  

I am in the process of &quot;denormalizing,&quot; to a degree...  but I will admit it HURTS because normalizing as been so drilled in to my brain.  :-)</description>
		<content:encoded><![CDATA[<p>Fabulous article.  I&#8217;m dealing with overnormalization right now, in an IT computer database.  Normalizing, in this case, is just more work than it&#8217;s worth, especially for a small company.</p>
<p>I mean, I&#8217;ve got a table for CPUType and three entries for a P5.  I will NEVER buy another P5.  They don&#8217;t make them.  I don&#8217;t don&#8217;t want one&#8230;   you get the picture, I hope.  </p>
<p>I am in the process of &#8220;denormalizing,&#8221; to a degree&#8230;  but I will admit it HURTS because normalizing as been so drilled in to my brain.  <img src='http://www.selikoff.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-2732</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Mon, 30 Aug 2010 23:36:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-2732</guid>
		<description>An old topic, but still ranks in Google, so I&#039;ll still comment.

I think you need to also consider disk latency when assessing the cost of disk space. It might be cheap per GB of storage, but if the database manager needs to bring in four times as many pages in order to perform a join or any other operation on the table, then that could have a very negative impact on performance. There&#039;s usually more disk storage than memory allocated to a database.

Also, the sophistication of the database manager in generating access paths and the accuracy of database statistics will play a large part in determining whether it&#039;s faster to denormalise to plain text, or use lookup tables (as per your &#039;country&#039; field example.</description>
		<content:encoded><![CDATA[<p>An old topic, but still ranks in Google, so I&#8217;ll still comment.</p>
<p>I think you need to also consider disk latency when assessing the cost of disk space. It might be cheap per GB of storage, but if the database manager needs to bring in four times as many pages in order to perform a join or any other operation on the table, then that could have a very negative impact on performance. There&#8217;s usually more disk storage than memory allocated to a database.</p>
<p>Also, the sophistication of the database manager in generating access paths and the accuracy of database statistics will play a large part in determining whether it&#8217;s faster to denormalise to plain text, or use lookup tables (as per your &#8216;country&#8217; field example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: scott</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-595</link>
		<dc:creator>scott</dc:creator>
		<pubDate>Sun, 23 Nov 2008 08:39:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-595</guid>
		<description>Great Raditya, why create a chart as a project and I&#039;ll post the results.</description>
		<content:encoded><![CDATA[<p>Great Raditya, why create a chart as a project and I&#8217;ll post the results.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: scott</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-594</link>
		<dc:creator>scott</dc:creator>
		<pubDate>Sun, 23 Nov 2008 08:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-594</guid>
		<description>I think a lot of you are taking me too literally... I never said get rid of normalization, but its clear that too much of it can be a bad thing.  In general, reads within a denormalized system is almost always faster than a normalized one, the catch is updating and data storage are poor.</description>
		<content:encoded><![CDATA[<p>I think a lot of you are taking me too literally&#8230; I never said get rid of normalization, but its clear that too much of it can be a bad thing.  In general, reads within a denormalized system is almost always faster than a normalized one, the catch is updating and data storage are poor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raditya Arthapraja</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-593</link>
		<dc:creator>Raditya Arthapraja</dc:creator>
		<pubDate>Fri, 21 Nov 2008 17:30:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-593</guid>
		<description>Great, article!

How about a performance chart comparing the database that stores the same information; but, with the first database being normalized too much, the second database being not too normalized, and the third being not normalized?</description>
		<content:encoded><![CDATA[<p>Great, article!</p>
<p>How about a performance chart comparing the database that stores the same information; but, with the first database being normalized too much, the second database being not too normalized, and the third being not normalized?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daoud AbdelMonem Faleh</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-590</link>
		<dc:creator>Daoud AbdelMonem Faleh</dc:creator>
		<pubDate>Thu, 20 Nov 2008 20:58:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-590</guid>
		<description>I once eliminated all FK relationships from the database and managed them in the code. It was more error prone yes, it took more time to implement yes, but it was a huge gain in performance. I&#039;ve gone that way cause denormalisation was not an option as some of those tables were shared between many entities and updates were frequent on them. The key to success down this road was to test test test...</description>
		<content:encoded><![CDATA[<p>I once eliminated all FK relationships from the database and managed them in the code. It was more error prone yes, it took more time to implement yes, but it was a huge gain in performance. I&#8217;ve gone that way cause denormalisation was not an option as some of those tables were shared between many entities and updates were frequent on them. The key to success down this road was to test test test&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joachim</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-589</link>
		<dc:creator>Joachim</dc:creator>
		<pubDate>Thu, 20 Nov 2008 19:09:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-589</guid>
		<description>Great. So true !
This is one of the amazing aspects where the conclusion is so clear and easy to take up - but most developers don&#039;t ask that question. 3NF is holy, if you don&#039;t normalize till it hurts you&#039;re a bad developer and you&#039;ll be contracted by an awful disease soon ;-) .
Good to read that someone has the ba... to have an own opinion.
Thanks !</description>
		<content:encoded><![CDATA[<p>Great. So true !<br />
This is one of the amazing aspects where the conclusion is so clear and easy to take up &#8211; but most developers don&#8217;t ask that question. 3NF is holy, if you don&#8217;t normalize till it hurts you&#8217;re a bad developer and you&#8217;ll be contracted by an awful disease soon <img src='http://www.selikoff.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .<br />
Good to read that someone has the ba&#8230; to have an own opinion.<br />
Thanks !</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-587</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Thu, 20 Nov 2008 15:36:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-587</guid>
		<description>It is true that joins have a cost, but the cost is primarily in CPU.  The cost of denormalizing is in disk.  Now it is true that disk is cheap, but CPU performance has improved more dramatically in recent years, more so than disk speed.  (In fact the increase of disk capacity may have reduced the performance of many disk systems in practice, because a wider RAID array with more spindles is no longer necessary from a space point of view).  From a performance point of view, disk is still orders of magnitude slower than memory.

I tested the countries example in MS SQL Server.  At 10,000 rows there was not much difference, but by 160,000 rows there were clearly fewer logical reads in the normalized model.</description>
		<content:encoded><![CDATA[<p>It is true that joins have a cost, but the cost is primarily in CPU.  The cost of denormalizing is in disk.  Now it is true that disk is cheap, but CPU performance has improved more dramatically in recent years, more so than disk speed.  (In fact the increase of disk capacity may have reduced the performance of many disk systems in practice, because a wider RAID array with more spindles is no longer necessary from a space point of view).  From a performance point of view, disk is still orders of magnitude slower than memory.</p>
<p>I tested the countries example in MS SQL Server.  At 10,000 rows there was not much difference, but by 160,000 rows there were clearly fewer logical reads in the normalized model.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lars Hoss</title>
		<link>http://www.selikoff.net/2008/11/19/why-too-much-database-normalization-can-be-a-bad-thing/comment-page-1/#comment-585</link>
		<dc:creator>Lars Hoss</dc:creator>
		<pubDate>Thu, 20 Nov 2008 12:42:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.selikoff.net/blog/?p=607#comment-585</guid>
		<description>I agree that too much normalization can have negative impacts for read performance. But it helps to reduce redundancy and maintain integrity. Quite often it also depends on the database you are using. Almost every MySQL developer will tell you that joins suck and you better use denormalized tables for best speed. Things are different for PostgreSQL or even Oracle, though. And things like Materialized Views can help to improve read performance as well. 
Some days ago I had to &quot;fix&quot; a table from someone who thinks that normalization is bad. This table has 80 columns. Columns like cost_age30, cost_age31, cost_age32 ...
Now imaging how queries do look like on those tables *sigh*</description>
		<content:encoded><![CDATA[<p>I agree that too much normalization can have negative impacts for read performance. But it helps to reduce redundancy and maintain integrity. Quite often it also depends on the database you are using. Almost every MySQL developer will tell you that joins suck and you better use denormalized tables for best speed. Things are different for PostgreSQL or even Oracle, though. And things like Materialized Views can help to improve read performance as well.<br />
Some days ago I had to &#8220;fix&#8221; a table from someone who thinks that normalization is bad. This table has 80 columns. Columns like cost_age30, cost_age31, cost_age32 &#8230;<br />
Now imaging how queries do look like on those tables *sigh*</p>
]]></content:encoded>
	</item>
</channel>
</rss>

