
- •Введение
- •1.Постановка задачи
- •2. Проектирование бд
- •3.1 Описание предметной области
- •2.2 Выделение и нормализация сущностей
- •Логическая схема базы данных
- •Обоснование связей между сущностями
- •3. Функциональная декомпозиция системы
- •Сценарий взаимодействия пользователя с системой
- •Спецификация функций
- •Спецификация процедур
- •Спецификация триггеров
- •Представление
- •5. Тестирование системы
- •5.1 Заполнение бд актуальными данными
- •5.2 Тестирование функций
- •5.3 Тестирование процедур
- •Тестирование триггеров
- •Тестирование представлений
- •Заключение
Введение
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения.
Наверное, самой удобной системой обработки информации является база данных. Современные базы данных можно адаптировать под любые задачи. На любом производстве, в любой организации будет полезен быстрый удобный доступ к нужным данным, быстрое редактирование записей и реестров, выделение из множества информации самой нужной, получение общих и детализированных отчетов по итогам работы.
Для обеспечения этих функций созданы специализированные средства – системы управления базами данных (СУБД). Современные СУБД – многопользовательские системы управления базой данных, которые специализируется на управлении массивом информации одним или множеством одновременно работающих пользователей. Современные СУБД обеспечивают набор средств для поддержки таблиц и отношений между связанными таблицами – развитый пользовательский интерфейс, который позволяет вводить и модифицировать информацию, выполнять поиск и представлять информацию в графическом или текстовом режиме – средства программирования высокого уровня, с помощью которых можно создавать собственные приложения.
1.Постановка задачи
Необходимо разработать прототип программной системы «Аэропорт», содержащий не менее 5 взаимосвязанных таблиц, 5 процедур, 3 функций, 2 триггеров с использованием операторов (функций) ветвления и циклов. Также необходимо обосновать и реализовать как минимум 1 представление и 1 курсор.
Для выполнения работы необходимо использовать
СУБД MySQL 5.1
система создания ER-диаграмм:Open Model Sphere
язык программирования: SQL
Среда программирования – клиент командной строки MySQL
2. Проектирование бд
3.1 Описание предметной области
Предметная область курсовой работы представляет собой разработку базы данных для информационного функционирования аэропорта.
Аэропорт – комплекс сооружений, предназначенный для приёма, отправки, базирования воздушных судов и обслуживания воздушных перевозок, имеющий для этих целей аэродром, аэровокзал (в крупных аэропортах нередко несколько аэровокзалов), один или несколько грузовых терминалов и другие наземные сооружения и необходимое оборудование.
База данных должна удовлетворять информационные потребности и содержать в себе информацию о полетах, самолетах, аэропортах. Также должна содержаться детальная информация о заказанных билетах на рейсы. Конкретно – Ф.И.О. заказчика, информация о его рейсе и статус оплаты.
2.2 Выделение и нормализация сущностей
Выделим основные сущности базы данных:
Самолеты
Полеты
Клиенты
Опишем каждую из сущностей:
Самолеты – содержит информацию о самолетах и посадочных местах в самолете
Полеты – содержит информацию о рейсах, время прибытия и отбытия, аэропорт прибытия и отбытия и т. д.
Клиенты – содержит информацию о копленных и забронированных билетах. А конкретно кем и на какой рейс куплен или забронирован билет.
Проведём нормализацию сущностей:
1NF – требует атомарности данных в таблицах, т.е. данные в таблицах должны быть представлены в виде минимально возможных и далее неделимых частей информации.
Таблица 1.1
Ключевая абстракция «Самолеты»
Характеристика |
Тип |
Название самолета |
Строковый |
Класс мест |
Целочисленный |
Количество мест на каждый класс |
Целочисленный |
Таблица 1.2
Ключевая абстракция «Полеты»
Характеристика |
Тип |
Самолет |
Строковый |
Аэропорт отправления |
Строковый |
Город аэропорта отправления |
Строковый |
Страна аэропорта отправления |
Строковый |
Аэропорт прибытия |
Строковый |
Город аэропорта прибытия |
Строковый |
Страна аэропорта прибытия |
Строковый |
Время отправления |
Строковый |
Время прибытия |
Строковый |
Таблица 1.3
Ключевая абстракция «Заказы»
Характеристика |
Тип |
Самолет |
Строковый |
Аэропорт отправления |
Строковый |
Город аэропорта отправления |
Строковый |
Страна аэропорта отправления |
Строковый |
Аэропорт прибытия |
Строковый |
Город аэропорта прибытия |
Строковый |
Страна аэропорта прибытия |
Строковый |
Время отправления |
Время |
Время прибытия |
Время |
Дата отправления |
Дата |
Класс мест |
Числовой целый |
Количество билетов(мест) |
Числовой целый |
Оплата |
Булево значение |
Ф.И.О. |
Строковый |
2NF – требует, чтобы структура базы данных удовлетворяла требованиям 1NF и чтобы данные во всех не ключевых столбцах полностью зависели от первичного ключа или каждого поля первичного ключа, если он является составным.
Таблица 2.1
Реляционная модель БД «Самолёты»
Самолёты |
|
Номер |
Модель |
Таблица 2.2
Реляционная модель БД «Места»
Места |
|||
Номер |
Номер самолёта |
Класс места |
Количество мест |
Таблица 2.3
Реляционная модель БД «Полёты»
Полёты |
|||||
Номер |
Номер самолёта |
Время взлета |
Время посадки |
Аэропорт отправления |
Аэропорт прибытия |
Таблица 2.4
Реляционная модель БД «Аэропорты»
Аэропорты |
|||
Номер |
Название |
Город |
Страна |
Таблица 2.5
Реляционная модель БД «Заказы»
Аэропорты |
|||||
Номер |
Номер полёта |
Дата полёта |
Индиф. номер мест |
Количество мест |
Оплата (оплачено/нет) |
3NF – требует от нас, чтобы структура базы данных удовлетворяла требованиям 1NF и 2NF и чтобы все не ключевые столбцы таблицы зависели от первичного ключа, но были независимы друг от друга.
Таблица 3.1
Самолёты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
PlaneName |
VARCHAR(255) |
Модель самолёта |
Таблица 3.2
Места в самолёте
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Plane |
INTEGER |
Номер самолёта |
SeatCount |
INTEGER |
Класс мест |
SeatType |
INTEGER |
Количество мест |
Таблица 3.3
Аэропорты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
AirPortName |
VARCHAR(255) |
Название аэропорта |
City |
VARCHAR(255) |
Город |
Country |
VARCHAR(255) |
Страна |
Таблица 3.4
Полёты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Plane |
INTEGER |
Номер самолёта |
UpTime |
TIME |
Время взлета |
DownTime |
TIME |
Время посадки |
ID_AP_Up |
INTEGER |
Аэропорт отправления |
ID_AP_Down |
INTEGER |
Аэропорт прибытия |
Таблица 3.5
Заказы
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Flight |
INTEGER |
Номер полёта |
FlightDate |
DATE |
Дата полёта |
ID_Seats |
INTEGER |
Индиф. номер мест |
SeatCount |
INTEGER |
Количество мест |
Payed |
Boolean |
Оплата (оплачено/нет) |
FIO |
STRING |
|