top of page

DBMS | Keys in Relational Model

First of all let us understand what is a Key? A Key is an attribute or a set of attributes which uniquely identifies every tuple or record(row) in a relation(table).

Depending on a relation the Keys can either be formed using one or two columns.


For example:

Employee

In the above Employee table the EMP_ID is the Primary Key which uniquely identifies every employee record.


 

Types of keys in Relational Model


1. CANDIDATE KEY : It is the set of minimum attributes which can easily identify a tuple in a table. Every table must have at least one candidate key. A table can have more than one candidate keys.


Properties of a Candidate key -

  • It must contain unique values.

  • It can be made up of multiple attributes, making it a composite candidate key.

  • No candidate key should have a NULL value.

Example: EMP_ID is the candidate key in the table given below.

 

2. PRIMARY KEY : It is a column or a group of columns which identifies every row in a table. An entity can contain multiple keys in a table. The key which is most suitable from the table become a primary key.


Properties of Primary Key -

  • It must be unique and not null.

  • Every row must have a primary key.

  • If any foreign key refers to a primary key, then its value cannot be changed or updated.

Example : EMP_ID and EMP_EMAIL together or separately can become the primary key of the table given below.

 

3. SUPER KEY : It is an attribute or a set of attributes which uniquely identifies a row in a table. A super key should not be confused with a candidate key as there is a basic difference between both of them, i.e., a super key is a super set of all the possible keys in a table whereas a candidate key is chosen from the given set of super keys; the chosen candidate key should not contain redundant attribute/es.

Example :

Following sets are the super keys of the above given table:

  • {EMP_ID}

  • {EMP_EMAIL}

  • {EMP_ID, EMP_NAME}

  • {EMP_ID, EMP_EMAIL}

  • {EMP_ID, EMP_NAME, EMP_EMAIL}

  • {EMP_EMAIL, EMP_NAME}



4. FOREIGN KEY : It is a column(attribute) that creates a relationship between two tables. It points to the primary key of another table. Its purpose is to maintain data integrity and allow a transit between two different instances of an entity.


Example:

From the above, it is clear that EMP_DEPT act as a foreign key in table 1 and a primary key in table 2.

 

Follow us on Instagram @programmersdoor

Join us on Telegram @programmersdoor


Please write comments if you find anything incorrect, or you want to share more information about the topic discussed.


Follow Programmers Door for more.

139 views2 comments
bottom of page