How to Find Candidate Key using Functional Dependencies

How to Find Candidate Key using Functional Dependencies – In the previous post (How to Find Super Key from FD), we identify all the superkeys using functional dependencies. To identify Candidate Key, Let R be the relational schema, and X be the set of attributes over R. X+ determine all the attributes of R, and therefore X is said to be superkey of R. If there are no superflous attributes in the Super key, then it will be Candidate Key. In short, a minimal Super Key is a Candidate Key. Example 1 : 

Let R(ABCDE) is a relational schema with following functional dependencies.
AB → C
DE → B
CD → E
Step 1: Identify the SuperKeys -
ACD, ABD, ADE, ABDE, ACDB, ACDE, ACDBE.  {From Previous Post Example}
Step 2: Find minimal super key -
Neglecting the last four keys as they can be trimmed down, so, checking
the first three keys (ACD, ABD and ADE)

For SuperKey : ACD
(A)+ = {A}    - {Not determine all attributes of R}
(C)+ = {C}    - {Not determine all attributes of R}
(D)+ = {D}    - {Not determine all attributes of R}

For SuperKey : ABD
(A)+ = {A}     - {Not determine all attributes of R}
(B)+ = {B}     - {Not determine all attributes of R}
(D)+ = {D}     - {Not determine all attributes of R}

For SuperKey : ADE
(A)+ = {A}     - {Not determine all attributes of R}
(D)+ = {D}     - {Not determine all attributes of R}
(E)+ = {E}     - {Not determine all attributes of R}
Hence none of proper sets of SuperKeys is not able to determine all attributes of R, So ACD, ABD, ADE all are minimal superkeys or candidate keys. Example 2 :
Let R(ABCDE) is a relational schema with following functional dependencies - 
AB → C
C  → D
B  → EA
Find Out the Candidate Key ?
Step 1: Identify the super key
(AB+) : {ABCDE}   ⇒ Superkey
(C+) :  {CD}      ⇒ Not a Superkey
(B+) : {BEACD}    ⇒ Superkey

So, Super Keys will be B, AB, BC, BD, BE, BAC, BAD, BAE, BCD, BCE, BDE,
BACD, BACE, BCDE, ABDE, ABCDE
Step 2: Find minimal super key -
Taking the first one key, as all other keys can be trimmed down -
(B+)  :  {EABCD}     {determine all the attributes of R}

Since B is a minimal SuperKey ⇒ B is a Candidate Key.
So, the Candidate Key of R is – B.  ]]>

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top