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

4.3.1. Установление связанных сущностей

Отношение может быть определено просто как ассоциация или связь между двумя сущностями. Точнее, это называется бинарным отношением. IDEF1X ограничивается бинарными отношениями, поскольку исследовать и понимать их легче, чем n-арные отношения. Кроме того, они имеют непосредственное графическое представление. Недостатком является некоторое неудобство при представлении n-арных отношений. Но в этом нет ограничения общности, поскольку любое n-арное отношение может быть выражено через n бинарных отношений.

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

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

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

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

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

Студент Предмет Лектор Аудитория Классное занятие
Студент     +  
Предмет   + +  
Лектор   +   +
Аудитория + +   +
Классное занятие     + +

Матрица "сущность-отношение" отражает только сам факт существования отношения некоторого типа.

Рис. 4-4. Матрица Сущность-Отношение

Разработчики-новички обычно устанавливают, чрезмерное количество отношений между сущностями. Помните, что целью в конечном итоге является определение модели в терминах отношении родитель-потомок. Избегайте косвенных отношений. Например, если ОТДЕЛ ответствен за один или несколько ПРОЕКТОВ, а каждый ПРОЕКТ инициирует одно или несколько ПРОЕКТНЫХ_ЗАДАНИЙ, то нет необходимости в отношении между ОТДЕЛОМ и ПРОЕКТНЫМ_ЗАДАНИЕМ, поскольку все ПРОЕКТНЫЕ_ЗАДАНИЯ связаны с ПРОЕКТОМ, а все ПРОЕКТЫ связаны с ОТДЕЛОМ.

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

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