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

3.2. Отношения связи

Семантика отношений связи

Специфическое отношение связи, или просто отношение связи, называемое также отношение родитель-потомок или отношение зависимости существования, - это ассоциация или связь между сущностями, при которой каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком, а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности-родителя. Например, специфическое отношение связи будет существовать между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА_ПОКУПКУ, если покупатель производит ноль, один или более заказов на покупку, а каждый заказ на покупку должен производиться одним покупателем. IDEF1X-модель описывает совокупность или множество отношений между двумя сущностями. Специфический экземпляр отношения связывает специфические экземпляры сущностей. Например, экземпляром отношения является "покупатель Джон Дол произвел заказ на покупку N 123".

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

  1. Каждый экземпляр сущности-родителя может иметь ноль, один или более связанных с ним экземпляров сущности-потомка.
  2. Каждый экземпляр сущности-родителя должен иметь не менее одного связанного с ним экземпляра сущности-потомка.
  3. Каждый экземпляр сущности-родителя может иметь не более одного связанного с ним экземпляра сущности-потомка.
  4. Каждый экземпляр сущности-родителя связан с некоторым фиксированным числом экземпляров сущности-потомка.

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

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

Могут быть также определены утверждения, относящиеся к нескольким отношениям сразу. Утверждение такого рода может быть задано с помощью булевского выражения, которое регламентирует (ограничивает) два или более отношений.

Например, отношение "исключающее ИЛИ" утверждает, что для данного экземпляра сущности-родителя при существовании одного типа экземпляра сущности-потомка не будет существовать второй тип экземпляра сущности-потомка. Если, однако, сущность-родитель и сущность-потомок относятся к одному реально существующему предмету, то потенциально существует отношение категоризации (см. раздел 3.3).

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

Синтаксис отношения связи

Специфическое отношение связи изображается линией, проводимой между сущностью-родителем и сущностью-потомком с точкой на конце линии у сущности-потомка. Мощность по умолчанию - "ноль, один или много".

Рис. 3-2. Синтаксис мощности отношения

Буква Р (positive) означает мощность "один или много" и помещается около точки. Буква Z (zero), помещенная около точки, означает мощность "ноль или один". Если мощность в точности равна некоторому числу N, это число (целое, положительное) помещается около точки (см. рис. 3-2).

Идентифицирующее отношение между сущностью-родителем и сущностью-потомком изображается сплошной линией (см. рис. 3-3).

Рис. 3-3. Синтаксис идентифицирующего отношения

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

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

Рис 3-4. Синтаксис неидентифицирующего отношения

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

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

Правила отношений

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

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