- •Введение
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей.
- •Системный анализ предметной области
- •Описание предметной области
- •Описание входных документов для заполнения бд
- •Определение пользователей
- •Определение запросов
- •Определение выходных документов
- •Анализ сущностей и связей между ними: er–диаграмма
- •Нормализация отношений: схема бд
- •Запросы
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •Проектирование пользовательского интерфейса
- •6.1 Реализация всех запросов через вызовы хранимых процедур
- •Хранимые процедуры для выдачи требуемых разрешений каждому пользователю
- •6.3 Триггеры для работы пользователей с таблицами базы данных
- •Обработка и визуализация данных
- •7.1 Обработка и визуализация данных инструментами языка программирования Python
- •Визуализация данных программными инструментами Excel
- •Заключение
- •Список использованных источников
- •Приложение а Листинг создания таблиц
- •Приложение б Листинг добавление данных в таблицы
- •Приложение в Скриншоты заполненных таблиц в бд
Визуализация данных программными инструментами Excel
Чтобы визуализировать данные объектов базы данных "airport" с помощью инструментов Excel, необходимо сначала экспортировать данные из базы данных в файл Excel. В MySQL Workbench мы можем экспортировать данные из таблицы, щелкнув правой кнопкой мыши на имени таблицы и выбрав "Table Data Export Wizard". Откроется мастер, где мы можем выбрать формат экспортируемого файла. Затем можно выбрать конкретные столбцы и строки, которые необходимо экспортировать, и указать место сохранения файла. После завершения экспорта вы можете открыть файл в Excel и использовать инструменты визуализации данных для создания диаграмм и графиков.
Чтобы создать диаграмму или график, необходимо выбрать данные, которые необходимо включить, а затем с помощью вкладки "Вставка" выбрать тип визуализации, которую вы хотите создать. После этого Excel создаст диаграмму или график и позволит настроить его по своему усмотрению. Также можно использовать вкладки "Дизайн" и "Формат" для дальнейшего форматирования и настройки диаграммы или графика.
Результат визуализации данных в Excel представлен на рисунках 43-46.
Рисунок 43 – Визуализация количества мест для каждого типа самолёта
Рисунок 44 – Визуализация количества рейсов по городам прибытия
Рисунок 45 – Визуализация количества сотрудников по должностям
Рисунок 46 – Визуализация количества самолётов по фирмам-производителям
Заключение
В этой курсовой работой передо мной была поставлена задача создать базу данных для обслуживания рейсов в аэропорту. Конечный продукт, названный "airport", представляет собой комплексную и организованную систему, которая эффективно хранит и управляет всей необходимой информацией для работы аэропорта.
Для начала я создал несколько таблиц, включая "авиакомпании", "самолеты", "сотрудники", "экипажи", "рейсы", "пассажиры" и "билеты". В этих таблицах эффективно хранится вся необходимая информация для работы аэропорта, такая как информация об авиакомпаниях, данные о самолетах, информация о сотрудниках, расписание рейсов, информация о пассажирах и информация о билетах. Я также установил связи между этими таблицами, чтобы обеспечить ссылочную целостность и сделать поиск данных более эффективным.
У меня возникли сложности со связью «экипажи», поскольку в каждом экипаже должно содержаться определённое количество сотрудников, при этом стюардесс может быть несколько. И у меня нет полного понимания как утроены в аэропортах экипажи – могут ли сотрудники входить в несколько команд или за ними всегда закрепляется одна группа. Соответственно, для упрощения я решил считать, что один сотрудник может состоять только в одном экипаже и никак иначе. В свою очередь, таблица «экипажи» послужила только для хранения ID экипажа как ПК и использования в других таблицах для установления связи. Возможно, данную базу данных можно было бы реализовать и как-нибудь по-другому, но я считаю, что хорошо справился с поставленной задачей и в таком виде база данных работает корректно. При желании и, самое главное, времени можно было бы создать дополнительные триггеры для проверки количества определённых должностей в экипаже (чтобы было по одному представителю каждой должности, но могло быть несколько стюардесс), триггер для проверки доступности экипажа (свободен ли экипаж в данный момент или находится в рейсе) – но для второго триггера нужно учитывать ещё и возвращение экипажа обратно, когда как моя курсовая работа ограничивалась лишь обслуживанием одного конкретного аэропорта. Если представлять глобально, то сделать так, чтобы у каждого аэропорта была своя база данных и сделать синхронизацию между ними – а это намного сложнее задача.
Затем я создал различные запросы для получения конкретной информации из базы данных. Запросы создавать было не очень сложно. Для меня самой сложной частью оказалось продумывание связей таблицы и заполнение их корректными данными. Если данные будут не похожи на достоверные или их будет очень мало, то следующее выполнение задач будет затруднительным. Объём работы оказался довольно большим. Возвращаясь к запросам, они включают получение информации о пассажирах для конкретного рейса, списка самолетов по годам выпуска в определенный интервал времени конкретной авиакомпании, списка экипажа для данного рейса, проданных билетов для каждой авиакомпании за определенный период, зарезервированных мест для каждого пассажира, информации о рейсах в определенный пункт назначения и свободных мест для данного рейса и даты. Я также создал 3 более сложных запроса, которые ранее не использовались.
Кроме того, я создал хранимые процедуры для всех вышеупомянутых запросов. Эти процедуры обеспечивают легкий доступ к информации, полученной с помощью запросов, а также включают обработку ошибок при получении пустых результатов. Более того, я также добавил возможность ввода значений переменных для процедур, таких как начало и конец года, flight_id и т.д.
Для обеспечения безопасности и целостности данных я также создал различные триггеры. Эти триггеры включают проверку достоверности введенных значений для каждой таблицы, проверку ссылочной целостности данных, а также триггеры для автоматического обновления или добавления данных. Например, я создал триггер, который не позволяет пассажиру купить билет, если до вылета остается 3 или менее часов.
Наконец, я также продемонстрировал, как визуализировать данные из базы данных "Аэропорт" с помощью Python и Excel. Я использовал библиотеки Python, такие как matplotlib и pandas, для визуализации таких данных, как количество рейсов в месяц и количество проданных билетов по месяцам. Я также показал, как экспортировать данные из MySQL Workbench в файл Excel для дальнейшей визуализации и анализа данных.
В целом, эта курсовая работа стала для меня прекрасной возможностью приобрести и закрепить новые навыки в создании баз данных, составлении запросов, хранимых процедур, триггеров и визуализации данных. База данных "Аэропорт" представляет собой хорошо продуманную и функциональную систему, которая эффективно хранит и управляет всей необходимой информацией для работы аэропорта. Я уверен, что эта база данных окажет большую помощь в эффективном и организованном управлении аэропортом.