Let's consider the topics with a basic example. Suppose we have a student table, that contains data for name, class, the section of students. Now, if we want to check data for students with a name, there might be the same names carried by two different students, or to make it more complex, there might be the case where 2 different students with the same name, class, and section exist.
How can those two entries be uniquely identified?
It can be done by introducing a new column into a table, that contains unique values. For students, the unique values can be considered as:
- Roll No.
- Adhar Number
- admission Number
- Pan number
- Email ID
and a few more. Now, the above-mentioned list is nothing but a bucket of Candidate keys. Therefore it can be said that:
'Candidate Keys are nothing but a set of columns that has the capability to uniquely identify tuples or rows in a table.'
Now as we have a set of candidate keys, we choose one key that satisfies most with the situation, as a Primary key. Therefore, the keys that are in the bucket of candidate keys but not selected as a Primary Key are considered as Alternative Keys. For instance, you consider Roll No as a Primary key from the set of candidate keys the other ones that are Adhar Number, admission Number, Student_ID, Pan Number and Email ID are Alternate Keys.