- •Предпосылки появления методологии idef1x
- •Idef1x – это один из стандартов семейства idef, куда помимо него входят также idef0, idef1, idef2, idef3, idef4, idef5, idef6, idef7, idef8, idef9, idef10, idef11, idef12, idef13 и idef14.
- •Основные понятия и компоненты idef1x-моделирования
- •Сущности
- •Сущности
- •Отношения связи
- •Отношения категоризации
- •Неспецифические отношения
- •Атрибуты
- •Заключение
- •Список используемой литературы
Отношения связи
Из приведенного ранее определения отношения следует, что экземпляр сущности-потомка может существовать только при существовании сущности-родителя. Например, специфическое отношение связи будет существовать между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА_ПОКУПКУ, если покупатель производит ноль, один или более заказов на покупку, а каждый заказ на покупку должен производиться одним покупателем. IDEF1X-модель описывает совокупность или множество отношений между двумя сущностями. Специфический экземпляр отношения связывает специфические экземпляры сущностей. Например, экземпляром отношения является «покупатель Иван Иванов произвел заказ на покупку №123».
Отношение связи может также определяться с помощью указания мощности отношения. А именно определяется, какое количество экземпляров сущности-потомка может существовать для каждого экземпляра сущности-родителя. В IDEF1X могут быть выражены следующие мощности отношений:
Каждый экземпляр сущности-родителя может иметь ноль, один или более связанных с ним экземпляров сущности-потомка.
Каждый экземпляр сущности-родителя должен иметь не менее одного связанного с ним экземпляра сущности-потомка.
Каждый экземпляр сущности-родителя может иметь не более одного связанного с ним экземпляра сущности-потомка.
Каждый экземпляр сущности-родителя связан с некоторым фиксированным числом экземпляров сущности-потомка.
Если экземпляр сущности-потомка однозначно определяется своей связью с сущностью-родителем, то отношение называется идентифицирующим. В противном случае отношение называется неидентифицирующим. Например, если с каждым проектом связано одно или более заданий и задания однозначно идентифицируются только в пределах своего проекта, то между сущностями ПРОЕКТ и ЗАДАНИЕ будет существовать идентифицирующее отношение. То есть для того, чтобы однозначно идентифицировать одно задание среди других заданий, должен быть известен проект, с которым связано это задание.
И наоборот, хотя, например, между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА ПОКУПКУ может существовать отношение зависимого существования, заказы на покупку могут однозначно идентифицироваться номером заказа на покупку без идентификации ассоциированного покупателя.
Могут быть также определены утверждения, относящиеся к нескольким отношениям сразу. Утверждение такого рода может быть задано с помощью булевского выражения, которое регламентирует два или более отношений.
Другим типом ограничения является "утверждение пути", регламентирующего отношение между экземплярами сущности-родителя и сущности-потомка, при котором эти сущности могут быть связаны либо прямо, либо косвенно через две ли более различные последовательности отношений. Например, сущность ОТДЕЛ может иметь две сущности-потомка: СЛУЖАЩИЙ и ПРОЕКТ. Если сущности СЛУЖАЩИЙ и ПРОЕКТ обладают общей сущностью-потомком с именем НАЗНАЧЕНИЕ_ПРОЕКТА, то НАЗНАЧЕНИЕ_ПРОЕКТА косвенно связано с сущностью ОТДЕЛ двумя разными путями отношений. Утверждение пути может устанавливать, что "служащие могут быть приписаны только к тем проектам, которыми занимается отдел, где служащие работают".
Специфическое отношение связи изображается линией, проводимой между сущностью-родителем и сущностью-потомком с точкой на конце линии у сущности-потомка. Мощность помещается около этой точки, по умолчанию она - "ноль, один или много".
Буква Р (positive) означает мощность "один или много". Буква Z (zero) – "ноль или один". Если мощность в точности равна некоторому числу N, это число (целое, положительное) и помещается около точки (рис. 2).
Рис. 2. Синтаксис мощности отношения
Идентифицирующее отношение между сущностью-родителем и сущностью-потомком изображается сплошной линией (рис. 3).
Рис. 3. Синтаксис идентифицирующего отношения
Если существует идентифицирующее отношение, то сущность-потомок всегда является зависимой от идентификатора сущностью, изображаемой блоком с закругленными углами. При этом атрибуты первичного ключа сущности-родителя наследуются атрибутами первичного ключа сущности-потомка.
Пунктирная линия изображает неидентифицирующее отношение между сущностью-родителем и сущностью-потомком (рис. 4). В неидентифицирующем отношении и сущность-родитель, и сущность-потомок будут независимыми от идентификаторов сущностями, если только хотя бы одна из них не будет сущностью-потомком в некотором другом отношении, являющемся идентифицирующим отношением.
Рис. 4. Синтаксис неидентифицирующего отношения
Отношению дается имя, выражаемое глаголом и помещаемое возле линии отношения. Имя каждого отношения между двумя данными сущностями должно быть уникальным, но имена отношений в модели не обязаны быть уникальными. Имя отношения всегда формируется с точки зрения родителя, так что может быть образовано предложение соединением имени сущности-родителя, имени отношения, выражения мощности и имени сущности-потомка.
Например утверждение "Проект состоит из одного или более заданий" может быть выведено из отношения, изображающего ПРОЕКТ в качестве сущности-родителя, ЗАДАНИЕ - в качестве сущности-потомка с символом мощности Р, СОСТОИТ_ИЗ - в качестве имени отношения. Стоит обратить внимание, что отношение должно оставаться по-прежнему верным при формулировке в обратном направлении, хотя отношение "от потомка к родителю" явно не именуется. В предыдущем примере это звучит следующим образом: "ЗАДАНИЕ является частью в точности одного ПРОЕКТА".
Таким образом, правила отношений связи:
Специфическое отношение всегда имеет место между в точности двумя сущностями, сущностью-родителем и сущностью-потомком.
Экземпляр сущности-потомка всегда должен быть связан в точности с одним экземпляром сущности-родителя.
Экземпляр сущности-родителя может быть связан с любым числом (от нуля и более) экземпляров сущности-потомка, где это число зависит от указанной мощности.
В идентифицирующем отношении сущность-потомок всегда является зависимой от идентификаторов сущностью.
Сущность может быть связана с любым количеством других сущностей как в качестве потомка, так и в качестве родителя.