Смекни!
smekni.com

Система управления базой данных (стр. 3 из 4)

Исходя из проведённого анализа для реализации проектируемой реляционной БД автовокзала выбирается Access.


4. Логическое проектирование БД

Логическое проектирование начинается с построения универсальной таблицы (реляционного отношения), которая удовлетворяет требованию первой нормальной формы (1НФ), т.е. в универсальной таблице имеется закономерное «один факт в одном месте». Построение универсальной таблицы ведётся исходя из проведённого анализа предметной области. Универсальная таблица для проектируемой базы данных автовокзала приведена в приложении Б.

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

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

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

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

Марка автобуса однозначно описывает его технические характеристики код автобуса, такие как количество мест, дальность пути, марка топлива, объём топливного бака.

Номер экипажа уникален для группы допуска, медицинского заключения о здоровье всего экипажа перед выездом.

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

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

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

Код маршрута, № рейса, № экипажа, Код состава экипажа, Регистрационный знак, Марка автобуса, Название автокомпании.

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

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

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

Преобразуем ER- диаграмму в схему базы данных. Данное преобразование представлено в приложении Г.

4.1 Ограничения целостности

Опишем проектируемую базу данных на языке ЯИМ с указание ключей и других ограничений целостности.

ТАБЛИЦА Автокомпании (Обозначающая сущность, обозначает Автобусы)

ПЕРВИЧНЫЙ КЛЮЧ (Автокомпания)

ПОЛЯ (Автокомпания – Текст 50, Номер лицензии – Длинное целое, Адрес офиса – Текст 50, Тел. гл менеджера – Текст 50)

ОГРАНИЧЕНИЯ (Значения поля Автокомпания должны быть уникальны, при нарушении вывод сообщения «Такая автокомпания уже есть »)

ТАБЛИЦА Марки автобусов (Обозначающая сущность, обозначает автобусы)

ПЕРВИЧНЫЙ КЛЮЧ (Марка автобусов)

ПОЛЯ (Марка автобусов – Текст 50, Количество мест – Длинное целое, Дальность маршрута – Текст 50, Марка топлива – Текст 50, Объём топливного бака – Длинное целое, Группа допуска – Длинное целое)

ОГРАНИЧЕНИЯ (Значения поля Марка автобуса должны быть уникальны, при нарушении вывод сообщения «Такая марка автобуса уже есть»)

ТАБЛИЦА Автобусы (Стержневая сущность)

ПЕРВИЧНЫЙ КЛЮЧ (Регистрационный знак)

ВНЕШНИЙ КЛЮЧ (Марка автобусов ИЗ Марки автобусов

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Марки автобусов КАСКАДИРУЮТСЯ

ОБНОВЛЕНИЯ Марки автобусов. Марка автобуса КАСКАДИРУЮТСЯ

ВНЕШНИЙ КЛЮЧ (Автокомпания ИЗ Автокомпании

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Автокомпании КАСКАДИРУЕТСЯ

ОБНОВЛЕНИЯ Автокомпании. Автокомпания КАСКАДИРУЮТСЯ

ПОЛЯ (Регистрационный знак – Длинное целое, Марка автобуса – Текст 50, Автокомпания – Текст 50)

ОГРАНИЧЕНИЯ (1.Значения поля Регистрационного знака должны быть уникальны, при нарушении вывод сообщения «Такой регистрационный номер уже есть»

2. Значения полей Марка автобуса и Автокомпания должны принадлежать набору значений из соответствующих полей таблиц Марки автобусов и Автокомпании)

ТАБЛИЦА Экипажи (Стержневая сущность)

ПЕРВИЧНЫЙ КЛЮЧ (№ экипажа)

ПОЛЯ (№ экипажа – Длинное целое, Группа допуска – Длинное целое, Медицинское заключение – Текст 50)

ОГРАНИЧЕНИЯ (Значения поля № экипажа должны быть уникальны, при нарушении вывод сообщения «Такой № экипажа уже есть»)

ТАБЛИЦА Состав экипажа(Характеризующая сущность, характеризует Экипажи)

ПЕРВИЧНЫЙ КЛЮЧ (Код состава экипажа)

ВНЕШНИЙ КЛЮЧ (№ экипажа ИЗ Экипажи

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Экипажи КАСКАДИРУЕТСЯ

ОБНОВЛЕНИЯ Экипажи. № экипажа КАСКАДИРУЕТСЯ

ПОЛЯ (Код состава экипажа – Счётчик, Фамилия – Текст 50, Имя – Текст 50, Отчество - Текст 50, № экипажа – Длинное целое)

ОГРАНИЧЕНИЯ (Значения поля № экипажа должны принадлежать набору значений из соответствующего поля таблицы Экипажи)

ТАБЛИЦА Рейсы (Стержневая сущность)

ПЕРВИЧНЫЙ КЛЮЧ (№ рейса)

ПОЛЯ (№ рейса – Длинное целое, Место отправления – Текст 50, Место назначения – Текст -50, Время в пути – Время, Расстояние – Длинное целое, Промежуточные остановки – Текст -50)

ОГРАНИЧЕНИЯ (Значения поля № рейса должны быть уникальны, при нарушении вывод сообщения «Такой № рейса уже есть»)

ТАБЛИЦА Вылеты (Ассоциативная сущность, связывает Рейсы, Автобусы, Экипажи)

ПЕРВИЧНЫЙ КЛЮЧ (Код Маршрута)

ВНЕШНИЙ КЛЮЧ (№ рейса ИЗ Рейсы

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Рейсы КАСКАДИРУЕТСЯ

ОБНОВЛЕНИЯ Рейсы. № рейса КАСКАДИРУЕТСЯ

ВНЕШНИЙ КЛЮЧ (Регистрационный знак ИЗ Автобусы

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Автобусы КАСКАДИРУЕТСЯ

ОБНОВЛЕНИЯ Автобусы. Регистрационный знак КАСКАДИРУЕТСЯ

ВНЕШНИЙ КЛЮЧ (№ экипажа ИЗ Экипажи

NULL – значения НЕ ДОПУСТИМЫ

УДАЛЕНИЕ ИЗ Экипажи КАСКАДИРУЕТСЯ

ОБНОВЛЕНИЯ Экипажи. № экипажа КАСКАДИРУЕТСЯ

ПОЛЯ (Код вылета – Счётчик, № рейса – Длинное целое, Дата отправления – Дата, Время отправления – Время, № экипажа – Длинное целое, Количество проданных билетов – Длинное целое)

ОГРАНИЧЕНИЯ (Значения полей № рейса, Регистрационный номер, № экипажа должны принадлежать набору значений из соответствующих полей таблиц Рейсы, Автобусы, Экипажи).


5. Физическое проектирование БД

Физическое проектирование базы данных автовокзала проходит в СУБД Microsoft Access.

Создаются таблицы.

Таблица «Автокомпании» содержит сведения о поставщиках услуг предоставляемых по перевозки пассажиров.

Автокомпания Номер лицензии Адрес офиса Телефон гл. менеджера
Депо №1 1587456 Саратов Перн 23-5 (882)-45-564-45
Депо №2 1587455 Саратов Перн 23-5 (882)-45-564-45
Депо №3 1587454 Саратов Перн 23-5 (882)-45-564-45
Депо №4 1584444 Балаково ул. Новосельцева 256-45/Г (092)-8-78-78

Таблица «Маршруты» содержит фактические маршруты по заданным рейсам

Код маршрута № рейса Дата отправления Время отправления Регистрационный знак № экипажа Кол-во проданных билетов
1 1 26.03.99 14:53 Н775КУ64rus 1 89
2 2 1,04.00 16:22 Н776КУ64rus 2 144
3 3 25.05.02 1:30 Н777КУ64rus 3 44
4 4 10.12.03 21:40 Н74КУ64rus 4 38
5 4 10.11.03 21:40 Н77КУ64rus 4 38
5 4 10.10.03 21:40 Н75КУ64rus 4 38

Таблица «Марки автобусов» содержит технические характеристики автобусов

Марка автобуса Код автобуса Кол-во мест Марка топлива Объём топливного бака
ИКАРУС 1 150 ДТ 150
ЛИАЗ 2 50 АИ-80 100
ПАЗ 3 60 АИ-80 90
ПАЗ 4 70 АИ-80 90

Таблица «Рейсы»

№ рейса Место отправления Место назначения Время в пути Расстояние Промежуточные остановки
1 Саратов Москва 25 2000
2 Саратов Петербург 30 2500 Москва
3 Саратов Тамбов 22 1800
4 Саратов Уфа 12 1000

Таблица «Автобусы» содержит сведения о номере регистрационного знака средства принадлежащего той или иной автокомпании.

Регистрационный знак Марка автобуса Автокомпания
Н775КУ64rus ИКАРУС Депо №1
Н776КУ64rus ИКАРУС Депо №2
Н777КУ64rus ИКАРУС Депо №3
Н74КУ64rus ЛИАЗ Депо №4
Н77КУ64rus ПАЗ Депо №4
Н75КУ64rus ПАЗ Депо №4

Таблица «Состав экипажа» содержит сведения о шоферах входящих в тот или иной экипаж