Canonical Cover
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}