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, Fc 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}
Fc = {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: