<На страницу назад | На страницу вперед >
Семантика отношений связи
Специфическое отношение связи, или просто отношение связи, называемое также отношение родитель-потомок или отношение зависимости существования, - это ассоциация или связь между сущностями, при которой каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком, а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности-родителя. Например, специфическое отношение связи будет существовать между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА_ПОКУПКУ, если покупатель производит ноль, один или более заказов на покупку, а каждый заказ на покупку должен производиться одним покупателем. IDEF1X-модель описывает совокупность или множество отношений между двумя сущностями. Специфический экземпляр отношения связывает специфические экземпляры сущностей. Например, экземпляром отношения является "покупатель Джон Дол произвел заказ на покупку N 123".
Отношение связи может дополнительно определяться с помощью указания мощности отношения. А именно определяется, какое количество экземпляров сущности-потомка может существовать для каждого экземпляра сущности-родителя. В IDEF1X могут быть выражены следующие мощности отношений:
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителем, то отношение называется идентифицирующим отношением. В противном случае отношение называется неидентифицирующим. Например, если с каждым проектом связано одно или более заданий и задания однозначно идентифицируются только в пределах, своего проекта, то между сущностями ПРОЕКТ и ЗАДАНИЕ будет существовать идентифицирующее отношение. То есть для того, чтобы однозначно идентифицировать одно задание среди других заданий, должен быть известен проект, с которым связано это задание (см. также раздел 3.7 "Внешние ключи").
Если каждый экземпляр сущности-потомка может быть однозначно идентифицирован без знания связанного с ним экземпляра сущности-родителя, то отношение называется неидентифицирующим отношением. Например, хотя между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА ПОКУПКУ может существовать отношение зависимого существования, заказы на покупку могут однозначно идентифицироваться номером заказа на покупку без идентификации ассоциированного покупателя.
Могут быть также определены утверждения, относящиеся к нескольким отношениям сразу. Утверждение такого рода может быть задано с помощью булевского выражения, которое регламентирует (ограничивает) два или более отношений.
Например, отношение "исключающее ИЛИ" утверждает, что для данного экземпляра сущности-родителя при существовании одного типа экземпляра сущности-потомка не будет существовать второй тип экземпляра сущности-потомка. Если, однако, сущность-родитель и сущность-потомок относятся к одному реально существующему предмету, то потенциально существует отношение категоризации (см. раздел 3.3).
Другим типом ограничения является "утверждение пути", регламентирующего отношение между специфическими экземплярами сущности-родителя и сущности-потомка, при котором две сущности могут быть связаны либо прямо, либо косвенно, через две различные последовательности отношений. Например, сущность ОТДЕЛ может иметь две сущности-потомка: СЛУЖАЩИЙ и ПРОЕКТ. Если сущности СЛУЖАЩИЙ и ПРОЕКТ обладают общей сущностью-потомком с именем НАЗНАЧЕНИЕ_ПРОЕКТА, то НАЗНАЧЕНИЕ_ПРОЕКТА косвенно связано с сущностью ОТДЕЛ двумя разными путями отношений. Утверждение пути может устанавливать, что "служащие могут быть приписаны только к тем проектам, которыми занимается отдел, где служащие работают".
Синтаксис отношения связи
Специфическое отношение связи изображается линией, проводимой между сущностью-родителем и сущностью-потомком с точкой на конце линии у сущности-потомка. Мощность по умолчанию - "ноль, один или много".
Рис. 3-2. Синтаксис мощности отношения
Буква Р (positive) означает мощность "один или много" и помещается около точки. Буква Z (zero), помещенная около точки, означает мощность "ноль или один". Если мощность в точности равна некоторому числу N, это число (целое, положительное) помещается около точки (см. рис. 3-2).
Идентифицирующее отношение между сущностью-родителем и сущностью-потомком изображается сплошной линией (см. рис. 3-3).
Рис. 3-3. Синтаксис идентифицирующего отношения
Если существует идентифицирующее отношение, то сущность-потомок всегда является зависимой от идентификатора сущностью, изображаемой блоком с закругленными углами. При этом атрибуты первичного ключа сущности-родителя наследуются атрибутами первичного ключа сущности-потомка (см. также раздел 3.7 "Внешние ключи").
Пунктирная линия изображает неидентифицирующее отношение между сущностью-родителем и сущностью-потомком (см. рис. 3-4). В неидентифицирующем отношении и сущность-родитель, и сущность-потомок будут независимыми от идентификаторов сущностями, если только хотя бы одна из них не будет сущностью-потомком в некотором другом отношении, являющемся идентифицирующим отношением.
Рис 3-4. Синтаксис неидентифицирующего отношения
Отношению дается имя, выражаемое грамматическим оборотом глагола (глагол с необязательно присутствующими наречиями и предлогами) и помещаемое возле линии отношения. Имя каждого отношения между двумя данными сущностями должно быть уникальным, но имена отношений в модели не обязаны быть уникальными. Имя отношения всегда формируется с точки зрения родителя, так что может быть образовано предложение соединением имени сущности-родителя, имени отношения, выражения мощности и имени сущности-потомка.
Например утверждение "Проект состоит из одного или более заданий" может быть выведено из отношения, изображающего ПРОЕКТ в качестве сущности-родителя, ЗАДАНИЕ - в качестве сущности-потомка с символом мощности Р, СОСТОИТ_ИЗ - в качестве имени отношения. Обратите внимание, что отношение должно оставаться по-прежнему верным при формулировке в обратном направлении, хотя отношение "от потомка к родителю" явно не именуется. В предыдущем примере это звучит следующим образом: "ЗАДАНИЕ является частью в точности одного ПРОЕКТА".
Правила отношений