Комплексное определение для информационного моделирования (IDEF1X), страница 11

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

В другом случае, категория сущности может потребоваться для того, чтобы выразить связь, которая является действенной только для специфической категории или задокументировать различия связей между различными категориями сущности. Например, ПОЛНЫЙДЕНЬСОТРУДНИК имеет право на премии, в то время как НЕПОЛНЫЙДЕНЬСОТРУДНИК не имеет такой возможности.

«Категоризация связи» - это связь между одной сущностью, называемой «Генеральная сущность», и другой сущностью, называемой «категория сущности». «Кластер категории» - это множество, состоящее из одной или более связей категоризации. Экземпляр генеральной сущности может быть связан только с одним экземпляром категории сущности в кластере, и каждый экземпляр категории сущности связан только с одним экземпляром генеральной сущности. Каждый экземпляр категории сущности представляет то же объект, что и связанный с ним экземпляр генеральной сущности. Из прошлого примера, СОТРУДНИК – это генеральная сущность, а ПОЛНЫЙДЕНЬСОТРУДНИК и НЕПОЛНЫЙДЕНЬСОТРУДНИК – это категории сущности. Существует две категоризации связи в этом кластере, одна – между СОТРУДНИК и ПОЛНЫЙДЕНЬСОТРУДНИК, а другая между СОТРУДНИК и НЕПОЛНЫЙДЕНЬСОТРУДНИК.

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

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

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

3.6.2. Синтаксис категоризации связей

Кластер категорий изображается как линия, исходящая из генеральной сущности к подчеркнутому кругу. Отдельные линии исходят из подчеркнутого круга к каждой категории сущности в кластере. Каждая пара линий, исходящая от генеральной сущности к кругу и от круга к категории сущности, представляет одну пару категориальных связей в кластере. Мощность не определяется у категорий сущности, поскольку она всегда равна нулю или одному. Категории сущностей всегда являются зависимо-идентифицируемыми (см. рисунок 8). Генеральная сущность является независимой до тех пор, пока идентификатор не мигрировал через другие связи.

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

Имя атрибута используется как дискриминатор, написанный рядом с кругом. Хотя категоризация связей сама явно не названа, каждая генеральная сущность к категориям сущности может быть прочитана как «может быть». Например, СОТРУДНИК может быть ПОЛНЫЙДЕНЬСОТРУДНИК. В полном множестве категорий, связи могут читаться как «должен быть». Например, СОТРУДНИК должен быть СОТРУДНИКМУЖЧИНА или СОТРУДНИКЖЕНЩИНА. В обратном направлении связь читается как «есть/является». Например, ПОЛНЫЙДЕНЬСОТРУДНИК есть СОТРУДНИК.

Генеральная сущность и каждая категория сущности должны иметь похожий состав первичного ключа. Однако, функциональное имя может быть использовано в категориях сущности (см. пункт 3.9. «Внешние ключи»).

* Генеральная сущность может быть независимо-идентифицированной сущностью (как показано на рисунке) или зависимо-идентифицируемой сущностью зависящей от других связей.

**Категориальная сущность всегда будет зависимо-идентифицируемой сущностью.

Рисунок 8. Синтаксис категоризации связей.

3.6.3. Правила категоризации связей

a)  Категория сущности может иметь только одну генеральную сущность. То есть, она может быть членом только одного множества категорий для одного кластера.

b)  Категория сущности в одной категориальной связи может быть генеральной сущностью в другой категориальной связи.

c)  Сущность может иметь любое количество кластеров категорий, в которых она является генеральной сущностью. (Например, СОТРУДНИКМУЖЧИНА и СОТРУДНИКЖЕНЩИНА могут быть вторым множеством категорий для генеральной сущности СОТРУДНИК).

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

e)  Все экземпляры категории сущности имеют похожее значение дискриминатора и все экземпляры различных категорий сущности должны иметь разные значения дискриминатора.