A canonical cover for F (a set of functional dependencies on a relation scheme) is a set of dependencies such that F logically implies all dependencies in , and logically implies all dependencies in F.
The set has two important properties:
A canonical cover is not unique for a given set of functional dependencies, therefore one set F can have multiple covers .
^{ [1]}
In the following example, F_{c} is the canonical cover of F.
Given the following, we can find the canonical cover: R = (A, B, C, G, H, I) F = {A→BC, B→C, A→B, AB→C}
F_{c} = {A → B, B →C}
An attribute is extraneous in a functional dependency if its removal from that functional dependency does not alter the closure of any attributes.^{ [2]}
Given a set of functional dependencies and a functional dependency in , the attribute is extraneous in if and any of the functional dependencies in can be implied by using Armstrong's Axioms.^{ [2]}
Using an alternate method, given the set of functional dependencies , and a functional dependency X → A in , attribute Y is extraneous in X if , and .^{ [3]}
For example:
Given a set of functional dependencies and a functional dependency in , the attribute is extraneous in if and any of the functional dependencies in can be implied by using Armstrong's Axioms.^{ [3]}
A dependent attribute of a functional dependency is extraneous if we can remove it without changing the closure of the set of determinant attributes in that functional dependency.^{ [2]}
For example: