<На страницу назад | На страницу вперед >

3.3. Отношения категоризации

Семантика отношений категоризации

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

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

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

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

Синтаксис отношений категоризации

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

Если круг подчеркнут дважды, это указывает на полноту множества сущностей-категорий. Если круг подчеркнут один раз, это указывает на неполноту множества категорий.

Рис. 3-5. Синтаксис отношения категоризации

Имя атрибута общей сущности, используемое в качестве дискриминатора, записывается рядом с кружком. Хотя само отношение точно не именуется, отношение между общей сущностью и сущностью-категорией может звучать как "может быть". Например, СЛУЖАЩИЙ может быть ШТАТНЫМ_СЛУЖАЩИМ. Если мы имеем полный набор сущностей-категорий, то отношение может звучать как "должен быть". Например, СЛУЖАЩИЙ должен быть ШТАТНЫМ_СЛУЖАЩИМ либо СЛУЖАЩИМ_ПОЧАСОВИКОМ. В обратном направлении отношение звучит как "есть". Например, СЛУЖАЩИИ_ПОЧАСОВИК есть СЛУЖАЩИЙ.

Общая сущность и каждая сущность-категория должны иметь те же ключевые атрибуты. Однако, в сущностях-категориях могут использоваться имена ролей (см. также раздел 3.7 "Внешние ключи).

Правила отношений категоризации

  1. Сущность-категория может иметь только одну общую сущность. Это означает, что для каждого отношения категоризации может быть только один элемент из множества категорий.
  2. Сущность-категория, принадлежащая одному отношению категоризации, может быть общей сущностью в другом отношении категоризации.
  3. Сущность может быть общей сущностью в любом количестве отношений категоризации. (Например, сущности СЛУЖАЩИЙ_ЖЕНЩИНА и СЛУЖАЩИЙ_МУЖЧИНА могут быть другим множеством категорий для общей сущности СЛУЖАЩИЙ).
  4. Сущность-категория не может быть сущностью-потомком в идентифицирующем отношении.
  5. Атрибуты первичного ключа сущности-категории должны совпадать с атрибутами первичного ключа общей сущности.
  6. Все экземпляры сущности-категории имеют одно и то же значение дескриминатора и все экземпляры других категорий должны иметь другие значения дескриминаторов.

<На страницу назад | На страницу вперед >