В контексте
реляционных баз данных альтернативный
ключ (или вторичный ключ) - это любой
ключ- кандидат,
который не выбран в качестве
первичного ключа (PK) .
Например,
реляционная база данных с таблицей
«employee» может иметь такие атрибуты, как «employee_id»,
«national_insurance_number» и т. Д. В этом случае и "employee_id",
и "national_insurance_number" служат уникальными идентификаторами для данного
сотрудника и, таким образом, могут быть использованы для первичного ключа. Следовательно,
оба они называются «ключами-кандидатами». Если, например,
«national_insurance_number» был выбран в качестве первичного ключа, «employee_id»
станет альтернативным ключом.
На практике RDMS нормально объявлять любые ключи-кандидаты /
альтернативные ключи, не используемые в качестве первичного ключа, как `` уникальные '', чтобы предотвратить
ошибки, когда альтернативный ключ заканчивается с повторяющимися значениями из-за опечаток
(это не произойдет для кандидата ключ, выбранный в качестве первичного
ключа, RDMS автоматически обнаружит его в этом случае). В
приведенном выше примере, если в качестве первичного
ключа был выбран «national_insurance_number»
, «employee_id» будет объявлен уникальным, и наоборот. В некоторых
практичных конструкциях
дизайнер может использовать
суррогатный
ключвместо естественного ключа-кандидата - и здесь неиспользуемый
альтернативный ключ должен быть объявлен как «уникальный».