
- •Создание
- •Работа с пакетом Design/idef
- •2.Создание idef1x-моделей Введение
- •Семантика и синтаксис idef1x
- •Сущности
- •1.2. Отношения связи Семантика отношений связи
- •1.3. Отношения категоризации
- •1.4. Неспецифические отношения
- •1.5. Атрибуты
- •1.6. Первичные и альтернативные ключи
- •1.7. Внешние ключи
- •1.8. Пример idef1x-модели
- •2. Работа с пакетом Design/idef
1.2. Отношения связи Семантика отношений связи
Специфическое отношение связи или просто отношение связи, называемое также отношение родитель-потомок, это ассоциация или связь между сущностями, при которой каждый экземпляр одной сущности, называемой родительской сущностью, ассоциирован с произвольным (в том числе нулевым) количеством экземпляров второй сущности, называемой сущностью-потомком, а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром сущности-родителя. Таким образом, экземпляр сущности-потомка может существовать только при существовании сущности-родителя.
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителем, то отношение называется идентифицирующим отношением. Например, если с каждым проектом связано одно или более заданий и задания однозначно идентифицируются только в пределах своего проекта, то между сущностями ПРОЕКТ и ЗАДАНИЕ будет существовать идентифицирующее отношение.
Если каждый экземпляр сущности-потомка может быть однозначно идентифицирован без знания связанного с ним экземпляра сущности-родителя, то отношение называется неидентифицирующим отношением. Например, хотя между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА_ПОКУПКУ может существовать отношение зависимого существования, заказы на покупку могут однозначно идентифицироваться номером заказа на покупку без идентификации ассоциированного покупателя.
Отношение связи дополнительно определяется с помощью указания мощности отношения. А именно определяется, какое количество экземпляров сущности-потомка может существовать для каждого экземпляра сущности-родителя.
В IDEF1X используется несколько вариантов указания мощности отношения.
Синтаксис отношения связи. Специфическое отношение связи изображается линией, проводимой между сущностью-родителем и сущностью-потомком с точкой на конце линии у сущности-потомка. Мощность по умолчанию – «ноль, один или много». Буква Р (positive) означает мощность «один или много» и помещается около точки. Буква Z (zero), помещенная около точки, означает мощность «ноль или один». Если мощность в точности равна некоторому числу N, это число (целое, положительное) помещается около точки (рис.1).
Рис.1
Идентифицирующее отношение между сущностью-родителем и сущностью-потомком изображается сплошной линией (рис.2,а). При этом атрибуты первичного ключа сущности-родителя наследуются атрибутами первичного ключа сущности-потомка.
Рис.2
Пунктирная линия изображает неидентифицирующее отношение между сущностью-родителем и сущностью-потомком (рис2,б). Атрибуты первичного ключа сущности-родителя мигрируют в область неключевых атрибутов сущности-потомка.
Отношению дается имя, выраженное грамматическим оборотом глагола и помещаемое возле линии отношения. Имя каждого отношения между двумя сущностями должно быть уникальным, но имена отношений в модели не обязательно должны быть уникальными. Имя отношения в большинстве случаев формируется с точки зрения родителя. Например, утверждение «Проект состоит из одного или более заданий» может быть выведено из отношения, изображающего ПРОЕКТ а качестве сущности-родителя, ЗАДАНИЕ – в качестве сущности-потомка с символом мощности P, СОСТОИТ_ИЗ – в качестве имени отношения.
Правила отношений. Специфическое отношение всегда имеет место между двумя сущностями, сущностью-родителем и сущностью-потомком.
Экземпляр сущности-потомка всегда должен быть связан в точности с одним экземпляром сущности-родителя.
Экземпляр сущности-родителя может быть связан с любым числом (от нуля и более) экземпляров сущности-потомка.
В идентифицирующем отношении сущность-потомок всегда является зависимой от идентификаторов сущностью.
Сущность может быть связана с любым количеством других сущностей как в качестве потомка, так и качестве родителя.