TOPICS (Click to Navigate)

Pages

Wednesday, November 30, 2016

One more way to find candidate keys in normalization process

How to find the candidate keys? Another way to find candidate keys in normalization process / Easy way to find key of relational table in DBMS

Another way to find candidate keys

When we try to find the candidate keys we always start with the attributes that are in the left hand side and we try to find the closure of Left Hand Side (LHS) attributes. In many cases, there are possibilities such that the attributes that are on both sides may also contribute in forming a candidate keys. Hence, we would use the following method to find all the candidate keys.
We separate the attributes from the given set of FDs as follows;
LHS only attributes (L)
Not listed attributes (N)
RHS only attributes (R)
Both LHS and RHS (B)





The attributes that are on the LHS must present in a key. That is, L Key (L is subset or equal to a key).
The attributes that are not part of any given FDs must be a part of a candidate key. That is, N Key (N is a subset of a key).
The attributes that are on the RHS cannot be a part of key. That is, R Key (R cannot be part of a key).
The attributes that are present on both sides of different functional dependencies may contribute in formation of a candidate key. That is, R Key (R may be part of key).

Example 1:
Let us try this with an example;
Consider a relation R = ABCDEF with set F of functional dependencies, F = {A -> B, B -> D, C -> D, E -> F}; Find the candidate keys of R.
Using the set F, let us draw the table;
LHS only attributes (L)
Not listed attributes (N)
RHS only attributes (R)
Both LHS and RHS (B)
A, C, E
-
D, F
B

As per the theory, LHS contributes in forming a key. Hence, let us find the closure of LHS attributes first.
A+ = ABD
C+ = CD
E+ = EF
(AC)+ = ABCD
(AE)+ = ABDEF
(CE)+ = CDEF
(ACE)+ = ABCDEF
Hence, (ACE) is a candidate key.
We don’t need to find the closure for RHS only attributes D and F.
Both side attribute may contribute. But in the given example, B is the attribute available on both side but it already can be determined by A. Hence, it may not contribute in forming the key.
So, only candidate key is (ACE).

Example 2:
Let us try another example;
Consider a relation R = (ABCDEF) with set F as F = {DF -> C, BC -> F, E -> A, ABC -> E}. Find all the candidate keys.

LHS only attributes (L)
Not listed attributes (N)
RHS only attributes (R)
Both LHS and RHS (B)
D, B
-
-
A, C, E, F

Let us find the closure of LHS attributes.
D+ = D
B+ = B
(DB)+ = DB
Now we need the both sides attributes for finding the candidate key. But they can form the key in association with LHS attributes as LHS is must in a key.
A+ = A
C+ = C
E+ = AE
F+ = F
(DBA)+ = ABD
(DBAC)+ = ABCDEF – One candidate key
(DBEF)+ = ABCDEF – One candidate key
(ACEF)+ = ACEF

Hence, candidate keys are (ABCD) and (BDEF).





one more way to find the candidate keys of a relational table

Simpler way to find the candidate keys in dbms

No comments:

Post a Comment