The Evils of Redundancy
Redundancy is at the root of several problems associated with relational schemas:
- redundant storage, insert/delete/update anomalies
Integrity constraints, in particular functional dependencies, can be used to identify schemas with such problems and to suggest refinements.
Main refinement technique: decomposition (replacing ABCD with, say, AB and BCD, or ACD and ABD).
Decomposition should be used judiciously:
- Is there reason to decompose a relation?
- What problems (if any) does the decomposition cause?