SPS Home > Dgreath > RDBMS > Database Normalization |
DATABASE NORMALIZATION |
---|
The process of optimizing relational database (RDB) tables entails decomposition of the
un-normalized [0NF] table into
multiple tables to eliminate data redundancy. Each relational table must
be unique and consist of unique unordered columns of unique unordered rows
containing consistent atomic data. Typically RDBs are only
normalized to 3NF and denormalization is used to improve database
performance.
The degree of optimization is shown below: |
[0NF] Zero Normal Form - Un-normalized
|
[1NF] First Normal Form - Atomic Data
|
[2NF] Second Normal Form - Functionally Dependent
|
[3NF] Third Normal Form - Solely Dependent
|
[BCNF] Boyce Codd Normal Form - Candidate Keys
|
[4NF] Fourth Normal Form - Independent Multi-valued Relations
|
[5NF] Fifth Normal Form -- Join Dependencies
Note: Although 5NF envisions only two column tables, as a practical matter closely related information could also exist in the table, as, for example, in the case of Street, City, State, and Zip columns in a mail-list application. Phone numbers, however, would likely be in another linked table because an individual could have zero, one, or more assigned phone numbers. |
[6NF] Sixth Normal Form - Bitemporal
Note: 6NF introduces the concept of bitemporality--the idea that a record exists in two time contexts, the transaction time (when the event occurred) and its validity interval. For example, a person could marry on a certain date but they are married for the interval between that point and the earlier of either divorce or death. |
[DKNF] Domain Key Normal Form - Rules Based
|