Оглавление:
Определение - Что означает Кандидатский Ключ?
Ключ-кандидат - это столбец или набор столбцов в таблице, которые могут однозначно идентифицировать любую запись базы данных, не обращаясь к каким-либо другим данным. Каждая таблица может иметь один или несколько ключей-кандидатов, но один ключ-кандидат является уникальным и называется первичным ключом. Обычно это лучший из возможных ключей для идентификации.
Когда ключ состоит из нескольких столбцов, он называется составным ключом.
Техопедия объясняет кандидатский ключ
Лучший способ определить ключи-кандидаты - это пример: разрабатывается база данных банка. Чтобы однозначно определить учетную запись каждого клиента, можно использовать комбинацию даты рождения клиента и порядкового номера для каждой из его учетных записей. Таким образом, текущий счет мистера Эндрю Смита может быть пронумерован 120344-1, а его сберегательный счет - 120344-2. Ключ-кандидат только что создан.
Это может вызвать проблемы. Что если несколько человек с одинаковой датой рождения захотят открыть счет в банке?
Из-за таких потенциальных ловушек часто используемым вариантом является создание уникального ключа-кандидата. В этом случае база данных банка может выдавать уникальные номера счетов, которые гарантированно предотвращают только что выделенную проблему. Для удобства эти номера счетов могут иметь некоторую встроенную логику. Например, проверка учетных записей может начинаться с буквы «C», за которой следует год и месяц создания, а в этом месяце - порядковый номер. Таким образом, текущий счет Эндрю Смита теперь может быть C-200805-22. Даже не обращаясь ни к чему другому, кассир может определить, что это был 22-й чековый счет, созданный в мае 2008 года. Сберегательные счета следуют той же логике, но с «S» вместо «C».
Обратите внимание, что можно однозначно идентифицировать каждую учетную запись, используя вышеупомянутые даты рождения и порядковый номер, поэтому это ключ-кандидат, который потенциально может использоваться для идентификации записей. Однако только что был продемонстрирован гораздо лучший способ сделать то же самое: создать ключ-кандидат. Фактически, если выбранный ключ-кандидат настолько хорош, что он может однозначно идентифицировать каждую запись, то он должен использоваться в качестве первичного ключа. Все базы данных позволяют определять один и только один первичный ключ для каждой таблицы.
