November 6, 2009 at 4:55 am
what is the De-Normalization process?
November 6, 2009 at 4:57 am
Read this article bottom up: Normalization
November 6, 2009 at 7:55 am
Florian Reischl (11/6/2009)
Read this article bottom up: [/url]
this is fun 🙂
---------------------------------------------------------------------------------
November 6, 2009 at 8:42 am
Denormalization is deliberately breaking normal forms, usually for report performance.
The usual process is to take normalized data from multiple tables and eliminate the joins between them by putting the data into a single table. That makes reports faster, in some cases, because it eliminates joins.
This can be done by creating a separate table for the reporting process, and using an SQL Agent job to load the table periodically. It can be done by creating an indexed view that includes the joins between the tables. It is often done by permanently moving the data into one table from two or more, but that's more often than not something done out of ignorance and it usually causes more problems than it solves.
There are other reasons to denormalize, but they're almost all based on false assumptions about how to improve database performance, and they almost all cause problems far in excess of what minor issues they solve.
Does that help?
- Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
Property of The Thread
"Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon
November 6, 2009 at 9:00 am
The typical de-normalization process is this:
1. Create database design without knowing or attempting to follow normalization rules.
2. Claim that you de-normalized the design for performance.
November 6, 2009 at 11:04 am
Michael Valentine Jones (11/6/2009)
The typical de-normalization process is this:1. Create database design without knowing or attempting to follow normalization rules.
2. Claim that you de-normalized the design for performance.
3. Profit! 🙂
November 6, 2009 at 1:57 pm
Maybe we can ask why you want to know? Has someone asked to you 'de-normaize for performance'? As previousouly stated by other posters, the idea that working within data structures that don't meet the normal forms improves performance is most of the time a false assumption.
What is it that you are trying to do?
November 6, 2009 at 7:30 pm
De-normalization is, generally, the practice of maintaining summary information in the database, based on detail records that are also stored in the database. De-normalization is usually performed once the normalized design of the database is complete, and is primarily a performance optimization.
For instance, in a database containing warehouse inventory information, it would be quite possible to determine the current stock level for an item by summing up all the items received into the warehouse, and subtracting the total of all items shipped out. That is usually not a practical approach, so the database would commonly store a running total of the number of items held, which would be incremented whenever new stock arrived, and decremented when stock ships.
Almost all non-trivial databases will contain some form of denormalization, whether this is maintained through application-level logic, through the use of triggers, indexed views, or some other method.
Paul
Paul White
SQLPerformance.com
SQLkiwi blog
@SQL_Kiwi
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply