Check Your Subroutines - We are delivering our latest release to internal test today. Had a code review yesterday. Many issues were found. We are fixing the highest priority probl...
The New Normal
The goals of normalization are to reduce duplication and to put data where it belongs logically. Every rule in normalization is a normal form. Edgar Codd (E.F. Codd) came up with the first three normal forms by himself. These are the only forms most apps will ever need.
The first normal form aims to get rid of duplicates. Do not arrange tables for any specific performance. Make sure attributes have only atomic values. Mae sure attribute values are unique.
The second normal form requires the first. In addition, attributes must be dependent on the whole key to the table. Separate tables should be created for values that go with multiple records. Create foreign keys to reference the primary keys in the tables.
The third normal form requires the second. In addition, attributes must contain a detail about the entire key (especially in the scenario of composite keys). Put another way, there should be no fields that do not depend on the key. This is the form that people usually mean when they say normalized.
There is obviously more to database normalization than these high level descriptions. But this is a start. I think the real value comes from having to design databases over time.