Лекция. Примеры концептуального моделирования
Содержание лекции:примеры концептуального проектирования баз данных.
Цель лекции:изучить на примерах методы разработки концептуальных схем баз данных.
Как уже отмечалось, отношения можно рассматривать как объекты, в этом случае они называются составными объектными множествами. Большинство проблем бизнеса требуют использования составных объектов. Ранее в примерах во всех отношениях участвовали два объектных множества (бинарные отношения). Однако отношение может связывать три и более объектных множеств (n-арные отношения). Проиллюстрируем это понятие примером.
Рассмотрим опыт компании, занимающейся международной торговлей товарами. Концепция компании такова: найти в разных странах производителей, чьи товары всегда удовлетворяют высоким стандартам качества; найти фирмы, реализующие товары; установить деловые связи между изготовителями и продавцами, снабжая последних товарами, закупленными у выбранных производителей. У компании есть офисы в различных странах; штат каждого офиса состоит из торговых агентов и закупщиков.
Создадим концептуальную модель данных компании. У компании есть клиенты, торговые агенты, товары, производители этих товаров. Выделим следующие объекты: ТОВАР, КЛИЕНТ, ТОРГОВЫЙ_АГЕНТ, ПРОИЗВОДИТЕЛЬ. Установим подходящие отношения между ними, как показано на рисунке 8.1:
Предположим, что нужно отслеживать количество каждого товара, проданного каждому клиенту. Мы должны приписать атрибут КОЛИЧЕСТВО одному из объектов. Если это будет атрибут объекта ТОВАР, то мы не сможем различать количество товара, проданного различным клиентам, если же атрибут присвоить объекту КЛИЕНТ, то не сможем различать товары, проданные клиенту. Поэтому, КОЛИЧЕСТВО – атрибут отношения между товаром и клиентом, а не товара или клиента в отдельности. Итак, отношение «продан_кому» само является объектным множеством или составным объектом, которому и приписывается атрибут КОЛИЧЕСТВО (рисунок 8.2).
Рисунок 8.2 - Правильная модель отображения количества продаж
Предположим, что необходимо записывать количество продаж каждого товара, проданного каждому клиенту в конкретный день. Тогда связываем отношение «продан_кому» с объектом ДАТА и приписываем атрибут КОЛИЧЕСТВО этому новому отношению. Модель более удобно представить в виде одного трехстороннего отношения (рисунок 8.3). Необходимо учесть, что среди объектов нашей модели есть производители товаров. Отобразим этот объект на схеме. На схеме также обозначены мощности отношений.
| |||
| |||
Рисунок 8.3 - Полная модель отслеживания продаж
Для иллюстрации еще одного понятия в концептуальном моделировании, рассмотрим следующий пример. Строительная компания возводит различные здания. Для всех зданий требуются разнообразные материалы в различных количествах. На разных этапах проекта работают разные бригады (арматурщиков, каменщиков, штукатуров и т.д.). При составлении графика работы фирма варьирует состав бригад. Рабочие назначаются в различные бригады в соответствии с квалификацией. Бригады составляются таким образом, как требуется для конкретного здания. Для каждой бригады назначается бригадир. Рабочий может возглавлять одну бригаду и работать в другой простым рабочим. Создадим концептуальную модель данных, которая может обеспечить нужной информацией владельца компании. На рисунке 8.4 представлено отношение между зданиями и материалами.
Мощность отношения между объектными множествами ЗДАНИЯ и ТИП_МАТЕРИАЛА много-ко-многим. Атрибут АДРЕС относится только к множеству ЗДАНИЕ, может быть использован в качестве ключа, для идентификации конкретного здания. Прямоугольник вокруг отношения «требует» показывает, что мы используем это отношение как составное объектное множество. Этому объектному множеству придаем атрибут КОЛИЧЕСТВО, элементами этого множества будут пары: здание и тип материала.
Важно отметить, что в этом примере объектное множество ТИП_МАТЕРИАЛА представляет собой концептуальный, а не физический объект. Концептуальный объект – объект, обозначающий тип вещей, то есть элементами этого множества являются абстрактные понятия. То есть каждый элемент этого множества обозначает тип материала, а не физический «кусок» материала. Физическое объектное множество – объектное множество, элементами которого являются физические предметы. Такое понятие концептуального объекта, противопоставляемого физическому объекту, часто применяется в концептуальном моделировании данных. В ранее рассмотренном примере о библиотечной проблеме в объектном множестве «Книги» хранятся сведения о концептуальных книгах, физические книги же это копии, тома или, как принято в нашей модели, экземпляры книг. Хотя читатель может не различать эти понятия, для того, чтобы решить, как моделировать данные, нужно выяснить, какая информация нужна пользователю базы данных.
Теперь покажем формирование бригад и назначение рабочих и бригадиров. Еще один пример концептуального объектного множества – ТИП_БРИГАДЫ – это не конкретные бригады, а типы бригад (бригада арматурщиков, каменщиков и т.д.). Отношение между зданием и типом бригады представляет конкретную бригаду, назначенную выполнять на данном здании данный тип работ. Это отношение будем рассматривать как объект, назовем его БРИГАДА.
Для каждой бригады как элемента объектного множества БРИГАДА выбираются дни работы. То есть между БРИГАДА и ДАТА есть отношение много-ко-многим.
Далее представлено распределение рабочих и бригадиров по бригадам. Отношение «является_бригадиром» имеет мощность «один-ко-многим» т.к. у бригады один бригадир, но один человек может возглавлять несколько бригад.
Рисунок 8.5 – Модель формирования бригад и бригадиров
На рисунке 8.6 представлена объединенная диаграмма, представляющая полную модель данных для строительной компании.
Рисунок 8.6 –Модель данных для строительной компании
Модели, рассмотренные выше, основывались на информации, заложенной в типах вопросов, которые задают менеджеры или управляющие. Поэтому эти модели являются фундаментом информационно-управляющих систем. Надо отметить, что концептуальную модель можно вывести из форм отчетов, используемых в деловых операциях.