Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТБД_курсовая.docx
Скачиваний:
109
Добавлен:
28.06.2021
Размер:
916.66 Кб
Скачать

2.3 Логическое проектирование бд курьерской службы “Московская доставка”

Рассмотрев все типы моделей данных, было принято решение, что для логического проектирования будет использоваться реляционная модель данных, т.к. она наиболее полно соответствует требованиям, предъявленным к разрабатываемой информационной системе:

  • отсутствие дублируемой информации;

  • поддержание целостности данных при вставке, удалении или изменении записей;

  • возможность организации всех видов связи между отношениями 1:1, 1:M и M:M.

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

В реляционных базах данных (РБД) даталогическое проектирование приводит к разработке схемы БД, т.е. совокупности схем отношений, адекватно моделирующих объекты ПО и семантических связей между ними.

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

Процесс разработки корректной схемы РБД и является даталогическим проектированием. Возможны 2-а способа:

  • Декомпозиция (разбиение);

  • Синтез;

Для перехода от инфологической модели к реляционной существует специальный алгоритм:

  • каждой сущности ставится в соответствие отношение;

  • каждому атрибуту сущности ставится в соответствие соответствующий атрибут соответствующего отношения;

  • первичный ключ сущности становится PK соответствующего отношения, при этом атрибуты, входящие в PK, обязательны для заполнения (NOT NULL);

  • в каждое отношение, соответствующее подчинённой сущности, добавляется набор атрибутов основной сущности, являющийся в ней первичным ключом. В отношении, соответствующее подчинённой сущности эти атрибуты становятся FK (внешним ключом);

  • по умолчанию, все атрибуты, не входящие в PK, необязательны;

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

  • все связи М:М должны быть раскрыты

Воспользуемся данным алгоритмом и опишем каждую сущность инфологической модели:

Клиенты:

  • Идентификатор клиента – int, NOT NULL, PK

  • Логин клиента – varchar(20), NOT NULL, UNIQUE

  • Hash пароля клиента – varchar(50), NOT NULL, UNIQUE

  • Имя клиента – varchar(45), NOT NULL, UNIQUE

  • Тип клиента – varchar(20), NOT NULL

  • Адрес клиента – varchar(45), NOT NULL

  • Контактный номер – varchar(15), UNIQUE

  • Электронный адрес – varchar(45), UNIQUE

Курьеры:

  • Идентификатор курьера – int, NOT NULL, PK

  • Логин курьера – varchar(20), NOT NULL, UNIQUE

  • Hash пароля курьера – varchar(50), NOT NULL, UNIQUE

  • Имя курьера – varchar(45), NOT NULL, UNIQUE

  • Дата рождения – date

  • Паспортные данные – varchar(100), NOT NULL, UNIQUE

  • Дата приема на работу – date, NOT NULL

  • Контактный номер - varchar(15), NOT NULL, UNIQUE

Менеджеры:

  • Идентификатор менеджера – int, NOT NULL, PK

  • Логин курьера – varchar(20), NOT NULL, UNIQUE

  • Hash пароля курьера – varchar(50), NOT NULL, UNIQUE

  • Имя курьера – varchar(45), NOT NULL, UNIQUE

  • Дата рождения – date

  • Паспортные данные – varchar(100), NOT NULL, UNIQUE

  • Дата приема на работу – date, NOT NULL

  • Контактный номер - varchar(15), NOT NULL, UNIQUE

Заказы:

  • Идентификатор заказа – int, NOT NULL, PK

  • Идентификатор клиента– int, FK, NOT NULL

  • Идентификатор курьера – int, FK, NOT NULL

  • Дата доставки - date

  • Метод оплаты – varchar(45), NOT NULL

  • Идентификатор точки самовывоза– int, FK

  • Идентификатор менеджера– int, FK, NOT NULL

Количество по позиции:

  • Идентификатор заказа – int, NOT NULL, PK

  • Идентификатор товара– int, FK, NOT NULL

  • Идентификатор заказа– int, FK, NOT NULL

  • Количество – int, NOT NULL

Товары:

  • Идентификатор товара – int, PK, NOT NULL

  • Название – varchar(45), NOT NULL, UNIQUE

  • Цена – int, NOT NULL

  • Описание– varchar(45)

Точки самовывоза:

  • Идентификатор точки – int, PK, NOT NULL

  • Адрес точки – varchar(45), NOT NULL

Склады:

  • Идентификатор склада – int, PK, NOT NULL

  • Адрес склада – varchar(45), NOT NULL

Исходя из приведенных отношений, построим даталогическую схему БД (рисунок 9):

Рисунок 9 – Даталогическая схема БД

Соседние файлы в предмете Базы данных