Стадия 2 - определение отношений
Целью стадии 2 является выявление и определение основных отношений между сущностями. На этой стадии моделирования некоторые отношения могут быть неспецифическими и потребуют дополнительной детализации на последующих стадиях. Главными результатами стадии 2 являются:
Установление связанных сущностей Отношение может быть определено просто как ассоциация или связь между двумя сущностями. Точнее, это называется бинарным отношением. IDEF1X ограничивается бинарными отношениями, поскольку исследовать и понимать их легче, чем n-арные отношения. Кроме того, они имеют непосредственное графическое представление. Недостатком является некоторое неудобство при представлении n-арных отношений. Но в этом нет ограничения общности, поскольку любое n-арное отношение может быть выражено через n бинарных отношений. Экземпляр отношения - это имеющая смысл ассоциация или связь между двумя экземплярами сущностей. Например, экземпляр сущности ОПЕРАТОР, имя которого - Джон Дол, а номер оператора - 862, приписан к экземпляру сущности СТАНОК, тип которого - сверлильный станок, а номер станка - 12678. IDEFlX-отношение представляет множество однотипных образцов отношений между двумя специфическими сущностями. При этом одна и та же пара сущностей может обладать отношениями нескольких типов. Целью IDEF1X является не изображение всех возможных отношений, а определение взаимосвязей между сущностями в терминах отношений зависимости существования (отношений родитель-потомок). Такое отношение - это ассоциация между типом родительской сущности и типом сущности-потомка, при которой каждый экземпляр родительской сущности ассоциирован с произвольным (в том числе нулевым) количеством экземпляров сущности-потомка, а каждый экземпляр сущности-потомка ассоциирован в точности с одним экземпляром родительской сущности. Это означает, что существование сущности-потомка зависит от существования родительской сущности. Например, ПОКУПАТЕЛЬ делает ноль, один или несколько ЗАКАЗОВ_НА_ПОКУПКУ, а ЗАКАЗ_НА_ПОКУПКУ производится одним ПОКУПАТЕЛЕМ.
Если сущность-родитель и сущность-потомок представляют один и тот же объект реального мира, то родительская сущность является общей сущностью, а сущность-потомок является сущностью-категорией. Для каждого экземпляра сущности-категории всегда имеется один экземпляр общей сущности. Для каждого экземпляра общей сущности может существовать ноль или один экземпляр сущности-категории. Например, ШТАТНЫЙ_СЛУЖАЩИЙ является СЛУЖАЩИМ. СЛУЖАЩИЙ может быть или не быть ШТАТНЫМ_СЛУЖАЩИМ. Если несколько сущностей-категорий ассоциируются с общей сущностью в отношении категоризации, то только одна категория может соответствовать данному экземпляру общей сущности. Например, отношение категоризации может использоваться для представления того факта, что СЛУЖАЩИЙ может быть либо ШТАТНЫМ_СЛУЖАЩИМ, либо СЛУЖАЩИМ_ПОЧАСОВИКОМ, но не тем и другим одновременно. В начале разработки модели часто невозможно представить все отношения как отношения родитель-потомок или отношения категоризации. Поэтому неспецифические отношения на стадии 2 должны быть преобразованы в специфические. Неспецифические отношения имеют общую форму - "ноль, один или много - к - ноль, один или много". Существование любой сущности не зависит от существования другой. Первым шагом на стадии 2 является выявление отношений между элементами различных сущностей. Эта задача может потребовать разработки матрицы отношений, пример которой приведен на рис. 4-4. Матрица отношений - это двумерный массив, обладающий горизонтальной и вертикальной осями. Множество предопределенных факторов (в данном случае - все сущности) записывается вдоль одной из осей, а другое множество факторов (в данном случае - также все сущности) - записывается вдоль другой оси. Для указания на возможное отношение между двумя сущностями в точке пересечения соответствующих осей помещается знак "+". В этот момент суть отношения не важна: достаточно того, что отношение может существовать.
Матрица "сущность-отношение" отражает только сам факт существования отношения некоторого типа. Рис. 4-4. Матрица Сущность-Отношение Разработчики-новички обычно устанавливают, чрезмерное количество отношений между сущностями. Помните, что целью в конечном итоге является определение модели в терминах отношении родитель-потомок. Избегайте косвенных отношений. Например, если ОТДЕЛ ответствен за один или несколько ПРОЕКТОВ, а каждый ПРОЕКТ инициирует одно или несколько ПРОЕКТНЫХ_ЗАДАНИЙ, то нет необходимости в отношении между ОТДЕЛОМ и ПРОЕКТНЫМ_ЗАДАНИЕМ, поскольку все ПРОЕКТНЫЕ_ЗАДАНИЯ связаны с ПРОЕКТОМ, а все ПРОЕКТЫ связаны с ОТДЕЛОМ. Более опытные разработчики предпочитают наброски диаграммы уровней сущностей, а не составление матрицы отношений. Однако важно определять отношения в процессе их выявления.
Определение отношений Следующим шагом является определение выявленных отношений. Эти определения включают:
В ходе определения отношений некоторые из них могут отбрасываться, а новые добавляться. Для установления зависимости отношение между двумя сущностями должно быть проверено в обоих направлениях. Это делается посредством определения мощности на каждом конце отношения. Для определения мощности предположите существование экземпляра одной из сущностей. Затем определите, сколько различных экземпляров второй сущности может быть связано с первой. Повторите анализ, поменяв сущности ролями.
Рассмотрим отношение между сущностями ГРУППА и СТУДЕНТ. Отдельный студент может быть записан в ноль, одну или много ГРУПП. Анализируя в другом направлении, видим, что отдельная группа может иметь ноль, одного или много студентов. Поэтому между сущностями ГРУППА и СТУДЕНТ существует отношение типа "многие ко многим" с мощностью "ноль, один или много" на каждом конце отношения. (Это отношение является неспецифическим, так как на каждом конце отношения не существует мощности "ровно один". Такое неспецифическое отношение позже в процессе моделирования должно каким-то образом разрешиться.) В качестве другого примера возьмем отношение между сущностями ПОКУПАТЕЛЬ и ЗАКАЗ_НА_ПОКУЛКУ. Отдельный ПОКУПАТЕЛЬ может сделать ноль, один или много ЗАКАЗОВ_НА_ПОКУПКУ. Отдельный ЗАКАЗ_НА_ПОКУПКУ всегда делается одним ПОКУПATEЛEM. Поэтому между сущностями ПОКУПATEЛЬ и ЗАКАЗ_НА_ПОКУПКУ существует отношение типа "один ко многим" с мощностью "один" на конце отношения у сущности ПОКУПАТЕЛЬ и с мощностью "ноль, один или много" на конце ЗАКАЗ_НА_ПОКУПКУ. (Здесь специфическое отношение, поскольку у конца ПОКУПАТЕЛЬ этого отношения имеется мощность "ровно один", т.е. ПОКУПАТЕЛЬ является родительской сущностью для сущности ЗАКАЗ_НА_ПОКУПКУ.) Установив зависимость отношения, разработчик должен выбрать имя и начать описание отношения. Имя отношения является кратким выражением, обычно глаголом с союзом, присоединяющим вторую упомянутую сущность. Это выражение отражает смысл представляемого отношения. Часто имя отношения состоит из одного глагола, хотя наречия и предлоги также появляются в именах отношений. После выбора имени отношения разработчик должен иметь возможность, читая отношения, получать осмысленное предложение, определяющее или описывающее отношение между двумя сущностями. При специфической форме отношения всегда имеются сущность-родитель и сущность-потомок; имя отношения интерпретируется сначала со стороны сущности-родителя, а затем от сущности-потомка к сущности-родителю. Если между этими сущностями существует отношение категоризации, то отсюда следует, что обе сущности относятся к одному и тому же объекту реального мира и мощностью на конце сущности-потомка (или сущности-категории) всегда является "ноль или один". Имя отношения в таком случае опускается, поскольку имя "может быть" подразумевается. Например, СЛУЖАЩИЙ может быть ШТАТНЫМ_СЛУЖАЩИМ.
При неспецифической форме отношения существует два имени отношения, по одному для каждой сущности, разделенные знаком "/". В этом случае имена сущностей интерпретируются сверху вниз или слева направо (в зависимости от относительных положений сущностей на диаграмме), а затем в обратном направлении. Имена отношений должны быть осмысленными. Под их именами должна быть реальная основа. Полное значение, т.е. причина выбора разработчиком данного имени отношения, может быть отражено в определении отношения. Определение отношения - это текст, объясняющий смысл отношения. Правила для определения сущностей применяются и к определениям отношений. Определения отношений должны быть:
Например, если отношение "один к нулю или к одному" определено между такими двумя сущностями, как ОПЕРАТОР и РАБОЧАЯ_СТАНЦИЯ, то имя отношения может читаться "в настоящий момент назначен для обслуживания". Это отношение может сопровождаться следующим определением: "Каждый оператор на протяжении каждого рабочего дня может быть назначен для обслуживания нескольких рабочих станций, но это отношение указывает на ту, которую оператор обслуживает в данный момент".
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|