Потенциальный ключ


Потенциальный ключ (англ. candidate key, также в русскоязычных источниках используется термин возможный ключ[1]) — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и несократимости (минимальности)[1][2][3]:

Кристофер Дейт отмечает, что, хотя свойство несократимости в литературе часто обозначается термином минимальность, последний термин является не вполне подходящим, поскольку может навести кого-либо на мысль о том, что из нескольких потенциальных ключей минимальным является ключ с наименьшим количеством атрибутов. Поэтому Дейт предпочитает термин несократимость[2].

Потенциальный ключ отличается от суперключа тем, что на суперключ накладывается только требование уникальности, но не накладывается требование минимальности (несократимости). Таким образом, любой потенциальный ключ является суперключом.

Система баз данных не способна самостоятельно определять потенциальные ключи, это может делать только проектировщик базы данных, исходя из знаний о предметной области. Проектировщик должен выявлять и явно определять все потенциальные ключи, поскольку в результате такого объявления система управления базами данных получает информацию, которую в дальнейшем использует для проверки данных на корректность. Таким образом, определение потенциального ключа является ограничением целостности[1].

Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ (например, включающий все атрибуты отношения)[2].

В отношении может быть одновременно несколько потенциальных ключей. Один из них может быть выбран в качестве первичного ключа отношения, тогда другие потенциальные ключи называют альтернативными ключами'[2].