Автор: Пользователь скрыл имя, 05 Июня 2013 в 05:38, курсовая работа
Для обеспечения этих функций созданы специализированные средства – системы управления базами данных (СУБД). Современные СУБД - многопользовательские системы управления базой данных, которые специализируется на управлении массивом информации одним или множеством одновременно работающих пользователей. Современные СУБД обеспечивают набор средств для поддержки таблиц и отношений между связанными таблицами - развитый пользовательский интерфейс, который позволяет вводить и модифицировать информацию, выполнять поиск и представлять информацию в графическом или текстовом режиме - средства программирования высокого уровня, с помощью которых можно создавать собственные приложения.
1 ВВЕДЕНИЕ 2
2 ПОСТАНОВКА ЗАДАЧИ 2
3 Проектирование БД 3
3.1 Описание предметной области 3
3.2 Выделение и нормализация сущностей 3
3.3 Логическая схема базы данных 9
3.4 Обоснование связей между сущностями 9
4 ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ СИСТЕМЫ 10
4.1 Сценарий взаимодействия пользователя с системой 10
4.2 Процедура count_orders подсчитывающая количество забронированных и оплаченных рейсов 10
4.3 Процедура fly_info выводит время вылета всех рейсов. 10
4.4 Процедура add_ord добавляет новый заказ на рейс в базу. 10
4.5 Процедура del_ord выполняет удаление записи из таблицы заказов. 10
4.6 Процедура change_stat меняет статус брони с не оплачено на оплачено 10
4.7 Процедура show_airport показывает все аэропорты указанного города 10
Функции: 10
4.8 Функция get_airplane показывает название самолета на котором должен лететь клиент. 10
4.9 Функция get_uptime показывает время отлета указанного рейса. 10
4.9 Функция order_num возвращает номер рейса по фамилии клиента 11
4.10 Завершение работы с системой 11
5 РЕАЛИЗАЦИЯ КОМПОНЕНТОВ СИСТЕМЫ 11
5.1 Физическая структура базы данных 11
5.1.1 Таблица Airplanes 12
5.1.2 Таблица Airports 12
5.1.5 Таблица Orders 13
5.2 Спецификация функций 14
5.2.1 Функция get_airplane показывает название самолета на котором должен лететь клиент. 15
5.2.3 Функция order_num возвращает номер рейса по фамилии клиента. 15
5.3 Спецификация процедур 17
Перечислим процедуры ИС: 17
5.3.1 Процедура count_orders подсчитывает количество оплаченных или не оплаченных заказов. На вход подается 0 или 1 17
5.3.2 Процедура fly_info выводит время вылета всех рейсов. 17
5.3.3 Процедура change_price, меняющая ставку клиента по id ставки используя курсор. 17
5.3.4 Процедура add_cl добавляющая клиента, а также его ставку. 18
5.3.5 Процедура del_cl удаляющая клиента из всех таблиц. 19
5.3.6 Процедура info_ippodrom показывающая основную информацию об ипподроме, подсчитанную с помощью триггеров. 19
5.4 Спецификация триггеров 20
5.4.1 Триггер sum_money срабатывает после добавления в таблицу ставки, подсчитывает сумму всех ставок. 20
5.4.2 Триггер count_horse срабатывает после добавления в таблицу лошади, подсчитывает количество лошадей. 21
5.4.3 Триггер count_klients срабатывает после добавления в таблицу клиенты, подсчитывает количество клиентов. 21
5.4.4 Триггер count_runners срабатывает после добавления в таблицу наездника, подсчитывает количество наездников. 22
5.5 Представление 22
6 ТЕСТИРОВАНИЕ СИСТЕМЫ 23
6.1 Заполнение БД актуальными данными 23
Все таблицы БД заполнены актуальными данными. Каждая из таблиц содержит данные, характеризующие соответствующую сущность. Листинг заполнения БД приведён в приложении Б. 23
6.2 Описание вспомогательных SELECT-запросов 23
6.3 Тестирование функций 26
6.4 Тестирование процедур 27
7 ЗАКЛЮЧЕНИЕ 35
8 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 36
ПРИЛОЖЕНИЕ А Скрипт создания базы данных 36
ПРИЛОЖЕНИЕ Б ЗАПОЛНЕНИЕ БАЗЫ ДАННЫХ 37
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Владимирский государственный университет
имени Александра Григорьевича и Николая Григорьевича Столетовых»
Кафедра информационных систем и программной инженерии
КУРСОВАЯ РАБОТА
Разработка структуры базы данных для
информационной системы «Аэропорт»
Выполнил: студент гр. ИСГ-11
Самодуров И. А.
Принял: асс. Проскурина Г.В.
Владимир,
2013
Содержание
1 ВВЕДЕНИЕ
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения.
Наверное, самой удобной системой обработки информации является база данных. Современные базы данных можно адаптировать под любые задачи. На любом производстве, в любой организации будет полезен быстрый удобный доступ к нужным данным, быстрое редактирование записей и реестров, выделение из множества информации самой нужной, получение общих и детализированных отчетов по итогам работы.
Для обеспечения этих
функций созданы
2 ПОСТАНОВКА ЗАДАЧИ
Необходимо разработать прототип программной системы «Аэропорт», содержащий не менее 5 взаимосвязанных таблиц, 5 процедур, 3 функций, 2 триггеров с использованием операторов (функций) ветвления и циклов. Также необходимо обосновать и реализовать как минимум 1 представление и 1 курсор.
Для выполнения работы необходимо использовать
3 Проектирование БД
3.1 Описание предметной области
Предметная область курсовой работы представляет собой разработку базы данных для информационного функционирования аэропорта.
Аэропорт – комплекс сооружений, предназначенный для приёма, отправки, базирования воздушных судов и обслуживания воздушных перевозок, имеющий для этих целей аэродром, аэровокзал (в крупных аэропортах нередко несколько аэровокзалов), один или несколько грузовых терминалов и другие наземные сооружения и необходимое оборудование.
База данных должна удовлетворять информационные потребности и содержать в себе информацию о полетах, самолетах, аэропортах. Также должна содержаться детальная информация о заказанных билетах на рейсы. Конкретно – Ф.И.О. заказчика, информация о его рейсе и статус оплаты.
3.2 Выделение и нормализация сущностей
Выделим основные сущности базы данных:
Опишем каждую из сущностей:
Проведём нормализацию сущностей:
Таблица 1.1 – Ключевая абстракция «Самолеты»
Характеристика |
Тип |
Название самолета |
Строковый |
Класс мест |
Целочисленный |
Количество мест на каждый класс |
Целочисленный |
Таблица 1.2 – Ключевая абстракция «Полеты»
Характеристика |
Тип |
Самолет |
Строковый |
Аэропорт отправления |
Строковый |
Город аэропорта отправления |
Строковый |
Страна аэропорта отправления |
Строковый |
Аэропорт прибытия |
Строковый |
Город аэропорта прибытия |
Строковый |
Страна аэропорта прибытия |
Строковый |
Время отправления |
Строковый |
Время прибытия |
Строковый |
Таблица 1.3 – Ключевая абстракция «Заказы»
Характеристика |
Тип |
Самолет |
Строковый |
Аэропорт отправления |
Строковый |
Город аэропорта отправления |
Строковый |
Страна аэропорта отправления |
Строковый |
Аэропорт прибытия |
Строковый |
Город аэропорта прибытия |
Строковый |
Страна аэропорта прибытия |
Строковый |
Время отправления |
Время |
Время прибытия |
Время |
Дата отправления |
Дата |
Класс мест |
Числовой целый |
Количетво билетов(мест) |
Числовой целый |
Оплата |
Булево значение |
Ф.И.О. |
Строковый |
Таблица 2.1 - Реляционная модель БД «Самолёты»
Самолёты | |
Номер |
Модель |
Таблица 2.2 - Реляционная модель БД «Места»
Места | |||
Номер |
Номер самолёта |
Класс места |
Количество мест |
Таблица 2.3 - Реляционная модель БД «Полёты»
Полёты | |||||
Номер |
Номер самолёта |
Врема взлета |
Время посадки |
Аэропорт отправления |
Аэропорт прибытия |
Таблица 2.4 - Реляционная модель БД «Аэропорты»
Аэропорты | |||
Номер |
Название |
Город |
Страна |
Таблица 2.5 – Реляционная модель БД «Заказы»
Аэропорты | |||||
Номер |
Номер полёта |
Дата полёта |
Индиф номер мест |
Количество мест |
Оплата (оплачено/нет) |
Таблица - Самолёты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
PlaneName |
VARCHAR(255) |
Модель самолёта |
Таблица – Места в самолёте
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Plane |
INTEGER |
Номер самолёта |
SeatCount |
INTEGER |
Класс мест |
SeatType |
INTEGER |
Количество мест |
Таблица - Аэропорты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
AirPortName |
VARCHAR(255) |
Название аэропорта |
City |
VARCHAR(255) |
Город |
Country |
VARCHAR(255) |
Страна |
Таблица - Полёты
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Plane |
INTEGER |
Номер самолёта |
UpTime |
TIME |
Врема взлета |
DownTime |
TIME |
Время посадки |
ID_AP_Up |
INTEGER |
Аэропорт отправления |
ID_AP_Down |
INTEGER |
Аэропорт прибытия |
Таблица - Заказы
Поле |
Тип |
Назначение |
ID |
INTEGER |
Идентификатор |
ID_Flight |
INTEGER |
Номер полёта |
FlightDate |
DATE |
Дата полёта |
ID_Seats |
INTEGER |
Индиф номер мест |
SeatCount |
INTEGER |
Количество мест |
Payed |
Boolean |
Оплата (оплачено/нет) |
FIO |
STRING |
3.3 Логическая схема базы данных
ER - модель логического уровня
3.4 Обоснование связей между сущностями
4 ФУНКЦИОНАЛЬНАЯ ДЕКОМПОЗИЦИЯ СИСТЕМЫ
Проведём функциональную декомпозицию системы. Для этого перечислим все хранимые процедуры и опишем их работу.
4.1 Сценарий взаимодействия пользователя с системой
Пользователь взаимодействует с СУБД через консоль. Он отправляет SELECT запросы на выборку данных из БД, в ответ он получает данные от сервера. Также для создания расширенных запросов пользователь может использовать хранимые процедуры.
4.2 Процедура count_orders подсчитывающая количество забронированных и оплаченных рейсов
4.3 Процедура fly_info выводит время вылета всех рейсов.
4.4 Процедура add_ord добавляет новый заказ на рейс в базу.
4.5 Процедура del_ord выполняет удаление записи из таблицы заказов.
4.6 Процедура change_stat меняет статус брони с не оплачено на оплачено
4.7 Процедура show_airport показывает все аэропорты указанного города
Функции:
4.8 Функция get_airplane показывает название самолета на котором должен лететь клиент.
4.9 Функция get_uptime показывает время отлета указанного рейса.
4.9 Функция order_num возвращает номер рейса по фамилии клиента
4.10 Завершение работы с системой
Для завершения работы с СУБД пользователь может использовать команду exit.
5 РЕАЛИЗАЦИЯ КОМПОНЕНТОВ СИСТЕМЫ
5.1 Физическая структура базы данных
ER – модель физического уровня:
5.1.1 Таблица Airplanes
SQL – код:
Create table Airplanes (
-> ID INTEGER not null primary key,
-> Plane VARCHAR (255) not null
-> );
5.1.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,
-> );
5.1.3 Таблица Mesta
SQL – код:
Create table Mesta (
-> ID INTEGER not null primary key,
-> SeatCount INTEGER not null,
->SeatType INTEGER not null
-> );
5.1.4 Таблица Klients
SQL – код:
Create table Flying (
-> ID INTEGER not null primary key,
-> UpTime TIME not nul,
-> DownTime TIME not nul
-> );
5.1.5 Таблица Orders
SQL – код:
Create table Orders (
-> ID INTEGER not null primary key,
Информация о работе Разработка структуры базы данных для информационной системы «Аэропорт»