A database that follows the rules below is normalized to a particular level. There are more levels of normalization, but these first three are enough to deal with for ordinary purposes. Different people express these 'rules' in wildly different ways!
The fields in a table should be logically related to each
Fields are not duplicated inside the table.
Each field holds a minimum of data.
Each field appears in only one table.
(except for the primary key fields which appear as a foreign key in another table.)
Each record has a unique identifier, the primary key.
Satisfy the rules for First Normal Form.
Link the tables by defining relationships using foreign keys
Values depend on the primary key (the whole key if the key has multiple parts)
This is part of the 'logically related' rule earlier.
Many databases do not completely follow these rules. Sometimes a database will actually work faster without being completely normalized.
Saves disk space by reducing duplications
Saves time by reducing data input duplications
Avoids data input errors by using linked tables and lookup fields
Speeds up database functions
It is best to design the tables right the first time. Normalize as you go! After you have a lot of records, it can be tricky to fix, as we saw at the beginning of this lesson when you had to separate the data into two tables. So awkward, and there were only a few records with a few fields.
Last updated: September 17, 2012