Example 1: Find the minimal cover or irreducible set from the following functional
dependencies :
AB → CD
BC → D
Solution:
Step 1: Union Simplification:
AB → C (1)
AB → D (2)
BC → D (3)
Step 2: Removal of Redundant set of FDs
I. Find the closure of LHS of (1), i.e. Compute (AB) + from (2) and (3) by hiding (1). If
we get RHS of (1) in the closure, i.e. 'C', then (1) is redundant, otherwise non
redundant.
(AB)+ = {ABD} as (AB)+ will not determine C, So AB → C is non redundant.
II. Similarly for (2), Compute (AB)+ from (1) and (3) by hiding (2).
(AB)+ = {ABCD} as (AB)+ will determine D, therefore, AB → D is redundant.
Now, Remaining FDs = {AB→C, BC→D}
III. For (3), Compute (BC)+ from (1) by hiding (3).
(BC)+ = {BC} as (BC)+ will not determine D, so, BC → D is also non redundant.
Step 3: LHS Simplification or Removal of Extraneous Attributes
FDs remained after step 2
AB→C (3)
BC→D (4)
AB → C
(i) Remove A from AB → C, and find B+ from (4). If the attribute A exists in the closure,
then A is said to be redundant.
B+ = {B} ⇒ A is Non Redundant
(ii) Remove B from AB → C and find A+ from (4).
A+ = {A} ⇒ B is Non Redundant.
BC → D
(i) Remove B from BC → D, and find C+ from (3).
C+ = {C} ⇒ B is Non Redundant
(ii) Remove C from BC → D and find B+ from (3).
B+ = {B} ⇒ C is Non Redundant
Apply step 2 again if we find any redundant attribute, otherwise skip. So Finally, Irreducible
set will be
AB→C
BC→D
Example 2:
Find the minimal cover or irreducible set from the following functional dependencies:
ABCD → E (1)
E→D (2)
AC → D (3)
A→B (4)
Solution:
Step 1: No need for union simplification as FDs are already simplified.
Step 2: Removal of redundant set of FDs
(i) For (1), Compute (ABCD)+ from (2) (3) and (4) by hiding (1).
(ABCD)+ = {ABCD}
⇒ ABCD → E is non redundant.
(ii) For (2), Compute (E)+ from (1) (3) and (4) by hiding (2).
(E)+ = {E}
⇒ E → D is non redundant.
(iii) For (3), Compute (AC)+ from (1) (2) and (4) by hiding (3).
(AC)+ = {ACB}
⇒ AC → D is non redundant.
(iv) For (4), Compute (A)+ from (1) (2) and (3) by hiding (4).
(A)+ = {A}
⇒ A → B is non redundant.
Step 3: LHS Simplification or Removal of Extraneous Attributes:
FDs remained after step 2 is same as in step 1.
ABCD → E
(i) Remove A from ABCD → E, and find BCD+ from (2) (3) and (4). If attribute A
exists in the closure, then A is said to be redundant.
(BCD)+ = {BCD} ⇒ A is Non Redundant
(ii) Remove B from ABCD → E and find ACD+ from (2) (3) and (4).
(ACD)+ = {ACDB} ⇒ B is Redundant.
⇒ FD will now reduced to ACD → E
(iii) Remove C from ACD → E, and find AD+ from (2) (3) and (4).
(AD)+ = {ADB} ⇒ C is Non Redundant.
(iv) Remove D from ACD → E, and find AC+ from (2) (3) and (4).
(AC)+ = {ACDB} ⇒ D is Redundant.
⇒ FD will now reduced to AC → E
AC → D
(i) Remove A from AC → D and find C+ from (1) (2) and (4).
(C)+ = {C} ⇒ A is non redundant.
(ii) Remove C from AC → D and find A+ from (1) (2) and (4).
(A)+ = {AB} ⇒ C is non redundant.
FDs remained after step 3 are:
AC → E (5)
E→D (6)
AC → D (7)
A→B (8)
Step 4: Applying step 2 again to find redundant FDs
(i) For (5), Compute (AC)+ from (6) (7) and (8) by hiding (5).
(AC)+ = {ACDB}
⇒ AC → E is non redundant.
(ii) For (6), Compute (E)+ from (5) (7) and (8) by hiding (6).
(E)+ = {E}
⇒ E → D is non redundant.
(iii) For (7), Compute (AC)+ from (5) (6) and (8) by hiding (7).
(AC)+ = {ACEDB}
⇒ AC → D is redundant. So, excluded.
(iv) For (8), Compute (A)+ from (5) and (6) by hiding (8).
(A)+ = {AB}
⇒ A → B is non redundant.
So Finally, Irreducible set will be
AC → E
E→D
A→B