Canonical Cover in DBMS

Canonical Cover in DBMS 

 

In this article, we will learn about Canonical Cover i DBMS.

  • The canonical cover is defined as a simplified and reduced version of a given functional dependency
  • As Canonical cover is a compressed version is also called an irreducible set.

 

Learn more about DBMS here on this page.

Canonical Cover in DBMS

Features of Canonical cover 

  • The canonical cover is free from all irrelevant functional dependencies
  • The closure of canonical cover is the same as that of a given set of functional dependency
  • The canonical cover is not unique because there may be more than one chemical cover for a given set of functional dependency.

 

What’s the need for this Canonical cover

 Reduces computational time: When a functional dependency is free from useless dependency e then computational time and working with that set becomes very easy.

 

 PRACTICE PROBLEM BASED ON FINDING CANONICAL COVER-

You will be given some 3 to 5 functional dependencies and asked to find the simplified version that is Canonical cover

Change WXYZ to ABCD

 Problem :

 The following functional dependencies hold true for the relational scheme R (W, X, Y, Z) – 

X → W

WZ → XY

Y → WXZ

Write the irreducible equivalent for the given set of functional dependencies.

Solution-

STEP 1: Write all the functional dependencies such that each dependency contains only one attribute on its right side i.e-

 X → W

WZ → X

WZ → Y

Y → W

Y → X

Y → Z

STEP 2: Check each functional dependency one by one whether it is essential or not

  • For X → W:

Including X → W, (X) + = {X, W}

Ignoring X → W, (X) + = {X}

Now, as the the two results are different, it is concluded that X→W is essential and cannot be eliminated.

  • For WZ → X:

Including WZ → X, (WZ) + = {W, X, Y, Z}

Ignoring WZ → X, (WZ) + = {W, X, Y, Z}

Now, as the the two results are same, it is concluded that WZ→X is not essential and can be eliminated.

After eliminating WZ→X ,the resultant set of functional dependencies is :

X → W

WZ → Y

Y → W

Y → X

Y → Z

Now, we will consider this reduced set in further checks. 

  • For WZ → Y:

Including WZ → Y, (WZ) + = {W, X, Y, Z}

Ignoring WZ → Y, (WZ) + = {W, Z}

 Now, as the the two results are different, it is concluded that WZ→Y is essential and cannot be eliminated.

  • For Y → W:

Including Y → W, (Y) + = {W, X, Y, Z}

Ignoring Y → W, (Y) + = {W, X, Y, Z}

Now, as the the two results are same, it is concluded that Y→W is not essential and can be eliminated.

After eliminating Y→W,the resultant set of functional dependencies is :

X → W

WZ → Y

Y → X

Y → Z

  • For Y → X:

Including Y → X, (Y) + = {W, X, Y, Z}

Ignoring Y → X, (Y) + = {Y, Z}

 Now, as the the two results are different, it is concluded that Y→X is essential and cannot be eliminated.

  •  For Y → Z:

Including Y → Z, (Y) + = {W, X, Y, Z}

Ignoring Y → Z, (Y) + = {W, X, Y}

 Now, as the the two results are different, it is concluded that Y→Z is essential and cannot be eliminated.

  • From here, our essential functional dependencies are-

X → W

WZ → Y

Y → X

Y → Z