Rules for Primary Keys
There are several rules that define the bounds of primary keys. Note that these rules actually apply to all candidate keys for a relation, not just to its primary key.
The first and second rules in the following list are absolute, and the third is strongly advised:
This principle is known as the entity integrity rule, and it is one of the fundamental principles of relational database theory. See “The Referential Integrity Rule” on page 95 for a definition of the other fundamental integrity rule.
By definition, nulls are not unique because they represent missing values that cannot be distinguished from one another.
Although the database relational model does not explicitly state that alternate keys cannot be null, the constraint is implicit because a column set cannot be a potential primary key (a candidate key) if it is null or contains nulls.
By definition, a primary key is a unique identifier. If it contains duplicate values, it cannot be unique (this means that multiset tables cannot have true primary keys).
This rule is neither part of the relational model, nor is it absolute, because there are occasions when primary key updates must be made.
Whenever a primary key is updated, it is possible, and even probable, that a series of coordinated foreign key updates must also be made to maintain the consistency of the database. However, it is equally likely that those cascaded updates will never be performed, leaving the database in a state that does not reflect reality even if all the system integrity constraints have been satisfied, which is the principal reason primary key updates are discouraged so strongly.