In the
relational data model a superkey is any
set of attributes that uniquely identifies each
tuple
In mathematics, a tuple is a finite sequence or ''ordered list'' of numbers or, more generally, mathematical objects, which are called the ''elements'' of the tuple. An -tuple is a tuple of elements, where is a non-negative integer. There is o ...
of a
relation. Because superkey values are unique, tuples with the same superkey value must also have the same non-key attribute values. That is, non-key attributes are
functionally dependent on the superkey.
The set of all attributes is always a superkey (the trivial superkey). Tuples in a relation are by definition unique, with duplicates removed after each operation, so the set of all attributes is always uniquely valued for every tuple. A
candidate key (or minimal superkey) is a superkey that can't be reduced to a simpler superkey by removing an attribute.
For example, in an employee schema with attributes
employeeID
,
name
,
job
, and
departmentID
, if
employeeID
values are unique then
employeeID
combined with any or all of the other attributes can uniquely identify tuples in the table. Each combination, , , , and so on is a superkey. is a candidate key, since no subset of its attributes is also a superkey. is the trivial superkey.
If attribute set ''K'' is a superkey of relation ''R'', then at all times it is the case that the
projection of ''R'' over ''K'' has the same
cardinality
The thumb is the first digit of the hand, next to the index finger. When a person is standing in the medical anatomical position (where the palm is facing to the front), the thumb is the outermost digit. The Medical Latin English noun for thum ...
as ''R'' itself.
Example
First, list out all the sets of attributes:
:•
:•
:•
:•
:•
:•
:•
:•
Second, eliminate all the sets which do not meet superkey's requirement. For example, cannot be a superkey because for the same attribute values (Edward, Plantagenet), there are two distinct tuples:
* (Edward, II, Plantagenet)
* (Edward, III, Plantagenet)
Finally, after elimination, the remaining sets of attributes are the only possible superkeys in this example:
* — this is also the
candidate key
* — this is also the trivial superkey.
In reality, superkeys cannot be determined simply by examining one set of tuples in a relation. A superkey defines a
functional dependency constraint of a relation schema which must hold for all possible instance relations of that relation schema.
See also
*
Alternate key
*
Candidate key
*
Compound key
*
Foreign key
A foreign key is a set of attributes in a table that refers to the primary key of another table, linking these two tables. In the context of relational databases, a foreign key is subject to an inclusion dependency constraint that the tuples ...
*
Primary key
References
Further reading
*
External links
Relation Database terms of reference, Keys An overview of the different types of keys in an RDBMS
{{Databases
Data modeling
Database management systems