The primary key
concept is critical to an efficient relational database. Without the primary
key and closely related foreign key concepts, relational databases would not
Almost all individuals
deal with primary keys frequently but unknowingly in everyday life. For
example, students are routinely assigned unique identification (ID) numbers,
and all U.S. citizens have government-assigned and uniquely identifiable Social
For example, a
database must hold all of the data stored by a commercial bank. Two of the
database tables include the CUSTOMER_MASTER, which stores basic and static
customer data (name, date of birth, address, Social Security number, etc.) and
the ACCOUNTS_MASTER, which stores various bank account data (account creation
date, account type, withdrawal limits or corresponding account information,
To uniquely identify
customers, a column or combination of columns is selected to guarantee that two
customers never have the same unique value. Thus, certain columns are
immediately eliminated, e.g., surname and date of birth. A good primary key
candidate is the column that is designated to hold Social Security numbers.
However, some account holders may not have Social Security numbers, so this
column’s candidacy is eliminated. The next logical option is to use a
combination of columns, such as adding the surname to the date of birth to the
email address, resulting in a long and cumbersome primary key.
The best option is to
create a separate primary key in a new column named CUSTOMER_ID. Then, the
database automatically generates a unique number each time a customer is added,
guaranteeing unique identification. As this key is created, the column is
designated as the primary key within the SQL script that creates the table, and
all null values are automatically rejected.
The account number
associated with each CUSTOMER_ID allows for the secure handling of customer
queries and also demonstrates why primary keys offer the fastest method of data
searching within tables. For example, a customer may be asked to provide his
surname when conducting a bank query. A common surname (such as Smith) query is
likely to return multiple results. When querying data, utilizing the primary
key uniqueness feature guarantees one result.
In the relational model of databases,
a primary key is a specific choice of a minimal set
of attributes (columns) that uniquely specify a tuple (row) in a relation (table).[a] Informally, a primary key is "which attributes
identify a record", and in simple cases are simply a single attribute: a
unique id. More formally, a primary key is a choice of candidate key (a minimal superkey); any other candidate key is an alternate key.
A primary key may
consist of real-world observables, in which case it is called a natural key, while an attribute created to function as a key and not
used for identification outside the database is called a surrogate key. For example, for a database of people (of a given
nationality), time and location of birth could be a natural key[b].National
identification number is
another example of an attribute that may be used as a natural key.
database terms, a primary key does not differ in form or function from a key
that isn't primary and in practice various different motivations may determine
the choice of any one key as primary over another. The designation of a primary
key may indicate the "preferred" identifier for data in the table, or
that the primary key is to be used for foreign key references from other tables
or it may indicate some other technical rather than semantic feature of the
table. Some languages and software have special syntax features that can be
used to identify a primary key as such (e.g. the PRIMARY KEY constraint in SQL).
model, as expressed through relational calculus and relational algebra, does
not distinguish between primary keys and other kinds of keys. Primary keys were
added to the SQL standard mainly as a convenience to the application