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. ]]>