SQL-KEYS
Shilpa Mahajan
E-mail- Mahajanshilpa141@gmail.com
INTRODUCTION
Keys are one of the basic requirements of a relational database
model.
It is widely used to identify the tuples(rows) uniquely in the
table.
We also use keys to set up relations amongst various columns and
tables of a relational database.
Different Types of Database Keys
⚫ Candidate Key
⚫ Primary Key
⚫ Super Key
⚫ Alternate Key
⚫ Foreign Key
⚫ Composite Key
CANDIDATE KEY
The minimal set of attributes that can uniquely identify a tuple is known as
a candidate key. For Example, STUD_NO in STUDENT relation.
It is a minimal super key.
It is a super key with no repeated data is called a candidate key.
The minimal set of attributes that can uniquely identify a record.
It must contain unique values.
It can contain NULL values.
Every table must have at least a single candidate key.
A table can have multiple candidate keys but only one primary key.
The value of the Candidate Key is unique and may be null for a tuple.
There can be more than one candidate key in a relationship.
.
Example:
STUD_NO is the candidate key for relation STUDENT.
{STUD_NO, COURSE_NO} is a composite
candidate key for relation STUDENT_COURSE
STUD_NO SNAME ADDRESS PHONE
1 Shyam Delhi 123456789
2 Rakesh Kolkata 223365796
3 Suraj Delhi 175468965
STUD_NO TEACHER_NO COURSE_NO
1 001 C001
2 056 C005
PRIMARY KEY
There can be more than one candidate key in relation out of which
one can be chosen as the primary key. For Example, STUD_NO, as
well as STUD_PHONE, are candidate keys for relation STUDENT
but STUD_NO can be chosen as the primary key (only one out of
many candidate keys).
It is a unique key.
It can identify only one tuple (a record) at a time.
It has no duplicate values, it has unique values.
It cannot be NULL.
Primary keys are not necessarily to be a single column; more than
one column can also be a primary key for a table.
EXAMPLE:
STUDENT table -> Student(STUD_NO, SNAME,
ADDRESS, PHONE) , STUD_NO is a primary key
PHONE
STUD_NO SNAME ADDRESS
1 Shyam Delhi 123456789
2 Rakesh Kolkata 223365796
3 Suraj Delhi 175468965
SUPER KEY
The set of attributes that can uniquely identify a tuple is known as
Super Key. For Example, STUD_NO, (STUD_NO, STUD_NAME),
etc. A super key is a group of single or multiple keys that
identifies rows in a table. It supports NULL values.
Adding zero or more attributes to the candidate key generates the
super key.
A candidate key is a super key but vice versa is not true.
Super Key values may also be NULL.
Consider the table shown in previous slide (student table).
STUD_NO+PHONE is a super key.
ALTERNATE KEY
The candidate key other than the primary key is called an alternate key.
All the keys which are not primary keys are called alternate keys.
It is a secondary key.
It contains two or more fields to identify two or more records.
These values are repeated.
Eg:- SNAME, and ADDRESS is Alternate keys
Consider the table shown above.
STUD_NO, as well as PHONE both,
are candidate keys for relation STUDENT but
PHONE will be an alternate key
(only one out of many candidate keys).
FOREIGN KEY
If an attribute can only take the values which are present as values of some other attribute,
it will be a foreign key to the attribute to which it refers. The relation which is being
referenced is called referenced relation and the corresponding attribute is called
referenced attribute the relation which refers to the referenced relation is called
referencing relation and the corresponding attribute is called referencing attribute. The
referenced attribute of the referenced relation should be the primary key to it.
It is a key it acts as a primary key in one table and it acts as
secondary key in another table.
It combines two or more relations (tables) at a time.
They act as a cross-reference between the tables.
For example, DNO is a primary key in the DEPT table and a non-key in EMP
EXAMPLE:
Refer Table STUDENT shown above.
STUD_NO in STUDENT_COURSE is a
foreign key to STUD_NO in STUDENT relation.
Table STUDENT_COURSE
STUD_NO TEACHER_NO COURSE_NO
1 005 C001
2 056 C005
It may be worth noting that, unlike the Primary Key of any given
relation, Foreign Key can be NULL as well as may contain
duplicate tuples i.e. it need not follow uniqueness constraint. For
Example, STUD_NO in the STUDENT_COURSE relation is not
unique. It has been repeated for the first and third tuples. However,
the STUD_NO in STUDENT relation is a primary key and it needs
to be always unique, and it cannot be null.
COMPOSITE KEY
Sometimes, a table might not have a single column/attribute that
uniquely identifies all the records of a table. To uniquely identify
rows of a table, a combination of two or more columns/attributes
can be used. It still can give duplicate values in rare cases. So, we
need to find the optimal set of attributes that can uniquely identify
rows in a table.
It acts as a primary key if there is no primary key in a table
Two or more attributes are used together to make a composite key.
Different combinations of attributes may give different accuracy in
terms of identifying the rows uniquely.
EXAMPLE
FULLNAME + DOB can be combined
together to access the details of a student.
Thank you for Attention