Hmadyson said:
I do not necessarily believe in normalization of data
What DO you believe in then?
In some circumstances it is necessary to break the rules of normalization, but those circumstances need to be addressed on an individualized basis. For instance, in an accounting program it would be beneficial to store the beginning or ending balances for each account in order to ease reporting requirements. Should a calculated field normally be stored, no. It can be calculated on the fly in a query.
In a properly normalized database, extracting aggregate data is relatively easy. In a poorly designed database it becomes increasingly difficult to extract meaningful information.
I'm not just speaking from a theoretical standpoint. I work everyday with a database system that has no design or thought put into it at all.
[off topic]There was a very humorous thread I started several years ago about the "Platypus Database" that degenerated quickly. I called it that because it evolved into the mishmash of information that it STILL is today.[/off topic]
You may think, "whatever"...however, I work in a courthouse. Due to the bad design and the difficulties in dealing with information that has been changed and modified in the past 25 years, we have "issues" that affect people's lives. For instance, our court handles the arraignments for all felony arrests in the county. We don't have anything to do with the case after that, it's automatically transferred to the District Court and the Grand Jury has to decide whether to proceed with an indictment. If there is no indictment, then the charges are dropped. But our data shows that you were arrested for a felony and it's still lingering. The case is never "finished" in our court. People call because employers say they have an outstanding felony.
Now some of these problems are bad administrative practices, but some of the problems are because we can't change the way the data is processed and captured and it is processed and captured badly because there was no thought EVER to how the database should be designed.
There's duplicate data EVERYWHERE! We have your address in the defendant master file. But if you are sentenced to probation, you now have another record where your address is stored. So the next time you are seeing your PO you tell her your new address, so SHE has it and it's updated for all Probation notifications. But let's say a court date is changed and you're sent a new Notice of Hearing. Because you didn't go to Customer Service and change your address there TOO, your Notice goes to your old address. Now you get a warrant for your arrest for Failure to Appear. You've broken the conditions that were set in your sentencing. Now you may be going to jail...because of the court's bad database design.
In the next three years we will be completely restructuring the database and I plan on following all the rules of normalization. I expect that this will significantly increase the confidence in the statistics we have to report and decrease the amount of time required to extract the information because the queries will be much easier to develop.
Leslie
Anything worth doing is a lot more difficult than it's worth - Unknown Induhvidual
Essential reading for database developers:
The Fundamentals of Relational Database Design
Understanding SQL Joins