A candidate key of a table is a combination of attributes that can be uniquely used to identify a database record without any extraneous data. Each table may have one or more candidate keys. One of these candidate keys is selected as the table primary key.
Candidate key of a database table must fulfill two rules:
1. at all times it holds in the relation assigned to that variable that there are no two distinct tuples (rows) with the same values for these attributes and
2. there is not a proper subset of this set of attributes for which (1) holds.