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