Normalization Denormalization of tables. Keep it normalized when it is possible.
I might express apostate opinion but
Recenly browsing the threads I have noticed that some of them are basically about whether it is needed to normalize the tables or not.
IMHO the whole issue of normalization is about 3 key points:
1. Avoid the need to enter the same information
2. Dbase performance
3. Avoid variances of the same information.
I will try to dwell upon those 3 points
1. Lets say we have an invoice table where there is an invoice number, company name, company representative. In normalized tables you will have two tables one for company where you will have company name and company representative the other is invoice table. In invoice table you will have only the refernced to the company table key. Besides if the tables are normalized in case if company representative has changed you will change it only in one place rather than changing all the instances where you have company representative field. But imagine that in some companies company representatives come and go every other day and you need to know who was the representative at the time when invoice came to you.
2. It is obvious that dbase performance is increased when there are used normalized tables. But ... Having a bunch of normalized tables you come back with increased number of queries for denormalization. Besides you will come across the "ambiquious" issue if you try do everything in one query. "Head and Shoulders" - RIP. More over if you have the dbase which is designed for a small enterprise who on earth will notice the difference in couple of milliseconds. For big enterprises there are better and bigger programms than your penni-ante dbase.
3. All the variances in spelling of de-normalization/ denormalization is treated as a different word even though it is the same. Well if vocalizing the word levels up the variances why would you care about the variances in spelling.
I think that most of dbases produced with the idea of seeing the report/s that is where you would have to denormalize the tables back again and if your 3 rules are not compromized - keep the tables denormalized.
At the end bunch of links
http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=88
Rules of Data Normalization http://www.databasejournal.com/sqletc/article.php/1428511
Database Normalization Basics http://databases.about.com/library/weekly/aa080501a.htm
Normalization http://www.troubleshooters.com/littstip/ltnorm.html
Overview of Normalization http://www.gslis.utexas.edu/~l384k11w/normover.html
Rules of Data Normalization: http://www.datamodel.org/NormalizationRules.html
I might express apostate opinion but
Recenly browsing the threads I have noticed that some of them are basically about whether it is needed to normalize the tables or not.
IMHO the whole issue of normalization is about 3 key points:
1. Avoid the need to enter the same information
2. Dbase performance
3. Avoid variances of the same information.
I will try to dwell upon those 3 points
1. Lets say we have an invoice table where there is an invoice number, company name, company representative. In normalized tables you will have two tables one for company where you will have company name and company representative the other is invoice table. In invoice table you will have only the refernced to the company table key. Besides if the tables are normalized in case if company representative has changed you will change it only in one place rather than changing all the instances where you have company representative field. But imagine that in some companies company representatives come and go every other day and you need to know who was the representative at the time when invoice came to you.
2. It is obvious that dbase performance is increased when there are used normalized tables. But ... Having a bunch of normalized tables you come back with increased number of queries for denormalization. Besides you will come across the "ambiquious" issue if you try do everything in one query. "Head and Shoulders" - RIP. More over if you have the dbase which is designed for a small enterprise who on earth will notice the difference in couple of milliseconds. For big enterprises there are better and bigger programms than your penni-ante dbase.
3. All the variances in spelling of de-normalization/ denormalization is treated as a different word even though it is the same. Well if vocalizing the word levels up the variances why would you care about the variances in spelling.
I think that most of dbases produced with the idea of seeing the report/s that is where you would have to denormalize the tables back again and if your 3 rules are not compromized - keep the tables denormalized.
At the end bunch of links
http://pubs.logicalexpressions.com/Pub0009/LPMArticle.asp?ID=88
Rules of Data Normalization http://www.databasejournal.com/sqletc/article.php/1428511
Database Normalization Basics http://databases.about.com/library/weekly/aa080501a.htm
Normalization http://www.troubleshooters.com/littstip/ltnorm.html
Overview of Normalization http://www.gslis.utexas.edu/~l384k11w/normover.html
Rules of Data Normalization: http://www.datamodel.org/NormalizationRules.html
Last edited: