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 .
In the following example, F<sub>c</sub> 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<sub>c</sub> =à{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.
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.
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 .
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.
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.
For example: