- •Введение
- •1.Постановка задачи
- •2. Проектирование бд
- •3.1 Описание предметной области
- •2.2 Выделение и нормализация сущностей
- •Логическая схема базы данных
- •Обоснование связей между сущностями
- •3. Функциональная декомпозиция системы
- •Сценарий взаимодействия пользователя с системой
- •Спецификация функций
- •Спецификация процедур
- •Спецификация триггеров
- •Представление
- •5. Тестирование системы
- •5.1 Заполнение бд актуальными данными
- •5.2 Тестирование функций
- •5.3 Тестирование процедур
- •Тестирование триггеров
- •Тестирование представлений
- •Заключение
Логическая схема базы данных
ER – модель логического уровня
Обоснование связей между сущностями
Связь «Наездник» – «Таблица забегов»: один ко многим, так как участвует не один наездник.
Связь «Лошадь» – «Таблица забегов»: один ко многим, так как участвует не одна лошадь.
Связь «Клиенты» – «Ставки»: один ко многим, так как один клиент может сделать несколько ставок
Связь «Лошадь» – «Ставки»: один ко многим, так как на одну лошадь может быть несколько ставок.
3. Функциональная декомпозиция системы
Проведём функциональную декомпозицию системы. Для этого перечислим все хранимые процедуры и опишем их работу.
Сценарий взаимодействия пользователя с системой
Пользователь взаимодействует с СУБД через консоль. Он отправляет SELECT запросы на выборку данных из БД, в ответ он получает данные от сервера. Также для создания расширенных запросов пользователь может использовать хранимые процедуры.
Процедура count_orders подсчитывающая количество забронированных и оплаченных рейсов
Процедура fly_info выводит время вылета всех рейсов.
Процедура add_ord добавляет новый заказ на рейс в базу.
Процедура del_ord выполняет удаление записи из таблицы заказов.
Процедура change_stat меняет статус брони с не оплачено на оплачено
Процедура show_airport показывает все аэропорты указанного города
Функции:
Функция get_airplane показывает название самолета на котором должен лететь клиент.
Функция get_uptime показывает время отлета указанного рейса.
Функция order_num возвращает номер рейса по фамилии клиента
Завершение работы с системой
Для завершения работы с СУБД пользователь может использовать команду exit.
4. Реализация компонентов системы
4.1 Физическая структура базы данных
ER – модель физического уровня:
1 Таблица Airplanes
SQL – код:
Create table Airplanes (
-> ID INTEGER not null primary key,
-> Plane VARCHAR (255) not null
->);
2 Таблица Airports
SQL – код:
Create table Airports (
-> ID INTEGER not null primary key,
-> AirPortName VARCHAR (255) not nul,
-> City VARCHAR (255) not nul,
-> Country VARCHAR (255) not nul,
->);
3 Таблица Mesta
SQL – код:
Create table Mesta (
-> ID INTEGER not null primary key,
-> SeatCount INTEGER not null,
->SeatType INTEGER not null
->);
4 Таблица Klients
SQL – код:
Create table Flying (
-> ID INTEGER not null primary key,
-> UpTime TIME not nul,
-> DownTime TIME not nul
->);
5 Таблица Orders
SQL – код:
Create table Orders (
-> ID INTEGER not null primary key,
-> FIO VARCHAR (255) not nul,
-> FlightDate DATE not null,
-> SeatNumber INTEGER not null,
-> Payed BOOLEAN not null,
-> lastname VARCHAR (255) not null,
-> name VARCHAR (255) not null,
-> otchestvo VARCHAR (255) not null,
Связываем таблицы
alter table Flying add FOREIGN KEY(FK_ID_Plane) REFERENCES Airplanes(ID);
alter table Flying add FOREIGN KEY(FK_ID_AP_Up) REFERENCES Airports(ID);
alter table Flying add FOREIGN KEY(FK_ID_AP_Down) REFERENCES Airports(ID);
alter table Mesta add FOREIGN KEY(FK_ID_Plane) REFERENCES Airplanes(ID);
alter table Orders add FOREIGN KEY(FK_ID_Flight) REFERENCES Flying(ID);
alter table Orders add FOREIGN KEY(FK_ID_Seats) REFERENCES Mesta(ID);
