- •Глава 1. Анализ предметной области асу “Московская доставка” 6
- •Глава 2. Проектирование базы данных для объекта автоматизации курьерской доставки “Московская доставка” 16
- •Глава 3. Программная реализация бд для курьерской службы “Московская доставка” 31
- •Введение
- •Глава 1. Анализ предметной области асу “Московская доставка”
- •1.1 Системный анализ предметной области асу “Московская доставка”
- •1.2 Обзор информационных технологий, подходящих для разработки бд
- •1.2.1 Настольные субд. Microsoft Access
- •1.2.2 Полупрофессиональные субд. SqLite
- •1.2.3 Профессиональные субд. Oracle database
- •1.3 Обзор продуктов аналогов асу “Московская доставка”
- •1.3.1 Информационная система службы доставки “ups”
- •1.3.2 Информационная система службы доставки “ikea”
- •1.4 Требования к разрабатываемой бд курьерской службы “Московская доставка”
- •Выводы по главе 1
- •Глава 2. Проектирование базы данных для объекта автоматизации курьерской доставки “Московская доставка”
- •2.1 Разработка инфологической модели бд курьерской службы “Московская доставка”
- •2.2 Обоснование выбора модели данных
- •2.2.1 Иерархическая модель
- •2.2.2 Сетевая модель данных
- •2.2.3 Объектно-ориентированная модель данных
- •2.2.4 Реляционная модель данных
- •2.3 Логическое проектирование бд курьерской службы “Московская доставка”
- •2.4 Нормализация схемы базы данных
- •Выводы по главе 2
- •Глава 3. Программная реализация бд для курьерской службы “Московская доставка”
- •3.1 Анализ и выбор субд
- •3.2 Физическое проектирование бд “Московская доставка”
- •3.3 Реализация ограничений
- •3.4 Безопасность и контроль
- •Выводы по главе 3
- •Заключение
- •Список литературы
- •Приложения
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 – Даталогическая схема БД