MINIMAL BASIS EQUIVALENCY: Two functional dependencies F1 and F2 over relation R are equivalent if F1+ = F2+ MINIMAL BASIS: A set of functional dependencies F is minimal is we cannot remove any f.d.s or any attributes from an f.d. without changing its meaning (closure). Algorithm for converting a set F to a minimal basis ---------------------------------------------------- Step 1: Convert F to a basis by using splitting rule AB->CD C->AC D->AF AC->G AB->BFH ----- AB->C AB->D C->A C->C D->A D->F AC->G AB->B AB->F AB->H Step 2: Remove all trivial functional dependencies AB->C AB->D C->A C->C -- remove D->A D->F AC->G AB->B -- remove AB->F AB->H ---- AB->C AB->D C->A D->A D->F AC->G AB->F AB->H Step 3: Suppose X->Y is in F, create F' by removing X->Y. If X+ is the same in F and F', then X->Y can be removed. F= AB->C AB->D ** removed in F' C->A D->A D->F AC->G AB->F AB->H F'= AB->C C->A D->A D->F AC->G AB->F AB->H in F , AB+={A,B,C,D,F,G,H} in F', AB+={A,B,C,G,H} We cannot remove AB->D, not equal -------------- F= AB->C AB->D C->A D->A D->F AC->G AB->F ** removed in F' AB->H F'= AB->C AB->D C->A D->A D->F AC->G AB->H in F : AB+={A,B,C,D,F,G,H} in F': AB+={A,B,C,D,F,G,H} Same! I can AB->F ----- AB->C AB->D C->A D->A D->F AC->G AB->H Step 4: If XZ->Y in F, then replace it with X->Y to get F'. If X+ in F and F' is the same, then F' can become F. F = AB->C AB->D C->A D->A D->F AC->G AB->H F' = AB->C A->D ** changed fd C->A D->A D->F AC->G AB->H in F , A+={A} in F', A+={A,D,F} Not the same, cannot remove B ---------- F = AB->C AB->D C->A D->A D->F AC->G AB->H F' = AB->C B->D ** changed fd C->A D->A D->F AC->G AB->H in F , B+={B} in F', B+={B,D,F} Not the same, cannot remove A --------- F = AB->C AB->D C->A D->A D->F AC->G AB->H F' = AB->C AB->D C->A D->A D->F C->G ** changed fd AB->H in F , C+={C,A,G} in F', C+={C,A,G} Same, I can remove A from AC->G. ------------ final result: minimal basis AB->C AB->D C->A D->A D->F C->G AB->H combining rule: minimal cover AB->CDH C->AG D->AF