Ключи-кандидаты базы данных иногда становятся первичными ключами
Ключ-кандидат представляет собой комбинацию атрибутов, которые могут быть уникально использованы для идентификации записи в базе данных без обращения к каким-либо другим данным. Каждая таблица может иметь одного или нескольких кандидатов. Один из этих ключей-кандидатов выбран в качестве первичного ключа таблицы. Таблица содержит только один первичный ключ, но может содержать несколько ключей-кандидатов. Если ключ-кандидат состоит из двух или более столбцов, он называется составным ключом.
Свойства ключа-кандидата
Все ключи-кандидаты имеют некоторые общие свойства. Одним из свойств является то, что в течение срока действия ключа-кандидата атрибут, используемый для идентификации, должен оставаться неизменным. Другое заключается в том, что значение не может быть нулевым. Наконец, ключ-кандидат должен быть уникальным.
Например, чтобы однозначно идентифицировать каждого сотрудника, компания может использовать номер социального страхования сотрудника. Как вы можете видеть, есть люди с одинаковыми именами, фамилиями и должностями, но ни у одного из них не было одинакового номера социального страхования.
123-45-6780 | Craig | Jones | Менеджер |
234-56-7890 | Craig | Бил | Associate |
345-67-8900 | Сандра | Бил | Менеджер |
456-78-9010 | Trina | Jones | Associate |
567-89-0120 | Сандра | Smith | Associate |
Примеры ключей-кандидатов
Некоторые типы данных легко поддаются в качестве кандидатов:
- Международные стандартные номера книг – ISBN уникально идентифицируют книги и связанные с ними носители. Выпуск ISBN строго регламентируется отраслевыми контролерами, и ISBN, как правило, никогда не используются издателями повторно.
- Номера банковских счетов. Большинство банков не перезаписывают номера счетов.
- Серийные номера. Хотя серийные номера не регулируются в разных отраслях, в контексте одного поставщика серийный номер всегда должен быть уникальным.
- Номера водительских прав. Обычно эти номера не дублируются. Однако человек, который переходит из одного штата в другой, может иметь более одного номера DL.
- Идентификатор национального поставщика. Врачи и другие лицензированные поставщики медицинских услуг имеют по крайней мере один уникальный NPI, выданный Министерством здравоохранения и социальных служб США.
Однако некоторые типы информации, которые могут показаться хорошими кандидатами, на самом деле оказываются проблематичными:
- Телефонные номера. Большинство операторов перерабатывают телефонные номера, и отдельные абоненты могут иметь несколько телефонных номеров одновременно.
- Универсальные ценовые коды – UPC уникальны, но владелец блока UPC может перерабатывать продукты по своему усмотрению.
- Номера медицинских карт – MRN, как правило, выдаются на уровне больницы, без какого-либо национального руководства по
- Номера социального обеспечения – хотя они теоретически уникальны, SSN действительно перерабатываются, и мошенничество с SSN достаточно распространено, чтобы сделать этот идентификатор проблематичным для больших наборов данных. (В контексте работодателя, который проверяет SSN, эта проблема не является проблемой.)