Database normalization is the process of decomposing a relation schema into smaller schemas that satisfy a desired normal form while preserving the original information content.
The purpose of normalization is to eliminate update anomalies:
- Insertion Anomaly: Inability to insert certain data without the presence of other unrelated data.
- Deletion Anomaly: Unintended loss of data when deleting a tuple that contains the only copy of some fact.
- Modification Anomaly: Inconsistency arising when a fact stored in multiple places is updated in one place but not in others.
Normalization Process
Normalization proceeds by analyzing the functional dependencies of a schema and applying decomposition to eliminate violations of the target normal form:
- Identify all functional dependencies that hold on the schema.
- Determine the candidate keys using the closure method.
- Check each FD against the conditions of the target normal form.
- For any violating FD, decompose the relation to remove the violation.