A minimal cover is a simplified and reduced version of the given set of functional dependencies.
Since it is a reduced version, it is also called as Irreducible set.
It is also called as Canonical Cover. Steps to Find Minimal Cover 1) Split the right-hand attributes of all FDs.
Example
A->XY => A->X, A->Y 2) Remove all redundant FDs.
Example
< A->B, B->C, A->C >
Here A->C is redundant since it can already be achieved using the Transitivity Property. 3) Find the Extraneous attribute and remove it.
Example
AB->C, either A or B or none can be extraneous.
If A closure contains B then B is extraneous and it can be removed.
If B closure contains A then A is extraneous and it can be removed. Example 1
Minimize C, AC->D, E->H, E->AD> Step 1: C, AC->D, E->H, E->A, E->D> Step 2: C, AC->D, E->H, E->A>
Here Redundant FD : D> Step 3: D>
+ =
Therefore C is extraneous and is removed.
D> Minimal Cover = C, A->D, E->H, E->A> Example 2
Minimize C, D->E, AB->E, E->C> Step 1: C, D->E, AB->E, E->C> Step 2: E, AB->E, E->C>
Here Redundant FD = C> Step 3: E>
+ =
+ =
There is no extraneous attribute. Therefore, Minimal cover = E, AB->E, E->C>