Разработка структуры базы данных для информационной системы 'Аэропорт'. Курсовая работа (т). Информационное обеспечение, программирование.

Разработка структуры базы данных для информационной системы 'Аэропорт'. Курсовая работа (т). Информационное обеспечение, программирование.




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Разработка структуры базы данных для информационной системы 'Аэропорт'

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

Федеральное государственное бюджетное
образовательное учреждение


высшего профессионального образования


«Владимирский государственный
университет


имени Александра Григорьевича и
Николая Григорьевича Столетовых»


Кафедра информационных систем и
программной инженерии


















Разработка структуры базы данных для
информационной системы «Аэропорт»










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


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


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







Необходимо разработать прототип программной системы «Аэропорт»,
содержащий не менее 5 взаимосвязанных таблиц, 5 процедур, 3 функций, 2
триггеров с использованием операторов (функций) ветвления и циклов. Также
необходимо обосновать и реализовать как минимум 1 представление и 1 курсор.


Для выполнения работы необходимо использовать


·       система создания ER-диаграмм:Open Model Sphere


·       язык программирования: SQL


·       Среда программирования - клиент командной строки MySQL







Предметная область курсовой работы представляет собой разработку базы
данных для информационного функционирования аэропорта.


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


База данных должна удовлетворять информационные потребности и содержать в
себе информацию о полетах, самолетах, аэропортах. Также должна содержаться
детальная информация о заказанных билетах на рейсы. Конкретно - Ф.И.О.
заказчика, информация о его рейсе и статус оплаты.




.2 Выделение и нормализация сущностей




Выделим основные сущности базы данных:


·       Самолеты - содержит информацию о самолетах и посадочных местах в самолете


·       Полеты - содержит информацию о рейсах, время прибытия и отбытия, аэропорт
прибытия и отбытия и т. д.


·       Клиенты - содержит информацию о копленных и забронированных билетах. А конкретно
кем и на какой рейс куплен или забронирован билет.


1)      1NF - требует
атомарности данных в таблицах, т.е. данные в таблицах должны быть представлены
в виде минимально возможных и далее неделимых частей информации.




Таблица 1.1 - Ключевая абстракция «Самолеты»


Таблица 1.2 - Ключевая абстракция «Полеты»


Таблица 1.3 - Ключевая абстракция «Заказы»


2)      2NF - требует,
чтобы структура базы данных удовлетворяла требованиям 1NF и чтобы данные во всех не ключевых столбцах полностью
зависели от первичного ключа или каждого поля первичного ключа, если он является
составным.




Таблица 2.1 - Реляционная модель БД «Самолёты»


Таблица 2.2 - Реляционная модель БД «Места»


Таблица 2.3 - Реляционная модель БД «Полёты»


Таблица 2.4 - Реляционная модель БД «Аэропорты»


Таблица 2.5 - Реляционная модель БД «Заказы»


3)      3NF - требует от нас, чтобы структура базы данных удовлетворяла
требованиям 1NF и 2NF и чтобы все не ключевые столбцы таблицы зависели от
первичного ключа, но были независимы друг от друга.





.4 Обоснование связей между сущностями




1)      Связь «Наездник» - «Таблица забегов»: один ко многим, так как
участвует не один наездник.


2)      Связь «Лошадь» - «Таблица забегов»: один ко многим, так как
участвует не одна лошадь.


)        Связь «Клиенты» - «Ставки»: один ко многим, так как один клиент
может сделать несколько ставок


4)      Связь «Лошадь» - «Ставки»: один ко многим, так как на одну
лошадь может быть несколько ставок.







4. Функциональная декомпозиция системы




Проведём функциональную декомпозицию системы. Для этого перечислим все
хранимые процедуры и опишем их работу.


1 Сценарий взаимодействия пользователя с системой


Пользователь взаимодействует с СУБД через консоль. Он отправляет SELECT запросы на выборку данных из БД, в
ответ он получает данные от сервера. Также для создания расширенных запросов
пользователь может использовать хранимые процедуры.


2 Процедура
count_ orders подсчитывающая
количество забронированных и оплаченных рейсов


3 Процедура
fly _ info выводит время вылета всех рейсов.


4 Процедура
add_ ord добавляет новый заказ на рейс в базу.


5 Процедура
del_ ord выполняет удаление записи из таблицы
заказов.


6 Процедура
change_ stat меняет
статус брони с не оплачено на оплачено


7 Процедура
show _ airport показывает все аэропорты указанного
города


8 Функция
get _ airplane показывает название самолета на
котором должен лететь клиент.


9 Функция
get _ uptime показывает время отлета указанного рейса.


10 Функция
order _ num возвращает номер рейса по фамилии клиента


Для завершения работы с СУБД пользователь может использовать команду exit .







.1 Физическая структура базы данных




> AirPortName VARCHAR (255) not nul,


> otchestvo VARCHAR (255) not null,


alter table Flying add FOREIGN KEY(FK_ID_Plane) REFERENCES
Airplanes(ID);table Flying add FOREIGN KEY(FK_ID_AP_Up) REFERENCES
Airports(ID);table Flying add FOREIGN KEY(FK_ID_AP_Down) REFERENCES
Airports(ID);table Mesta add FOREIGN KEY(FK_ID_Plane) REFERENCES
Airplanes(ID);table Orders add FOREIGN KEY(FK_ID_Flight) REFERENCES Flying(ID);table
Orders add FOREIGN KEY(FK_ID_Seats) REFERENCES Mesta(ID);




Функция get _ airplane показывает название самолета на
котором должен лететь клиент.


delimiter |FUNCTION get_airplane(lstnm VARCHAR(255), nm
VARCHAR(255), otch VARCHAR(255))VARCHAR(255)(SELECT Plane FROM Airplanes WHERE
ID IN (SELECT FK_ID_Plane FROM Flying WHERE ID IN (SELECT FK_ID_Flight FROM
Orders WHERE lastname = lstnm AND name = nm AND otchestvo = otch)));|


2 Функция
get _ uptime показывает время отлета указанного рейса


CREATE FUNCTION get_uptime(reys_id INTEGER)TIME(SELECT UpTime
FROM Flying WHERE ID = reys_id);|


3 Функция
order _ num возвращает номер рейса по фамилии клиента.


CREATE FUNCTION order_num(client_name
VARCHAR(255))INTEGER(SELECT `ID` FROM Orders WHERE lastname = client_name ORDER
BY FlightDate DESC LIMIT 1);|




1 Процедура
count_ orders подсчитывает
количество оплаченных или не оплаченных заказов. На вход подается 0 или 1


CREATE PROCEDURE `count_orders`(IN `str` INT(1))COUNT(*) FROM
Orders WHERE `Payed` = str; //


Процедура fly _ info выводит время вылета всех рейсов.


CREATE PROCEDURE fly_info()Airplanes.Plane, Flying.ID,
Flying.UpTime FROM Airplanes RIGHT JOIN Flying ON
Airplanes.ID=Flying.FK_ID_Plane;|


3 Процедура
change_price , меняющая ставку клиента по id ставки используя курсор.


create procedure change_price(in id integer,in m2 integer)done
integer default 0;money integer;cur cursor for select ID_price from price where
ID_price = id;continue handler for sqlstate '02000' set done=1;cur;done=0 docur
into money;price set Price = m2 where ID_price = money;while;cur;|


4 Процедура
add_cl добавляющая клиента, а также его ставку.


reate procedure add_cl(in fam text,in name text, in fat text,
in pr integer,in hor integer)into klients (Family_client,Name_client,
Father_name_client) values (fam,name,fat);max(ID_client) from klients into
@kl;into price (Price, ID_horse, ID_client) values (pr,hor,@kl);


5 Процедура
del_cl удаляющая клиента из всех таблиц.


Для работы функции в начале работы с ней нужно прописать:


SET AUTOCOMMIT=0;FOREIGN_KEY_CHECKS=0;


create procedure del_cl(in id integer)from klients where
ID_client=id;from price where ID_client=id;


6 Процедура
info_ippodrom показывающая основную информацию об ипподроме,
подсчитанную с помощью триггеров.


create procedure info_ippodrom()@summoney as sum_money,
@counthorse as count_horse, @countclient as count_client, @countrunner as
count_runner;


Триггер sum_money срабатывает после добавления в таблицу ставки,
подсчитывает сумму всех ставок.


create trigger sum_money after insert on priceeach
rowsum(Price) from price into @summoney;


2 Триггер
count_horse срабатывает после добавления в таблицу лошади, подсчитывает
количество лошадей.


create trigger count_horse after insert on horseeach
rowcount(ID_horse) from horse into @counthorse;


3 Триггер
count_klients срабатывает после добавления в таблицу клиенты, подсчитывает
количество клиентов.


create trigger count_klients after insert on klientseach
rowcount(ID_client) from klients into @countclient;


4 Триггер
count_runners срабатывает после добавления в таблицу наездника,
подсчитывает количество наездников.


reate trigger count_runners after insert on runnereach
rowcount(ID_runner) from runner into @countrunner;


Представление хранит виртуальную таблицу info в которой содержатся все данные по ставкам (имена
клиентов, кличка лошади и сумма ставки), сортированную по убыванию ставки.


create view info (Family_client,Name_client,Father_name_client,Price,
Name_horse) asFamily_client,Name_client,Father_name_client,Price,Name_horse
fromjoin horse join price on (klients.ID_client = price.ID_client) and


(horse.ID_horse =price.ID_horse) group by Price order by
Price desc|







.1 Заполнение БД актуальными данными




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




.2 Описание вспомогательных SELECT-запросов




1)      SELECT - запрос для проверки работы триггера sum_money , срабатывающего
после добавления в таблицу ставки, подсчитывает сумму всех ставок.


Чтобы проверить его работу сделаем выборку данных из объекта


2) SELECT - запрос для проверки работы
триггера count_horse, вычисляющего количество лошадей в БД.
3) SELECT - запрос для проверки работы
триггера count_klients, вычисляющего количество клиентов.


Чтобы проверить его работу сделаем выборку данных из объекта


4) SELECT - запрос для проверки работы
триггера count_runners, вычисляющего количество наездников.


Чтобы проверить его работу сделаем выборку данных из объекта


5)      SELECT - запрос для проверки работы представления, хранящего
виртуальную таблицу info в
которой содержатся все данные по ставкам (имена клиентов, кличка лошади и сумма
ставки), сортированную по убыванию ставки.


Результат - таблица со сведениями о ставках.




1)      Вызовем функцию count_clients , подсчитывающую количество
клиентов, т.е. персон сделавших ставки.




)  Вызовем функцию count_ price , выдающую количество ставок,
сделанных клиентом. Входным параметром является id клиента.




Получаем количество ставок у 5 клиента.


)  Вызовем функцию get_name , показывающую на лошади, с какой
кличкой выступает наездник. Результат - имя лошади. Входным параметром является
id наездника.




Получаем что наездник с номером 4 управляет лошадью с кличкой Fire.




1)      Тестируем процедуру count_price подсчитывающую сумму всех
ставок на определенный забег. Входные параметры - дата и время забега.




Получаем, что на этот забег сделано ставок на 27000.


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




Получаем, что есть два клиента с выигрышными ставками в двух разных
забегах.


)      Тестируем процедуру add_cl добавляющую клиента, а также
его ставку. Входные параметры: фамилия, имя, отчество, размер ставки, id лошади.




Получаем нового добавленного клиента и ставку.


)        Тестируем процедуру del_cl удаляющую клиента и связанную
с ним ставку. Входной параметр - id
клиента.


Для работы функции в начале работы с ней нужно прописать:


SET AUTOCOMMIT=0;FOREIGN_KEY_CHECKS=0;




Клиент и связанная с ним ставка удалены из БД.


)        Тестируем процедуру change_price, меняющую ставку
клиента по id ставки используя курсор. Входные
параметры - id ставки и сумма новой ставки.





Ставка с id 1 поменялась с
3000 на 5000.


)        Тестируем процедуру Процедура info_ippodrom показывающую
основную информацию об ипподроме, подсчитанную с помощью триггеров.




Информация которая подсчитывалась триггерами приведена в этой таблице.




)        Протестируем работу триггера sum_money , срабатывающего
после добавления в таблицу ставки, подсчитывает сумму всех ставок.


Чтобы проверить его работу сделаем выборку данных из объекта


2)      Протестируем работу триггера count_horse, вычисляющего
количество лошадей в БД. Триггер срабатывает после добавления в таблицу Horse.


Чтобы проверить его работу сделаем выборку данных из объекта


3)  Протестируем работу триггера count_klients, вычисляющего
количество клиентов.


Триггер срабатывает после добавления в таблицу Klients.


Чтобы проверить его работу сделаем выборку данных из объекта


4) Протестируем работу триггера count_runners, вычисляющего
количество наездников. Триггер срабатывает после добавления в таблицу Runner. Чтобы проверить его работу сделаем
выборку данных из объекта


Представление хранит виртуальную таблицу info в которой содержатся данные о ставках на ипподроме.


В результате получим подробный список ставок.







В ходе работы была разработана структурная база данных, содержащая 5
взаимосвязанных таблиц по информационной области «Ипподром». Так же был
реализован функционал, для удобства работы с данными. Функционал включил в себя
6 процедур, 4 триггера, 3 функции, 1 представление и 1 курсор. Была выполнена
работа по выделению сущностей, нормализации таблиц. Затем была создана база
данных, которая была заполнена данными. Затем был реализован функционал,
впоследствии удачно прошедший тестирования. Также были составлены иллюстрации
логической и физической моделей предметной области с помощью средств Open Model Sphere.







8. Список использованных источников




1.  MySQL 5.1 Reference Manual Copyright.


2.      Максим
Кузнецов, Игорь Симдянов. Самоучитель MySQL 5.


.        Кузнецов
С. Д. «Основы баз данных», 2-е издание.







database ippodrom;ippodromtable Runner(_runner integer not
null primary key unique auto_increment,text not null,text not null,_name text
null,_runner integer not null,integer not null);table Horse(_horse integer not
null primary key unique auto_increment,_horse text not null,_horse text not
null,_horse integer not null);table Klients(_client integer not null primary
key unique auto_increment,_client text not null,_client text not
null,_name_client text null);table Table_runs(_run integer not null primary key
unique auto_increment,_run text not null,integer not null,_runner integer not
null,_run date not null,_horse integer not null,key (ID_runner) references
Runner (ID_runner),key (ID_horse) references Horse (ID_horse));table
Price(_price integer not null primary key unique auto_increment,integer not
null,_horse integer not null,_client integer not null,key (ID_horse) references
Horse (ID_horse),


> foreign key (ID_client) references Klients (ID_client));OK,
0 rows affected (0.23 sec)







(1,'Ivanov','Ivan','Ivanovich','30','75'),


(2,'Petrov','Petr','Petrovic','25','65'),


(3,'Semenov','Semen','Semenovic','32','80'),


(5,'Ioghann','Shpitz','','22','72'),


(6,'Ditrich','Valtz','','27','74'),


(7,'Michael','Paterson','','33','68'),


(8,'Donatan','McCinley','','36','82'),


(9,'George','Jourley','','41','73'),


(10,'Kornelio','Spiterri','','31','77');




(3,'Sydorov','Andrey','Alexeevich'),


(4,'Volkov','Vladimir','Alexandrovich'),


(5,'Smertyn','Venyamin','Ivanovich'),


(1,'Sprint',5,3,'12.02.13',3,'11:00:00'),


(2,'Sprint',4,2,'12.02.13',2,'11:00:00'),


(3,'Sprint',3,5,'12.02.13',4,'11:00:00'),


(4,'Sprint',2,4,'12.02.13',5,'11:00:00'),


(5,'Sprint',1,1,'12.02.13',1,'11:00:00'),


(6,'Open Stakes',5,9,'12.02.15',7,'13:00:00'),


(7,'Open Stakes',4,7,'12.02.15',9,'13:00:00'),


(8,'Open Stakes',3,8,'12.02.15',8,'13:00:00'),


(9,'Open Stakes',2,10,'12.02.15',10,'13:00:00'),


(10,'Open Stakes',1,6,'12.02.15',6,'13:00:00');OK, 10 rows
affected (0.17 sec): 10 Duplicates: 0 Warnings: 0





into price (Price,ID_horse,ID_client) values



Похожие работы на - Разработка структуры базы данных для информационной системы 'Аэропорт' Курсовая работа (т). Информационное обеспечение, программирование.
Реферат: Экспрессионизм во Франции. Скачать бесплатно и без регистрации
Курсовая работа: Репин «Осенний букет» и Серов «Девушка, освещённая солнцем». Сравнительный анализ двух картин. Скачать бесплатно и без регистрации
Контрольная работа: Роль философии в формировании национального самосознания в современной России
Реферат: Разработка антикризисной программы
Реферат по теме Статусы и роли
Реферат по теме Английский менталитет
Контрольная работа по теме Арбитражные суды РФ
Как Стать Хорошим Специалистом Эссе
Реферат по теме Большая Ордынка
Контрольные Работы К Учебнику Мордковича
Практическое задание по теме ТОВАРНАЯ БИРЖА
Инородные Тела Пищевода Реферат
Реферат Культура Речи Особенности
Отчет по практике по теме Анализ производственно-хозяйственной деятельности предприятия
Контрольная работа: Жизнедеятельность бактерий
Итоговые Контрольные Работы 3 Класс Моро
Будущее Вселенной Реферат
Реферат: Основные направления внутренней и внешней политики России после 1991 года
Курсовая работа по теме Каналы утечки и методы несанкционированного доступа к конфиденциальной информации на предприятии
Дипломная работа по теме Рынок корпоративных облигаций России
Доклад: Правоохранительная деятельность
Похожие работы на - Применение интервью в маркетинговом исследовании
Реферат: Report Task The Jesuit Movement Essay Research

Report Page