Моделирование сложных структур
Моделирование сложных структур – это моделирование взаимоисключающих классов объектов, связей, моделирование данных во времени.
1 Моделирование взаимоисключающих классов объектов. Взаимоисключающие классы объектов моделируются с помощью супертипов и подтипов.
Супертип – это класс объектов, который делится на взаимоисключающие подгруппы меньшего размера.
Супертип может иметь собственные свойства или просто использоваться как имя группы.
Подтип – это класс объектов, представляющий разбитую группу в рамках супертипа.
Каждый подтип неявно наследует все свойства и связи супертипа, кроме того, он может иметь свои собственные свойства и связи.
Подтипы должны быть взаимоисключаемыми, то есть объект одного подтипа не может быть объектом другого подтипа.
Свойства и связи, общие для подтипов можно описывать на уровне супертипов.
Уникальные идентификаторы, выявленные для супертипа, наследуются подтипом.
Замечание: подтип – это не наследование, это эксклюзивность!
При чтении ER-диаграммы подтипы читаются «или – или»: «в каждой ПОЗИЦИИ ДОКУМЕНТА может быть отражен или ФИЛЬМ или ИГРА или ПРОЧИЙ продукт проката».
Подтипы могут быть вложенными. Для ясности модели рекомендуется ограничиваться 2—3 уровнями вложения.
ПРИМЕР:
Рассмотрим описание фрагмента предметной области «Прокат видеофильмов и видеоигр». Необходимо хранить информацию о продуктах проката. Каждый продукт характеризуется кодом, названием, текстовым описанием. Для фильмов необходимо хранить такие свойства как категория фильма (код, название), длительность. Для игры – возраст ограничения, количество игроков. Кроме того, необходимо учитывать прочие продукты проката, но пока свойства их неизвестны.
Для описания фрагмента данной предметной области можно использовать супертип, объединяющий общие атрибуты и подтипы, отражающие эксклюзивность отдельных продуктов проката.
На рисунке представлено отображение предметной области в виде супертипа «ПРОДУКТ ПРОКАТА» и подтипов «ФИЛЬМ», «ИГРА», «ПРОЧЕЕ». Подтип «ФИЛЬМ» имеет собственную связь с классом объектов «КАТЕГОРИЯ». Каждый подтип, входящий в супертип может быть указан в позиции документа, с помощью которого фиксируется выдача продуктов проката.
Рисунок — Пример супертипа и подтипов
Примеры фрагментов предметных областей с подтипами:
1) Супертип: ПИТОМЕЦ ЗООПАРКА, подтипы: МЛКОПИТАЮЩЕЕ, РЕПТИЛИЯ, РЫБЫ, ПТИЦЫ
2) ДОГОВОР НА ОБУЧЕНИЕ; ДОГОВОР ДВУХСТОРОННИЙ, ДОГОВОР ТРЕХСТОРОННИЙ
3) ЗАРПЛАТА ЗА МЕСЯЦ; НАЧИСЛЕНИЯ; УДЕРЖАНИЯ
2 Моделирование взаимоисключающих связей.
Взаимоисключающая связь – это такая ситуация, когда класс объектов имеет связь либо с классом объектов А, либо с классом объектов В. Обе связи могут быть действительными, но в разные моменты времени.
Взаимоисключаемость связей моделируется с помощью арка.
Арк – это элемент ER—диаграммы, построенной по методологии Ричарда Баркера, изображается в виде дуги, пересекающей входящие в арк взимоисключающие связи.
Связи, входящие в арк, помечаются кружочком. CASE — средство это делает автоматически.
Пример использования арка приведен на рисунке.
На рисунке изображено типовое представление адреса в предметной области. Связи, входящие в арк читаются с использованием союзов или—или, либо—либо. Например: «каждый АДРЕС должен относиться либо к ФИЗИЧЕСКОМУ, либо к ЮРИДИЧЕСКОМУ ЛИЦУ».
Правила использования арка:
— все концы связей в арке должны иметь одну и ту же опциональность, если это не так, то эксклюзивность связей не различается;
— связь может входить только в один арк;
— количество связей в арке может быть любым;
— связи в арке часто имеют одинаковые имена;
— связи, входящие в арк, должны идти от одного и того же класса объектов.
Рисунок — Пример использования арка.
Примеры фрагметов предметных областей
1) ДОГОВОР относится либо к ЮЛ, либо к ФЛ.
2) ЧЛЕНСКИЙ БИЛЕТ относится либо к ЮЛ, либо к ФЛ
3)
Для моделирования взаимоисключаемости могут быть использованы арки, подтипы, сочетание первого и второго. Например, бизнес правило «каждый Членский БИЛЕТ должен принадлежать либо ОРГАНИЗАЦИИ, либо ФИЗИЧЕСКОМУ ЛИЦУ», отображаемое с помощью арка, может быть несколько интерпретировано и отображено с помощью супертипа и подтипов: «каждый ЧЛЕНСКИЙ БИЛЕТ выдается КЛИЕНТУ, который может быть либо ФИЗИЧЕСКИМ ЛИЦОМ, либо ОГРАНИЗАЦИЕЙ».
Можно пользоваться любым удобным методом при условии, что он позволит правильно отразить потребности автоматизируемого предприятия.