Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Ключи сущности

Сущности в IDEF1X всегда имеют ключевую которая содержит первичный ключ для сущности. ПЕРВИЧНЫЙ КЛЮЧ - это атрибут или набор атрибутов, выбранных для идентификации уникальных экземпляров сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется субъективно на основании анализа предметной области. Атрибуты первичного ключа изображаются в виде списка имен внутри блока сущности и располагаются наверху списка над линией в ключевой области и отделяются от других атрибутов горизонтальной чертой.
Как следует из названия, не ключевой атрибут - это атрибут, который не был выбран ключевым. Не ключевые атрибуты располагаются под чертой, в области данных.
Выбор первичного ключа для сущности является очень важным шагом, и требует большого внимания. В качестве первичных ключей могут быть использованы несколько атрибутов или групп атрибутов. Атрибуты, которые могут быть выбраны первичными ключами, называются кандидатами в ключевые атрибуты (потенциальные атрибуты). Кандидаты в ключи должны уникально идентифицировать каждую запись сущности. В соответствии с этим, ни одна из частей ключа не может быть NULL, не заполненной или отсутствующей.
Поэтому при создании сущности в IDEF1X модели, одним из главных вопросов, на который нужно ответить, является: « Как можно идентифицировать уникальную запись?» . Для этого в сущности требуется уникальная идентификация каждой записи, позволяющая правильно создать логическую модель данных.
Например, для того, чтобы корректно использовать сущность СОТРУДНИК в IDEF1X мо-дели данных (а позже в базе данных), необходимо иметь возможность уникально идентифицировать записи. Правила, по которым выбирается первичный ключ из списка предполагаемых ключей, очень строги, однако могут быть применены ко всем типам БД и информации. Правила устанавливают, что атрибуты и группы атрибутов должны:

  • уникальным образом идентифицировать экземпляр сущности;

  • не использовать NULL значений;

  • не изменяться со временем. Экземпляр идентифицируется при помощи ключа. При изменении ключа, соответственно меняется экземпляр;

  • быть как можно более короткими для использования индексирования и получения данных. Если нужно использовать ключ, являющийся комбинацией ключей из других сущностей, то необходимо убедится в том, что каждая из частей ключа соответствует правилам.

Процесс определения первичного ключа, приведен на сущности « СОТРУДНИК» :

  • атрибут « ID сотрудника» является потенциальным ключом, так как он уникален для всех экземпляров сущности СОТРУДНИК;

  • атрибут « Имя сотрудника» не подходит для потенциального ключа, так как среди служащих на предприятии может быть, к примеру, двое Иванов Петровых;

  • атрибут « Номер страхового полиса сотрудника» является уникальным, но имеется большая вероятность того, что у СОТРУДНИКА может не иметься страхового полиса;

  • комбинация атрибутов « имя сотрудника» и « дата рождения сотрудника» может оказаться достаточно подходящей для достижения поставленных целей и стать искомым потенциальным ключом.

После проведенного анализа можно назвать два потенциальных ключа - первый « Номер сотрудника» и комбинация, включающая поля « имя сотрудника» и « Дата рождения сотрудника» . Так как атрибут « Номер сотрудника» имеет самые короткие и уникальные значения, то он лучше других подходит для первичного ключа.
При выборе первичного ключа для сущности, разработчики модели часто используют ДО--ПОЛНИТЕЛЬНЫЙ КЛЮЧ (суррогатный), т.е. произвольный номер, который уникальным образом определяет запись в сущности. Атрибут « Номер сотрудника» является примером суррогатного ключа. Суррогатный ключ лучше всего подходит на роль первичного ключа потому, что яв-ляется коротким и быстрее всего идентифицирует экземпляры в объекте. К тому же суррогат-ные ключи могут автоматически генерироваться системой так, чтобы нумерация была сплошной, т.е. без пропусков.
Потенциальные ключи, которые не выбраны первичными, могут быть использованы в качестве вторичных или альтернативных ключей. АЛЬТЕРНАТИВНЫЙ КЛЮЧ - это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр сущности. Атрибуты, составляющие альтернативный ключ, однозначно (уникально) идентифицируют экземпляры сущности. Например, для сущности служащий (идентификатор служащего, фамилия. имя, отчество) группа атрибутов « фамилия» , « имя» , « отчество» может являться альтернативным ключом (в предположении, что на предприятии не работают полные тезки). С помощью альтернативных ключей часто отображают различные индексы доступа к данным в конечной реализации реляционной базы. Одни и те же атрибуты сущности могут входить в несколько различных групп ключей.
Если сущности в IDEF1X диаграмме связаны, связь передает ключ (или набор ключевых атрибутов) дочерней сущности. Эти атрибуты называются внешними ключами (Foreign Key), , которые могут использоваться в качестве части или целого первичного ключа или неключевого атрибута. ВНЕШНИЕ КЛЮЧИ определяются как атрибуты первичных ключей родительского объекта, переданные дочернему объекту через их связь. Передаваемые атрибуты называются МИГРИРУЮЩИМИ. Внешний ключ изображается с помощью помещения внутрь блока сущности имен атрибутов, после которых следуют буквы FK в скобках.
При разработке модели, приходится встречаться с сущностями, уникальность которых зависит от значений атрибута внешнего ключа. Для уникального определения каждой сущности внешний ключ должен быть частью первичного ключа дочернего объекта.
Атрибуты и первичные ключи