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