Uploaded by nayanjain632

Minimal Cover in Functional Dependencies

advertisement
Candidate Key &&
Minimal Cover in Functional Dependencies
Functional Dependency

A -> B



B is functionally dependent on A (or)
A functionally determines B
Eg : Customer_Id -> Customer_Name


Customer_Name is identified by Customer_Id.
i.e Customer_Name is functionally dependent on Customer_Id.
How to Find Candidate Key
using Functional Dependencies
Step1
Find Closure of all attribute of LKS
X+ determine all the attributes of R then X is candidate key
Step 2.
Find the closure of attribute which cannot determine(not present
RHS)
X+ determine all the attributes of R then X is candidate key
Step3
If not find step1 and step2 then
Find the closure of attribute which cannot determine + combination
Of attributes of R.
X+ determine all the attributes of R then X is candidate key
Slide 10- 3
Attribute Closure
Example 1:Attribute Closure for one key attribute
Consider the Functional Dependencies for R(A, B, C)
A -> B
B -> C
A+ = Step1:AB [Since A -> B]
Step 2:ABC [Since B -> C]
B+ = Step1: BC [Since B -> C]
So,
A+ = ABC
B+ = BC
 Note: If an attribute closure gives all the Attributes in the given
relation, that attribute will be a Candidate Key.

From the given set of functional dependencies, A is a Candidate Key.
Attribute Closure
Example 2: Attribute Closure for more than one key
attribute
Consider the Functional Dependencies for R(A, B, C,D,E,F)
AB -> C AB+ = ABCDE [Since AB->C, B->D, AD->E]
AD -> E
AD+ = ADE [Since AD->E]
B -> D
AF -> B B+ = BCD [Since B->C, B->D]
B -> C
+

AF = AFBCDE [Since AF->B, B->C,B->D, AB->C,
AD->E]
From the given set of functional dependencies, AF is a
Candidate Key.
Attribute Closure
Example 3: Key Attribute closure without candidate Key
Consider the Functional Dependencies for R(A, B, C,D,E)
A -> C A+ = ACB [Since A->C, C->B]
+ = CB [Since C->B]
C
C-> B
D+ = DE [Since D->E]
D -> E Since none of the key attribute closure have issued all the

attributes, try finding some other closure by combining the
key attributes which may issue all the attributes in the
AD+ = ADCEB [Since A->C, D->E, C->B]

From the given set of functional dependencies,
Candidate Key.
AD is a
Attribute Closure
Example 4: Key Attribute closure without candidate Key
Consider the Functional Dependencies for R(A, B, C,D,E)
A -> B A+ = AB [Since A->B]
+ = CD [Since C->D]
C
C-> D
BC+ = BCED [Since BC->E, C->D]
BC -> E Since none of the key attribute closure have issued all the

attributes, try finding some other closure by combining the
key attributes which may issue all the attributes in the
AC+ = ACBDE [Since A->B, C->D, BC->E]

From the given set of functional dependencies,
Candidate Key.
AC is a
Consider the relation scheme R(A, B, C, D, E, H) and the
set of functional dependencies A→B
 BC → D
 E→C
 D →A
Find F+
Bc->D,D->A then Bc->A (using tran

Steps to Find Minimal Cover



Singleton attributes in Right Hand Side [RHS]
Identify Extraneous Attributes and remove it
Remove redundant dependencies
Singleton in RHS

AB -> CD

The above functional dependency should be decomposed to
singleton attributes in the RHS as below.


AB -> C and
AB -> D
Extraneous Attributes


If an attribute doesn’t any meaning to the functional dependency, we say it
is extraneous and remove it
Consider the functional dependencies
A -> B
If an LHS has more than one attribute, check whether there exists
AB -> C an extraneous (Extra/Unwanted) attribute. If so, remove it.
D -> AC
LHS which have 2 attributes is AB -> C
D -> E
A+ = ABC [Since A->B,AB-> C]
B+ = B [Reflexivity]
If an attribute Closure gives only its own attribute by satisfying
Reflexivity, that attribute in the functional dependency is
Extraneous.
So, B is Extraneous in AB-> C Implies A->C
New FDs are A->B,A->C, D-AC, D->E
Finding Redundancy Dependency and
Minimal Cover – Ex 1

Now we have to identify the redundant dependencies
from the below
New FDs 1. Remove A->B and find the attribute closure for A
A+ = AC [Since A->C] – Here if we don’t consider A->B, B cannot be found
A->B
in A+. So A->B cannot be a redundant dependency.
A->C
D-AC
D->E
A->B
A->C
D->A
D->C
D->E
Applying
Singleton to
RHS
2. Remove A->C and find the attribute closure for A
A+ = AB [Since A->B] – Here if we don’t consider A->C, C cannot be found
in A+. So A->C cannot be a redundant dependency.
3. Remove D->A and find the attribute closure for D
D+ = DCE [Since D->C, D->E] – Here if we don’t consider D->A, A cannot
be found in D+. So D->A cannot be a redundant dependency.
4. Remove D->C and find the attribute closure for D
D+ = DAEBC [Since D->C, ] – Here if we don’t consider D->C, Could be
found in D+. So D->C is the redundant dependency and should be removed.
Finding Redundancy Dependency and
Minimal Cover
A->B
A->C
D->A
D->C
D->E
5. Remove D->E and find the attribute closure for D
D+ = DACB [Since D->A, A->C, A->B] – Here if we don’t consider D->E, E
cannot be found in D+. So D->E cannot be a redundant dependency.
So, Minimal Cover will be after removing
a) Extraneous Attributes
b) Redundant Dependencies
A->B
A->C
D->A
D->E
New FD’s
after
removing
Redundancy
Minimal Functional Dependencies are
A -> B
A -> C
D -> A
D -> E
Finding Redundancy Dependency and
Minimal Cover – Ex 2
Consider the Functional Dependencies
A -> B
B -> C
A -> C
Remove A -> B and find attribute Closure for A
A+ = AC [B is not issued – Not redundant]
Remove B -> C and find attribute Closure for B.
B+ = B [C is not issued – Not redundant]
Remove A -> C and find attribute Closure for A.
A+ = ABC [A->B, B->C. C is issued – So, Redundant]
Final FDs without redundancy are
A->B and B->C

Find Minimal Cover
R(A,B,C,D,E)
F = {A->D, BC->AD, C->B, E->A, E->D}
Finding Extraneous, Redundant
Dependency, Minimal Cover
R(A,B,C,D,E)
F = {A->D, BC->AD, C->B, E->A, E->D}
Step1: Singleton RHS
Step2: Remove Extraneous Attribute
Step3: Redundant Dependency

Step1: Singleton RHS
A->D
BC->A
BC->D
C->B
E->A
E->D
Finding Extraneous, Redundant
Dependency, Minimal Cover
Step2: Remove Extraneous Attribute
A->D
BC->A
BC->D
C->B
E->A
E->D
Consider BC->A and BC->D
B+ = B
C+=BCAD so B is Extraneous in BC->A and BC->D.
Remove it.
After removing Extraneous in LHS, F =>
A->D
C->A
C->D
C->B
E->A
E->D
Finding Extraneous, Redundant
Dependency, Minimal Cover
Step3: Remove Redundant Dependency
A->D
C->A
C->D
C->B
E->A
E->D
Remove A->D, A+ = A – Not Redundant [D not arrived]
Remove C->A, C+ = CDB – Not Redundant [A not arrived]
Remove C->D, C+ = CABD – Redundant [D arrived]
New
F= {A->D,
C->A,
C->B,
E->A,
E->D}
Finding Extraneous, Redundant
Dependency, Minimal Cover
Step3: Remove Redundant Dependency
A->D
C->A
C->B
E->A
E->D
Remove C->B, C+ = CAD – Not Redundant [B not arrived]
Remove E->A, E+ = ED – Not Redundant [A not arrived]
Remove E->D, E+ = EAD – Redundant [D arrived]
Final – Minimal Cover
F= {A->D,
C->A,
C->B,
E->A,}
EC+ = ECADB
EC will be the candidate Key


R(ABCDE)
FDs {A->BC,CD->E,B->D,E->A}
Thank You
Download