Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример разработки простой ER-модели.




Разработка ER-модели основывается на описании предметной области. В итоге мы должны выделить и графически изобразить:

• список сущностей предметной области;

• список атрибутов сущностей;

• описание связей между сущностями.

ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей является итерационным. Разработав первый приближенный вариант диаграмм, мы уточняем их (опрашивая экспертов предметной области) и строим второй, третий и т. д. ва­рианты.

Предположим, что перед нами стоит задача разработать ин­формационную систему, автоматизирующую учет продажи товаров в некоторой оптовой торговой фирме. В первую очередь, мы долж­ны изучить предметную область и процессы, происходящие в ней. Для этого необходимо опросить сотрудников фирмы, ознакомиться с документацией, изучить формы заказов, накладных и т. п.

Рассмотрим в качестве примера следующее описание предмет­ной области.

Проектируемая система должна выполнять следующие дейст­вия:

• хранить информацию о покупателях («Код», «Наименова­ние», «Адрес», …);

• хранить информацию о товарах («Код», «Товар» (наименова­ние), «Цена», …);

• формировать накладные на отпускаемые товары («Номер», «Дата», «Покупатель», …).

Выделим все существительные в этих предложениях — это бу­дут потенциальные кандидаты на сущности и атрибуты, и проана­лизируем их. Если у существительного имеется несколько свойств (характеристик), то это сущность, если одно — атрибут.

«Покупатель» — сущность, так как у него имеется код, наиме­нование, ИНН и т. д. Аналогично можно сделать вывод, что «На­кладная» и «Товар» сущности, а например, «Товар» (наименова­ние) — атрибут (у него только одно свойство).

Сразу возникает очевидная связь между сущностями «Покупа­тель» и «Товар» — «покупатели могут покупать много товаров» и «товары могут продаваться многим покупателям». Тогда может быть построен первый вариант ER-диаграммы рис. 2.3.

Куда поместить сущность «Накладная» с чем она связана? Для ответа на этот вопрос надо проанализировать предметную область: как связана эта сущность с сущностями «Покупатель» и «Товар»?

В описании предметной области могут быть такие фразы: «По­купатели покупают товары, получая при этом накладные, в кото­рые внесены данные о количестве и цене купленного товара. Каж­дый покупатель может получить несколько накладных. Каждая накладная выписываться только на одного покупателя. Каждая на­кладная обязана содержать несколько товаров (не бывает пустых накладных). Каждый товар, в свою очередь, может быть продан разным покупателям с оформлением нескольких накладных».


Таким образом, после уточнения, диаграмма будет состоять из трех связанных между собой сущностей (рис. 2.4).

Из описания предметной области и изучения первичного доку­мента можно выяснить, что каждая накладная имеет уникальный номер, дату выписки, список товаров в накладной с количествами и ценами, а также общую сумму накладной.

В этом описании существительные (возможно, с прилагатель­ными) выделены полужирным шрифтом. Проанализируем их:

номер накладной (уникальный) — атрибут, так как это од­но значение;

дата выписки — атрибут, так как это одно значение;

сумма накладной — атрибут, так как это одно значение. Но хранить это значение не имеет смысла: оно может быть вычислено;

список товаров в накладной (с количествами и ценами) — это не атрибут, так как это много значений разных характери­стик («№ строки», «Наименование товара», «Количество» и т. д). Таким образом, получаем, что «Список товаров в накладной» — сущность.

Сущности «Накладная» и «Товар» связаны друг с другом отно­шением типа много-ко-многим. Такая связь реляционной моделью не поддерживается и она должна быть расщеплена на две связи ти­па один-ко-многим. Для этого требуется дополнительная сущность. Этой сущностью и будет сущность «Список товаров в накладной». Связь ее с сущностями «Накладная» и «Товар» характеризуется следующими фразами:

• каждая накладная обязана иметь несколько записей из списка товаров в накладной;

• каждая запись из списка товаров в накладной обязана вклю­чаться ровно в одну накладную;

• каждый товар может включаться в несколько записей из спи­ска товаров в накладной;

• каждая запись из списка товаров в накладной обязана быть
связана ровно с одним товаром.

Атрибуты «Количество товара в накладной» и «Цена товара в накладной» («Цена Н») являются атрибутами сущности «Список товаров в накладной».

Рассмотрим вопрос об атрибутах сущностей. Из описания предметной области можно выяснить, что:

• каждый покупатель является юридическим лицом и имеет наименование, адрес и т. д.;

• каждый товар имеет наименование и цену.

Снова выпишем все существительные, которые будут потенци­альными атрибутами и проанализируем их. Из описания предмет­ной области удалось выяснить, что каждый товар имеет некоторую текущую цену, по которой товар продается в данный момент. Эта цена может меняться со временем и, таким образом, цена одного и того же товара в разных накладных, выписанных в разное время, может быть различной. Таким образом, имеется две цены — цена товара в накладной и текущая цена товара.

Анализ и дальнейшие обозначения приведены в таблице 2.1.

Таблица 2.1 Атрибуты и их обозначения в диаграмме IDEF1X

Существительное Назначение Обозначение
Наименование поку­пателя Характеристика покупателя Наименование
Адрес Характеристика покупателя Адрес
Наименование товара Характеристика товара Товар
Цена товара Характеристика товара — це­на товара на данный момент, она отличается от цены товара в накладной — цены в момент, когда выписывалась накладная Цена
Номер накладной Уникальная характеристика накладной Номер
Дата накладной Характеристика накладной Дата

 

Количество товара в накладной Характеристика товара в «Списке товаров в накладной» Количество
Цена товара в наклад­ной Характеристика товара в «Списке товаров в накладной» Цена Н

Рис. 2.5. Диаграмма IDF1X

Разработанный выше пример ER-диаграммы является приме­ром логической диаграммы. Это означает, что диаграмма не учи­тывает особенности конкретной СУБД.

По данной концептуальной диаграмме можно построить физи­ческую диаграмму, которая уже будут учитываться такие особен­ности СУБД, как допустимые типы и наименования полей и таб­лиц, ограничения целостности и т. п. Физический вариант диаграммы, приведенной на рис. 2.6, может выглядеть, например, следующим образом:

Рис. 2.6. Физическая диаграмма

На данной диаграмме каждая сущность представляет собой таблицу базы данных, каждый атрибут становится столбцом соот­ветствующей таблицы.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...