Авиакомпания осуществляет продажу билетов на рейсы в ближайшие три месяца.
Разработать базу данных аэропортов. База хранит расписание рейсов, сведения о проданных местах, и служит для оперативного выбора рейса и заказа билетов. Пользователями базы являются: администратор (редактирует расписание и маршруты, анализирует статистику рейсов); кассиры (продают билеты на рейсы на ближайшие три дня) и пассажиры (просматривают расписание, через справочную систему выбирают оптимальный рейс до нужного им населенного пункта, смотрят количество свободных мест).
В базе данных также хранится информация обо всех самолетах парка: марка, сведения о водителях, количество посадочных мест, пригоден ли самолет в данный момент к эксплуатации или находится на ремонте. Расписание составляется в двух вариантах:
1) расписание общее (пункт назначения, время и номер рейса);
2) расписание каждого аэропорта на ближайший день.
Описание предметной области
Аэропорт – представляет собой комплекс сооружений, включающий в себя аэродром, аэровокзал, другие сооружения, предназначенные для приема и отправки воздушных судов, обслуживания воздушных перевозок и имеющий для этих целей необходимые оборудование.
Аэропорт – сложный и многоплановый технологический механизм, и эффективное управление им – сложная задача. И чем больше аэропорт и мощнее пассажиропоток, тем важнее становится оперативный контроль над всеми процессами, происходящими в аэропорту и тем выше цена любой ошибки. По оценкам ассоциации Airports Council International (ACI), к 2025 г. объем пассажирских перевозок вырастет примерно вдвое – до 9 млрд. пассажиров в год.
Задача, стоящая перед компанией, управляющей аэропортовым комплексом, сложна еще и потому, что приходится учитывать особенности работы с несколькими разнородными категориями клиентов – в их число входят пассажиры, люди, встречающие и провожающие пассажиров, авиаперевозчики и внешние провайдеры бизнес-услуг.
Приоритеты в выборе направлений развития, ввиду разного географического положения, требований, предъявляемых работающими в аэропорту авиакомпаниями, финансовых возможностей и т. д., могут меняться, но есть нечто общее – основные резервы лежат в области информационных технологий.
Область понятий рейсы включает в себя данные по самолетам, облуживающие данные направления, аэропорт вылета и аэропорт прилета.
Область понятия Самолеты включает в себя идентификатор самолета и рейса, имя самолета и его вместимость
Область понятий места обозначает занято или свободно место.
Область понятий стоимость указывает в зависимости от рейса и самолета, обслуживающего данный рейс, занято то или иное место или нет.
Область понятий пассажир содержит данные о конкретном пассажире заданного рейса. В случае, если пользователь пользуется 2 разными рейсами он все равно вносится в данную таблицу.
Область понятий рейсы из самолетов необходимо для сопоставления самолета и рейса.
Область понятий аэропорты включает в себя данные о городе и адресе аэропорта.
Описание словаря понятий и терминов
Рейс – путь транспортного средства по определённому маршруту.
Самолет – воздушное судно.
Место – место в самолете
Стоимость – стоимость полета на самолете.
Пассажир – человек, который не является членом экипажа и который перевозится транспортным средством в соответствии с гласным или негласным договором перевозки.
Аэропорт – это воздушный порт.
Концептуальная модель (ER-диаграмма)
В результате был получен следующая БД с 7 таблицами
Наполним таблицы значениями
Пример кода наполнения таблиц:
INSERT INTO `airoport` (`id_airoport`, `city`, `adress`) VALUES (’2′, ‘Moscow’, ‘Vnukovo’);
В результате наполнения выполним поиск по таблице аэропортов москвы
SELECT * FROM `airoport` WHERE `city` LIKE ’Moscow’
В ходе выполнения работы мы создали пользователя «user» с паролем «1»
CREATE USER ‘user’@’%’ IDENTIFIED WITH mysql_native_password;GRANT SELECT ON *.* TO ‘user’@'%’ REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;SET PASSWORD FOR ‘user’@'%’ = ‘***’;CREATE DATABASE IF NOT EXISTS `user`;GRANT ALL PRIVILEGES ON `user`.* TO ‘user’@'%’;GRANT ALL PRIVILEGES ON `reysy`.* TO ‘user’@'%’;
Существует также автоматически созданный администратор с логином root
Данный пользователь умеет исключительно искать рейсы по городам вылета и приземления.
Добавим пользователя kassir c пустым паролем
CREATE USER ’kassir’@’%’ IDENTIFIED WITH mysql_native_password;GRANT SELECT, INSERT, UPDATE ON *.* TO ‘kassir’@'%’ REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;SET PASSWORD FOR ‘kassir’@'%’ = ‘***’;GRANT ALL PRIVILEGES ON `user`.* TO ‘kassir’@'%’;
Попробуем добавить данные в таблицу planes
Курсор неактивен, поэтому изменения невозможны.
Попробуем провести поиск
Данные функции о разграничении пользователей были применены в самом оконном приложении.
Была создана стартовая форма для логина.
Существует 3 профиля:
root-администратор
Kassir-продавец
User1-пользователь
Для удобства системы была использована система mydac 10.1 for Delphi 7. Преимущество данной системы в обработке данных между формой и базой данных. Например, для администратора существует весь объем информации, который он может редактировать с автогенерирующимся запросами на основании внесенных изменений в DataGrid.
Для кассира существует такая же система, но ему запрещено удалять и видоизменять строки(данные функции возложены исключительно на администратора).
Форма для пользователя представляет следующий вид
Попробуем поменять маршрут на Москва-Курск.
Для удобства отладки программы в техническом режиме существует вывод запроса.
В результате работы были рассмотрены метод создание возможности авторизации для пользователей, а так же создание программы используя язык Delphi и технологий MySQL.
Библиографический список
- Рудикова Л.В., Базы данных. Разработка приложений для студента / Л.В. Рудикова – СПб.: БХВ-Петербург, 2006. – 496 с.
- Все о SQL и клиент/серверных технологиях [электронный ресурс]: /Internet. – http://sql.ru , 2006.
- Все о Delphi [электронный ресурс]: /Internet. – http://delphisource.ru , 2007.
- Все о Delphi от Чертенка [электронный ресурс]: /Internet. – http://delphi.chertenok.ru , 2007.
- Мастера Delphi (исходники, документация) [электронный ресурс]: /Internet.- http://delphi.master.ru , 2006.
- Форум программистов и сисадминов Cyberforum.ru [Электронный ресурс]