КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Пример последовательность разработки простой ER-моделиПри разработке ER-моделей необходимо получить следующую информацию о предметной области: · Список сущностей предметной области. · Список атрибутов сущностей. · Описание взаимосвязей между сущностями.
ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей является итерационным.Разработав первый приближенный вариант диаграмм, мы уточняем их, опрашивая экспертов предметной области. При этом документацией, в которой фиксируются результаты бесед, являются сами ER-диаграммы. Например, необходимо разработать информационную систему по заказу некоторой оптовой торговой фирмы. В первую очередь необходимо изучить предметную область и процессы, происходящие в ней. Для этого опрашиваются сотрудники фирмы, изучается документация и формы заказов, накладных и т.п. Например, в ходе беседы с менеджером по продажам, выясняктся, что он (менеджер) считает, что проектируемая система должна выполнять следующие действия: · Хранить информацию о покупателях. · Печатать накладные на отпущенные товары. · Следить за наличием товаров на складе. Можно выделить все существительные в этих предложениях и это будут потенциальные кандидаты на сущности и атрибуты. Необходимо их проанализировать: · Покупатель - явный кандидат на сущность. · Накладная - явный кандидат на сущность. · Товар - явный кандидат на сущность. · Склад - явный кандидат на сущность. Но сколько складов имеет фирма? Если несколько, то это будет кандидатом на новую сущность. · Наличие товара – это, скорее всего, атрибут. Но к какой сущности относится этот атрибут?
Видна очевидная связь между сущностями - "покупатели могут покупать много товаров" и "товары могут продаваться многим покупателям". Первый вариант диаграммы выглядит так: Рис. . Задав дополнительные вопросы менеджеру, можно выяснить, что фирма имеет несколько складов. Причем, каждый товар может храниться на нескольких складах и быть проданным с любого склада. Куда поместить сущности "Накладная" и "Склад" и с чем их связать? Это определяется тем, как связаны эти сущности между собой и с сущностями "Покупатель" и "Товар". Покупатели покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара. Каждый покупатель может получить несколько накладных. Каждая накладная обязана выписываться на одного покупателя. Каждая накладная обязана содержать несколько товаров (не бывает пустых накладных). Каждый товар, в свою очередь, может быть продан нескольким покупателям через несколько накладных. Кроме того, каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных. После уточнения, диаграмма будет выглядеть следующим образом: Рис. .
Какие атрибуты имеют выделенные сущности? Это выясняется при опросах сотрудников фирмы. Например, получена следующая информация: · Каждый покупатель является юридическим лицом и имеет наименование, адрес, банковские реквизиты. · Каждый товар имеет наименование, цену, а также характеризуется единицами измерения. · Каждая накладная имеет уникальный номер, дату выписки, список товаров с количествами и ценами, а также общую сумму накладной. Накладная выписывается с определенного склада и на определенного покупателя. · Каждый склад имеет свое наименование.
Можно опять выписать все существительные. Они будут потенциальными атрибутами: · Юридическое лицо - термин избыточный, так как фирма не работает с физическими лицами. · Наименование покупателя - явная характеристика покупателя. · Адрес - явная характеристика покупателя. · Банковские реквизиты - явная характеристика покупателя. · Наименование товара - явная характеристика товара. · Цена товара - это характеристика товара. Но может ли отличаться ли эта характеристика от цены в накладной? · Единица измерения - явная характеристика товара. · Номер накладной - явная уникальная характеристика накладной. · Дата накладной - явная характеристика накладной. · Список товаров в накладной - список не может быть атрибутом. Нужно выделить этот список в отдельную сущность. · Количество товара в накладной - явная характеристика. Но это характеристика не просто "товара", а "товара в накладной". · Цена товара в накладной - явная характеристика. Но опять же это не просто характеристика товара, а характеристика товара в накладной. Цена товара уже была приведена выше. Цена товара и цена товара в накладной - это одно и то же? · Сумма накладной - явная характеристика накладной. Эта характеристика не является независимой. Сумма накладной равна сумме стоимостей всех товаров, входящих в накладную. · Наименование склада - явная характеристика склада.
В ходе дополнительной беседы с менеджером можно прояснить различные понятия цен. Например, каждый товар имеет некоторую текущую цену. Эта цена, по которой товар продается в данный момент и эта цена может меняться со временем. Цена одного и того же товара в разных накладных, выписанных в разное время, может быть различной. Таким образом, имеется две цены - цена товара в накладной и текущая цена товара. Сущности "Накладная" и "Товар" связаны друг с другом отношением типа много-ко-многим. Такая связь должна быть расщеплена на две связи типа один-ко-многим. Для этого требуется дополнительная сущность. Этой сущностью может являться сущность "Список товаров в накладной". Связь сущностей "Накладная" и "Список товаров в накладной" (один-ко-многим) может быть охарактеризована следующими фразами - "каждая накладная обязана иметь несколько записей из списка товаров в накладной", "каждая запись из списка товаров в накладной обязана включаться ровно в одну накладную". Связь сущностей "Товар" и "Список товаров в накладной" (один-ко-многим) может быть охарактеризована следующими фразами - "каждый товар может включаться в несколько записей из списка товаров в накладной", " каждая запись из списка товаров в накладной обязана быть связана ровно с одним товаром". Атрибуты "Количество товара в накладной" и "Цена товара в накладной" являются атрибутами сущности " Список товаров в накладной". Аналогично расщепляется связь, соединяющая сущности "Склад" и "Товар". Вводится дополнительная сущность "Товар на складе". Атрибутом этой сущности будет "Количество товара на складе". Таким образом, товар будет числиться на любом складе и количество его на каждом складе будет свое. На диаграмме это выглядит следующим образом: Рис. . Приведенный пример ER-диаграммы является примером концептуальной диаграммы.Это означает, что диаграмма не учитывает особенности конкретной СУБД. По данной концептуальной диаграмме можно построить физическую диаграмму,которая уже будут учитываться такие особенности СУБД, как допустимые типы и наименования полей и таблиц, ограничения целостности и т.п.
|