Used in database systems to reduce the complexity of checking functional dependencies while updating the database
- No functional dependency in the canonical cover contains an extraneous attribute.
- Each left side of a functional dependency in the canonical cover is unique.
For example, let’s find the canonical cover for the set of functional dependencies F = {A → BC, B → AC, C → AB}:
- Decompose FDs: F = {A → B, A → C, B → A, B → C, C → A, C → B}
- Remove redundant FDs: F = {A → B, A → C, B → A, C → A}
- Combine the final set of FDs: Canonical cover = {A → BC, B → A, C → A}