What are the Keys in DBMS?
A key is an attribute or a set of attributes that help to
uniquely identify a tuple (or row) in a relation (or table).
Keys are also used to establish relationships between the
different tables and columns of a relational database.
Individual values in a key are called key values.
Types of Keys in DBMS
There are broadly seven types of keys in DBMS.
1. Primary Key
2. Candidate Key
3. Super Key
4. Foreign Key
5. Composite Key
6. Alternate Key
7. Unique Key
1. Primary Key
Primary key is a column of a table or a set of columns that
helps to identify every record present in that table
uniquely. There can be only one primary Key in a table.
Also, the primary Key cannot have the same values
repeating for any row. Every value of the primary key must
be different with no repetitions.
The PRIMARY KEY (PK) constraint put on a column or set of
columns will not allow them to have any null values or any
duplicates. One table can have only one primary key
constraint.
o In the EMPLOYEE table, ID can be the primary key since it is unique
for each employee. In the EMPLOYEE table, we can even select
License_Number and Passport_Number as primary keys since they
are also unique.
2. Candidate Key
o A candidate key is an attribute or set of attributes that can uniquely
identify a tuple.
o Except for the primary key, the remaining attributes are considered
a candidate key. The candidate keys are as strong as the primary
key.
For example: In the EMPLOYEE table, id is best suited for the primary
key. The rest of the attributes, like SSN, Passport_Number,
License_Number, etc., are considered a candidate key.
For example: In the EMPLOYEE table, id is best suited for the primary
key. The rest of the attributes, like SSN, Passport_Number,
License_Number, etc., are considered a candidate key.
3. Super Key
Super key is an attribute set that can uniquely identify a tuple. A super
key is a superset of a candidate key.
For example: In the above EMPLOYEE table, for(EMPLOEE_ID,
EMPLOYEE_NAME), the name of two employees can be the same, but their
EMPLYEE_ID can't be the same. Hence, this combination can also be a key.
The super key would be EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME), etc.
4. Foreign Key
o Foreign keys are the column of the table used to point to the primary key
of another table.
o Every employee works in a specific department in a company, and
employee and department are two different entities. So we can't store the
department's information in the employee table. That's why we link these
two tables through the primary key of one table.
o We add the primary key of the DEPARTMENT table, Department_Id, as a
new attribute in the EMPLOYEE table.
o In the EMPLOYEE table, Department_Id is the foreign key, and both the
tables are related.
5. Composite Key
o Whenever a primary key consists of more than one attribute, it is
known as a composite key. This key is also known as Concatenated
Key.
o
For example, in employee relations, we assume that an employee
may be assigned multiple roles, and an employee may work on
multiple projects simultaneously. So the primary key will be
composed of all three attributes, namely Emp_ID, Emp_role, and
Proj_ID in combination. So these attributes act as a composite key
since the primary key comprises more than one attribute.
6. Alternate key
5. There may be one or more attributes or a combination of attributes
that uniquely identify each tuple in a relation. These attributes or
combinations of the attributes are called the candidate keys. One
key is chosen as the primary key from these candidate keys, and
the remaining candidate key, if it exists, is termed the alternate
key. In other words, the total number of the alternate keys is the
total number of candidate keys minus the primary key. The
alternate key may or may not exist. If there is only one candidate
key in a relation, it does not have an alternate key.
6. For example, employee relation has two attributes, Employee_Id
and PAN_No, that act as candidate keys. In this relation,
Employee_Id is chosen as the primary key, so the other candidate
key, PAN_No, acts as the Alternate key.
7. Unique Key
Unique Key is a column or set of columns that uniquely
identify each record in a table. All values will have to be
unique in this Key. A unique Key differs from a primary key
because it can have only one null value, whereas a primary
Key cannot have any null values.