151 подписчик
Сегодня разберемся с потенциальными и альтернативными (уникальными) ключами, обсудим, почему все они могли бы быть первичными ключами, но так ими и не стали.
Определения с просторов сети (из учебника по реляционным СУБД):
Потенциальный ключ (candidate key) - в реляционной модели данных подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и несократимости* (минимальности).
Альтернативный ключ (alternate key) - это потенциальный ключ, который не является первичным ключом отношения. Иногда ещё называют Уникальный ключ, Возможный ключ.

Всё понятно? Если не очень, объясняем: любой потенциальный ключ может стать первичным, выбор за вами, а точнее за владельцем данных, ведь именно он должен сказать какой из атрибутов для него самый важный, самый уникальный и наиболее точно идентифицирует его бизнес-сущность. Например: нам нужно как-то отделять друг от друга экземпляры бизнес-сущности "Физическое лицо". Потенциально, мы можем сделать это по номеру СНИЛС, или по номеру паспорта, а также по номеру телефона. Это всё Потенциальные ключи! И только бизнес-эксперт может точно сказать вам, какой именно атрибут из перечисленных для него Номер Один и какое из перечисленных свойств самое главное для физического лица, по которому мы будем их - физлиц - различать. Именно этот атрибут станет Первичным ключом. (Оставим в стороне сейчас сложный случай, когда бизнес-эксперт захочет проверять уникальность и генерировать первичный ключ по всем 3-м полям.)

А что же будет с остальными атрибутами? Да ничего особенного. Просто в процессе выбора первичного ключа, на них поставили штамп "Отказать". При этом ни на их свойства уникальности, ни на тот факт, что потенциально все они могли бы стать первичным ключом, это никак не повлияло. А это значит, что они остаются очень важными и существенными признаками нашей бизнес-сущности, и мы просто не имеем право не обращать на них внимание. Это наши Альтернативные или Уникальные ключи. Крайне желательно в процессе сбора требований к данным, уделить внимание всем этим ключам и пометить атрибуты, в которых они хранятся, каким-то отдельным признаком или тэгом. Ведь может быть ситуация, при которой бизнес-эксперт передумает и решит сделать Первичный ключ из другого Потенциального ключа? Да, конечно, они часто так делают :)

Итоговая проверка знаний: сегодня мы выяснили, что все атрибуты, отвечающие требованиям уникальности и несократимости являются потенциальными ключами. Один такой потенциальный ключ становится Первичным, а оставшиеся без этого звания, мы будем называть Альтернативными.

Основное про ключи прошли, дальше приступим уже к сбору требований к данным.
Обо всех ключах читай Толковый словарь Data Governance

*Несократимость (неделимость, неуменьшаемость, минимальность) - ровно столько знаков, сколько вы видите, и не меньше, и не больше, а иначе признак уникальности пропадёт!
Все новости в Telegram: t.me/...all
10 месяцев назад
7 подписчиков
Понятие первичного и внешнего ключей актуальны только для реляционных баз данных, где все данные организованы в форме таблиц, связанных между собой. Само слово ключ в контексте БД подразумевает поле (столбец таблицы) ИЛИ набор полей. Что же это за особые столбцы, и почему их называют ключами? Первичный ключ (Primary key) - это поле, или список полей, с помощью которого можно однозначно идентифицировать одну строчку. Выделение ПК необходимо, чтобы иметь возможность найти нужную строчку, корректно делать соединения таблиц и агрегацию...
5 месяцев назад