Компьютеры
и программирование

Основы проектирования базы данных - пример

Этапы проектирования базы данных

Анализ предметной области

Разработка модели базы данных

Анализ нормальных форм

Запросы к базе данных и отчёты

Этапы проектирования базы данных

Этап начальной разработки

  • анализ деятельности компании;
  • анализ структуры компании;
  • спецификация требований;
  • определение целей;
  • сферы применения;
  • границы возможностей.

Концептуальное проектирование базы данных

  • анализ требований к базе данных, выявление представлений конечных пользователей и требований к обработке транзакций;
  • определение сущностей, атрибутов и связей;
  • разработка ER-диаграмм (от ER - Entity-Relationship - Сущность-Связь);
  • нормализация;
  • проверка модели данных, выявление основных процессов (правила ввода, обновления и удаления данных);
  • проверка отчётов, запросов, представлений, целостности, совместного использования и безопасности.

Анализ предметной области

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

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

В каждой из аптек регистрируется покупка каждой единицы препарата и все покупки, совершённые одним клиентом в одной аптеки в один момент времени, прикрепляются к корзине покупок.

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

Требуемыми функциями системы, использующей базу данных, являются:

  • регистрация всех продаж в каждой аптеке;
  • формирование корзины покупок, на основе которой выдаётся квитанция клиентам;
  • учёт продаж, проданных препаратов и групп, к которым принадлежат препараты, а также дефицита препаратов в каждой аптеке (если затребованный клиентом препарат в данное время отсутствует в аптеке);
  • оперативный учёт;
  • статистический и сравнительный анализ данных о препаратах и продажах, о дефиците и результатах его ликвидации.

Разработка модели базы данных

В процессе проектирования базы данных выделены следующие сущности:

  • Аптека (Pharmacy);
  • Группа препаратов(Group);
  • Наличие (Availability);
  • Дефицит (Deficit);
  • Сотрудник (Employee);
  • Клиент (Client);
  • Корзина (Basket);
  • Покупка (Buying).

На рисунке ниже приведено представление модели нашей базы данных с атрибутами сущностей (таблиц) и связями между таблицами. Для увеличения рисунка можно нажать на него левой кнопкой мыши. О том, какие атрибуты имеются у сущностей - в статье Создание базы данных, в которой приведены и команды языка SQL для создания БД и таблиц в ней. На рисунке атрибуты прописаны внутри прямоугольников, отображающих сущности.

Опишем отношения между сущностями.

Сущность «Аптека» связана отношением «Имеет» «один ко многим» с сущностью «Наличие», отношением «Имеет» «один ко многим» с сущностью «Дефицит», отношением «Имеет» «один ко многим» с сущностью «Покупка», отношением «Работает» «один ко многим» с сущностью «Сотрудник».

Сущности «Наличие» и «Дефицит» связаны отношениями «Включает» «многое к одному» с сущностью «Препарат».

Сущность «Препарат» кроме упомянутых связей связано отношением «Включает» «многое к одному» с сущностью «Группа» и отношением «Включает» «один ко многим» с сущностью «Покупка».

Сущность «Покупка» кроме упомянутых связей связана отношением «Включает» «многое к одному» с сущностью «Корзина».

Сущность «Сотрудник» кроме упомянутой связи с сущностью «Аптека» связан отношением «Регистрирует» «один ко многим» с сущностью «Корзина».

Сущность «Клиент» связан отношением «Имеет» «один ко многим» с сущностью «Корзина».

Анализ нормальных форм

В базе данных создаваемой информационной системы все таблицы должны находиться в третьей нормальной форме.

Все 9 таблиц базы данных находятся по меньшей мере в первой нормальной форме, так как:

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

Чтобы избежать невыполнения требований второй нормальной формы в таблице AVAILABILITY, создан первичный ключ этой таблицы, а ключи, связывающую эту таблицу с таблицами PHARMACY и PREPARATION, сделаны внешними ключами, сочетание значений которых должно быть уникальным. Таким образом, невозможна функциональная зависимость неключевого атрибута от части первичного ключа – идентификатора аптеки или идентификатора препарата.

Следовательно, все таблицы находятся и во второй нормальной форме.

Во всех таблицах не обнаружено и транзитивной зависимости – функциональной зависимости одного неключевого атрибута от другого неключевого атрибута. Следовательно, все 9 таблиц базы данных находятся в третьей нормальной форме.

Запросы к базе данных и отчёты

Запросы:

  • доступность выбираемого в селекторе препарата в выбираемой в селекторе аптеке на данный момент времени;
  • группы препаратов, которых нет в выбираемой в селекторе аптеке на данный момент времени;
  • аптеки, в которых есть дефицит любого препарата по введённой дате;
  • покупки препаратов, которые есть на витринах аптек по введённой дате с указанием препаратов и аптек;
  • клиенты, совершившие покупки в выбранной в селекторе аптеке по введённой дате.

Отчёты:

  • о количестве покупок со списком аптек по введённой дате с указанием сумм;
  • о продажах выбранного препарата во всех аптеках по введённой дате;
  • о проданных препаратах стоимостью более 150 рублей по введённой дате;
  • о препаратах, которые есть на витрине во всех аптеках;
  • о клиентах, зарегистрированных в определённый интервал времени.

Поделиться с друзьями