Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
shanen98
Starting Member
3 Posts |
Posted - 2010-09-17 : 09:16:30
|
Are there any other benefits to normalizing a database other than to save space and improve performance?The situation:We have a small database around 150MB, I do not expect much growth. There are very few transactions ran against it. Normalization wouldn't help much with space or performance. My manager heard the word normalization and has no idea what it means but "knows" that the database should be normalized. I've explained that this will not help much and could cause more work for the developers. He still wants to do it. I am going to have to explain to the developers (and their boss) why we need to do it. Given that this will not help with space or performance, my only answer is "because I was told to do it". That answer would make my boss (and me) look like an idiot (even though he is) and that would affect the future of my employement.Any ideas?Thanks! |
|
RickD
Slow But Sure Yak Herding Master
3608 Posts |
Posted - 2010-09-17 : 09:39:40
|
Tell them you have to normalise down to the nth percentile due to external stress influences on the database development process. Seriously though, it depends on your current design and how easy it is to understand, the easiest way to see if you need to normalise is to get your longest running queries and see how long they take, then take a copy of the tables, normalise and index the tables (e.g. If customer table, move the addresses into separate table with a primary/foreign key constraint ) and see if the query is any faster. It may just be that you need to optimise the query rather than normalise the database, but without knowing the data structures, the growth forecast and the way in which the database is accessed, it is very difficult to give a valid reason for normalisation. |
 |
|
Kristen
Test
22859 Posts |
Posted - 2010-09-17 : 09:57:31
|
Normalisation to remove duplicate data probably won't help query performance, but if you have a record that contains Country Code and Continent Name (instead of the Continent Name being on the Country Lookup record) sooner or later you will have an inconsistent Country + Continent combination and all you will be able to say is "I don't know which of these two is wrong". Doesn't stop the wrong country code being assigned, but it does stop you reporting on France as being in the Americas ...Plus you get people typing the Continent Name differently on different records ... which also makes your reports look stupid having headings for "North America" and "N. America" ...Dunno what other violations of Nth Normal Form you have ... multiple columns where you could have an associated multi-row table? Possibly solves a future problem of "We just need to add one more Price Break", but may well make some of the queries way more complex ("What's the price break on Widgets for Qty = 7?" needs a complex join to find the next-higher qty break) |
 |
|
|
|
|
|
|