Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Определение ключевых атрибутов




На стадии 3 методологии IDEF1X идентифицируются и определяются элементы данных об экземплярах сущностей, называемых возможными ключами, первичными ключами, альтернативными ключами и внешними ключами. Цель этого этапа - установить значения атрибутов, однозначно определяющих каждый экземпляр сущности.

Важно подчеркнуть определение и смысл терминов "экземпляр атрибута" и "атрибут". Экземпляр атрибута является свойством или характеристикой экземпляра сущности. Экземпляры атрибутов составляются из имени и значения. Другими словами, экземпляр атрибута является элементом информации, известной об отдельном экземпляре сущности. Экземпляры атрибутов являются описателями, т.е. они по сути скорее подобны прилагательным.

На рис. 4-11 приведены некоторые экземпляры атрибутов и их соответствующие экземпляры сущностей. Заметим, что первый экземпляр сущности (или индивидуум) идентифицируется номером служащего 1, ассоциированное с этим экземпляром сущности имя - Смит, а профессия этого экземпляра сущности - оператор. Эти экземпляры атрибутов, взятые вместе, однозначно описывают экземпляр сущности и отделяют его от других аналогичных экземпляров сущностей. Каждый экземпляр атрибута обладает как типом, так и значением. Каждый конкретный экземпляр сущности описывает уникальную комбинацию экземпляров атрибутов.

Атрибут представляет множество экземпляров атрибутов одного типа, относящихся к разным экземплярам одной и той же сущности. Имена атрибутов обычно являются описательными существительными в единственном числе. В примере с сущностью СЛУЖАЩИЙ имеется несколько атрибутов:

  • Номер служащего.
  • Имя служащего.
  • Профессия/должность служащего.

На рис. 4-11 показано, как экземпляры атрибутов представляются в качестве атрибутов. Экземпляры атрибутов принадлежат экземплярам сущностей. Но и сами атрибуты принадлежат сущности. Таким образом, между сущностью и некоторым числом атрибутов устанавливается ассоциация собственности.

Рис. 4-11. Примеры атрибутов

У атрибутов есть только один владелец. Владелец - это сущность, которой атрибут принадлежит. В нашем примере владельцем атрибута НОМЕР-СЛУЖАЩЕГО будет сущность СЛУЖАЩИЙ. Хотя атрибут имеет только одного владельца, владелец может делить его с другими сущностями. Ниже будет детально рассмотрено, как это происходит.

Атрибут представляет использование экземпляра атрибута для описания отдельного специфического свойства отдельного экземпляра сущности. Кроме того, некоторые атрибуты представляют использование экземпляра атрибута для однозначного установления специфического экземпляра сущности. Эти атрибуты неформально называются ключевыми атрибутами.

На стадии 3 производится идентификация ключевых атрибутов в контексте нашей модели. На стадии 4 устанавливаются и определяются неключевые атрибуты.

Один или несколько атрибутов образуют возможный ключ сущности. Возможный ключ определяется как один или несколько ключевых атрибутов для однозначной идентификации каждого экземпляра сущности. Примером атрибута, используемого в качестве возможного ключа сущности, является номер служащего. Каждый служащий идентифицируется среди всех других служащих с помощью номера служащего. Поэтому атрибут НОМЕР-СЛУЖАЩЕГО является возможным ключом, который, однозначно определяет каждый элемент сущности СЛУЖАЩИЙ. Некоторые сущности обладают более чем одной группой атрибутов, которые могут применяться для различения одного экземпляра сущности от других. Рассмотрим сущность СЛУЖАЩИЙ с атрибутами НОМЕР-СЛУЖАЩЕГО и НОМЕР_СТРАХОВОГО_ПОЛИСА, каждый из которых сам по себе является возможным ключом. Для такой сущности выбирается один возможный ключ для использования в миграции ключей. Этот ключ называется первичным ключом, а остальные возможные ключи - альтернативными ключами. Если сущность обладает только одним возможным ключом, то он автоматически является первичным ключом. Таким образом, каждая сущность обладает первичным ключом, а некоторые сущности обладают также альтернативными ключами. Каждый тип возможных ключей может применяться для идентификации экземпляров сущностей, но только первичный ключ используется в миграции ключей.

На диаграмме модели в блоке основной сущности проводится горизонтальная линия, и внутри блока, выше этой линии, указывается первичный ключ. Если в первичном ключе имеется более одного атрибута (например, для идентификации проектных заданий требуются и номер проекта, и номер задания), то они все указываются выше горизонтальной линии. Если сущность обладает альтернативным ключом, то ему присваивается уникальный номер альтернативного ключа. На диаграмме этот номер указывается в скобках вслед за каждым атрибутом, являющимся частью этого альтернативного ключа. Если атрибут принадлежит нескольким альтернативным ключам, то каждый из номеров этих ключей указывается в скобках. Если атрибут принадлежит и альтернативному ключу, и первичному ключу, то он указывается выше горизонтальной линии вместе со следующим после него номером альтернативного ключа. Если атрибут не принадлежит первичному ключу, то он указывается ниже горизонтальной линии. На рис. 4-12 приведены различные формы ключей.

Рис. 4-12. Формы ключей

Процесс идентификации ключей включает:

  1. Идентификацию возможных ключей сущности.
  2. Выбор одного из них в качестве первичного ключа сущности.

Поскольку некоторые возможные ключи могут возникнуть в результате миграции, идентификация ключей - итеративный процесс. Начинайте с тех сущностей, которые не являются ни в каком отношении сущностями-потомками или сущностями-категориями.

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

 

Миграция ключей

Миграция ключей - это процесс копирования первичного ключа одной сущности в другую, связанную с ней сущность. Эта копия называется внешним ключом. Значение внешнего ключа в каждом экземпляре второй сущности совпадает со значением связанного экземпляра первой сущности. Таким образом атрибут, принадлежащий одной сущности, разделяется с другой сущностью. Миграция ключей подчиняется следующим трем правилам:

  1. Миграция всегда происходит в отношении от родительской или общей сущности к сущности-потомку или сущности-категории.
  2. Весь первичный ключ (т.е. все атрибуты, являющиеся элементами первичного ключа) должен мигрировать по одному разу для каждого отношения, разделяемого парой сущностей.
  3. Альтернативный ключ и неключевые атрибуты никогда не мигрируют.

Каждый атрибут внешнего ключа соответствует атрибуту первичного ключа родительской или общей сущности. Первичный ключ сущности-категории в категориальном отношении должен совпадать с первичным ключом общей сущности. В других отношениях атрибут внешнего ключа может, но не обязан быть частью первичного ключа сущности-потомка. Атрибуты внешних ключей не считаются принадлежащими сущностям, в которых они появляются, поскольку они отражают атрибуты родительских сущностей. Таким образом, каждый атрибут в сущности либо принадлежит этой сущности, либо принадлежит внешнему ключу этой сущности.

В диаграммах модели внешние ключи обозначаются примерно так же, как альтернативные ключи, т.е. после каждого атрибута, принадлежащего внешнему ключу, следует (FK). Если атрибут принадлежит также первичному ключу, то он располагается выше горизонтальной линии, а если нет, то - ниже. Если первичный ключ сущности-потомка содержит все атрибуты внешнего ключа, то сущность-потомок называется зависимой от идентификатора относительно родительской сущности, а отношение называется идентифицирующим отношением. Если какие-либо атрибуты внешнего ключа не принадлежат первичному ключу сущности-потомка, то сущность-потомок не является независимой от идентификатора относительно родительской сущности, а отношение называется неидентифицирующим. На диаграммах стадий 3 и 4 сплошными линиями изображаются только идентифицирующие отношения, а неидентифицирующие отношения изображаются пунктирными линиями.

Сущность, являющаяся сущностью-потомком в одном или нескольких идентифицирующих отношениях, называется зависимой от идентификатора. Сущность, являющаяся сущностью-потомком только в неидентифицирующих отношениях (или не являющаяся сущностью-потомком ни в одном из отношений), называется независимой от идентификатора. В диаграммах стадий 3 и 4 блоками с прямыми углами изображаются только идентификаторно-независимые сущности, а идентификаторно-зависимые сущности изображаются блоками с закругленными углами. На рис. 4-13 приведен пример миграции ключа атрибута из родительской сущности к сущности-потомку.

Рис. 4-13. Миграция ключа к зависимой от идентификатора сущности

В этом примере атрибут НОМЕР_ПОКУПАТЕЛЯ (первичный ключ сущности ПОКУПАТЕЛЬ) мигрирует в сущность ЗАКАЗ (т.е. является внешним ключом в этой сущности). Этот атрибут затем используется в сущности ЗАКАЗ в качестве элемента его первичного ключа вместе с другим атрибутом, называющимся НОМЕР_ЗАКАЗА, принадлежащим ЗАКАЗУ. Эти два атрибута (НОМЕР_ПОКУПАТЕЛЯ и НОМЕР_ЗАКАЗА) вместе образуют первичный ключ сущности ЗАКАЗ.

На рис. 4-14 приведен пример миграции ключа атрибута из идентификаторно-независимой сущности к другой идентификаторно-независимой сущности. В этом примере атрибут НОМЕР_ОТДЕЛА мигрирует к сущности СЛУЖАЩИЙ. Однако первичным ключом сущности СЛУЖАЩИЙ является ИДЕНТИФИКАТОР_СЛУЖАЩЕГО. Поэтому НОМЕР_ОТДЕЛА появляется в качестве внешнего ключа ниже линии ключевых атрибутов. Линия отношения является пунктирной, поскольку это отношение - неидентифицирующее.

Рис. 4-14. Миграция ключей в независимую от идентификатора сущность

Один и тот же атрибут может порождать в одной и той же сущности-потомке более одного внешнего ключа. Так происходит при миграции атрибута в сущность-потомок более чем через одно отношение. В некоторых случаях каждый экземпляр сущности-потомка должен обладать в обоих внешних ключах одним и тем же значением для этого атрибута. Когда это так, атрибут появляется внутри сущности столько раз и идентифицируется в качестве внешнего ключа. В других случаях экземпляр сущности может (или должен) обладать различными значениями в каждом внешнем ключе. В этих случаях атрибут появляется внутри сущности более одного раза, что приводит к необходимости отличать одно появление от другого. Для этого каждому присваивается имя роли, показывающее, чем одно появление отличается от другого (рис. 4-15).

Рис. 4-15. Имена ролей атрибутов

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...