Рассмотрим таблицу Клиент. Среди ее столбцов очевидным кандидатом на первичный ключ является Название. Однако эта комбинация будет удовлетворять нас, пока таблица не разрастется до такой степени, что в ней появятся фирмы с одинаковыми названиями. Например, как только в таблице появятся два филиала (с одинаковыми названиями) одной и той же фирмы, поле Название перестанет однозначно идентифицировать каждый филиал.
Другая проблема, возникающая при использовании имен в качестве универсальных идентификаторов, связана с частыми опечатками при их вводе. Поэтому хорошим решением обычно является создание специального столбца, который и будет использоваться в качестве первичного ключа. Реальными примерами таких уникальных идентификаторов могут быть код предприятия, номер лицензии, заказа, студенческого билета и т.п.
Чтобы показать, какие столбцы являются первичными ключами, мы подчеркиваем их следующим способом.
- естественный первичный ключ (однозначно идентифицирует строку)
|
|
- суррогатный ключ (создан исключительно для удобства)
Первичные ключи могут быть простыми и составными. Примерами простых первичных ключей могут служить Idn (таблицы Города, Группы, Склад и т.д.), составных – Idn_группы и Idn_мат.цен (таблица Мат.ценности).
Примечание: выбор первичных ключей является одним из основных шагов при проектировании базы данных. Несмотря на их важность, ранние версии SQL не поддерживали определение первичных ключей. ANSI-стандарт SQL 1992 года, принятый сегодня большинством производителей, поддерживает предложение PRIMARY KEY в инструкции CREATE TABLE.