You are on page 1of 24

Equivalence of Functional

Dependencies
and
Canonical cover of functional
Dependencies
Canonical Cover of Functional
Dependencies
• A canonical cover (Fc) of a set of functional
dependencies F is a simplified set of functional
dependencies that has the same closure as
the original set F.
Canonical Cover of Functional
Dependencies
• Important definitions:
• Extraneous attributes: An attribute of a
functional dependency is said to be
extraneous if we can remove it without
changing the closure of the set of functional
dependencies.
Canonical Cover of Functional
Dependencies
• Canonical cover: A canonical cover of a set of
functional dependencies F such that ALL the
following properties are satisfied:
Finding Canonical Cover
How to find Extraneous attribute?
• If we are able to remove an attribute from a functional dependency
without changing the closure of the set of functional dependencies, that
attribute is called as Extraneous Attribute.
• Assume a set of functional dependencies F, and the closure of set of
functional dependencies F+. Also, assume that we remove an attribute
from any of the FDs under F and find the closure of new set of functional
dependencies. Let us mention the new closure of set of functional
dependencies as F1+. If F+ equals the newly constituted closure F1+, then
the attribute which has been removed is called as Extraneous Attribute. In
other words, that attribute does not violate any of the functional
dependencies.
Extraneous attribute
Examples
Examples
Examples
Examples
How to check whether a set of f.d.’s F
canonically cover another set of f.d.’s G?
• Now, we are required to find out whether one of these f.d.’s canonically
covers the other set of f.d.’s. This means, we need to find out whether F
canonically covers G, G canonically covers F, or none of the two canonically
cover the other.
• Consider the following two sets of functional dependencies:
Canonical Cover Algorithm
• To find out, we follow the following steps:
1 Create a singleton right hand side. This means,
the attributes to the right side of the f.d.
arrow should all be singleton.
2 Remove all extraneous attributes.
3 Remove all redundant functional
dependencies.
4 apply composition rule.
Canonical Cover Algorithm
Step 1
Step 2
Step 3

You might also like