Естественный ключ
Естественный ключ (также известный как бизнес-ключ) . [1] или ключ домена [2] ) — это тип уникального ключа в базе данных, сформированный из атрибутов, которые существуют и используются во внешнем мире за пределами базы данных (т. е. в бизнес-сфере или области дискурса ). [3] В реляционной модели данных естественный ключ является суперключом и , следовательно, функциональным определяющим фактором для всех атрибутов в отношении.
Естественный ключ служит двум взаимодополняющим целям:
- Он обеспечивает средства уникальной идентификации данных.
- Он накладывает правило, в частности ограничение уникальности , чтобы гарантировать, что данные остаются уникальными в информационной системе.
Ограничение уникальности гарантирует уникальность данных в определенном техническом контексте (например, набор значений в таблице, файле или переменной отношения) путем отклонения ввода любых данных, которые в противном случае нарушили бы ограничение. Это означает, что пользователь может рассчитывать на гарантированное соответствие между фактами, идентифицируемыми ключевыми значениями, записанными в системе, и внешней областью дискурса (единая версия истины по Кимбаллу ).
Естественный ключ отличается от суррогатного ключа , который не имеет значения за пределами самой базы данных, не основан на реальных наблюдениях и не предназначен для утверждения о моделируемой реальности. Таким образом, естественный ключ обеспечивает определенную гарантию качества данных , а суррогатный - нет. Обычно элементы данных имеют несколько ключей, любое количество которых может быть натуральным или суррогатным.
Преимущества
[ редактировать ]Преимущества использования естественного ключа для уникальной идентификации записей в отношении включают меньшее использование дискового пространства. Естественный ключ — это атрибут, связанный с бизнесом или реальным миром, поэтому в большинстве случаев он уже хранится в отношении, которое экономит дисковое пространство по сравнению с созданием нового столбца для хранения суррогатного ключа .
Еще одним преимуществом использования естественных ключей является то, что они упрощают контроль качества данных, и их легче применить к реальной жизни при проектировании системы базы данных. Они упрощают качество данных, поскольку использование естественного ключа, уникального в реальном мире, гарантирует, что не может быть нескольких записей с одним и тем же первичным ключом . Сравнение схемы базы данных с реальным сценарием является важной частью проектирования схемы базы данных, и когда в таблицах базы данных используется естественный ключ, инженеру базы данных становится проще проектировать систему базы данных.
Недостатки
[ редактировать ]Использование естественных ключей в качестве уникальных идентификаторов в таблице имеет один главный недостаток, заключающийся в изменении бизнес-правил или изменении правил атрибута в реальном мире. Определение структуры атрибута естественного ключа может измениться в будущем.
Например, если существует таблица, в которой хранится информация о гражданах США, номер социального страхования будет действовать как естественный ключ. Номер социального страхования, являющийся естественным ключом, может создать проблему в будущем, если правительство США изменит структуру социального обеспечения. Номер и увеличивает количество цифр в SSN по каким-то причинам. В этом случае администратору базы данных придется изменить схему таблицы и, возможно, также обновить записи таблицы. В других случаях это может вообще помешать улучшению системы из-за слишком больших усилий, необходимых для внесения изменений, например, из-за неспособности для управления знаниями программного обеспечения Confluence представлять несколько страниц с одним и тем же заголовком. [4]
Ссылки
[ редактировать ]- ^ Моделирование данных: что такое бизнес-ключ? Рой, Раджив Макс. 19 ноября 2020 г. Проверено 1 августа 2022 г.
- ^ Автоматические ключи и ключи домена
- ^ Интеллектуальные и суррогатные ключи
- ^ «[CONFSERVER-2524] Включить создание одноименных страниц в пространстве — создавать и отслеживать запросы функций для продуктов Atlassian» .