Интегрированные системы проектирования и управления. Корпоративные информационные системы. Погонин В.А - 27 стр.

UptoLike

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