- •Введение
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей.
- •Системный анализ предметной области
- •Описание предметной области
- •Описание входных документов для заполнения бд
- •Определение пользователей
- •Определение запросов
- •Определение выходных документов
- •Анализ сущностей и связей между ними: er–диаграмма
- •Нормализация отношений: схема бд
- •Запросы
- •Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •Проектирование пользовательского интерфейса
- •6.1 Реализация всех запросов через вызовы хранимых процедур
- •Хранимые процедуры для выдачи требуемых разрешений каждому пользователю
- •6.3 Триггеры для работы пользователей с таблицами базы данных
- •Обработка и визуализация данных
- •7.1 Обработка и визуализация данных инструментами языка программирования Python
- •Визуализация данных программными инструментами Excel
- •Заключение
- •Список использованных источников
- •Приложение а Листинг создания таблиц
- •Приложение б Листинг добавление данных в таблицы
- •Приложение в Скриншоты заполненных таблиц в бд
Обработка и визуализация данных
7.1 Обработка и визуализация данных инструментами языка программирования Python
Была выполнена обработка данных и визуализированы результаты инструментами языка программирования Python.
Был написан код подключения языка программирования Python к Workbench. Код подключения представлен в листинге 34.
Листинг 34 – Код подключения
import matplotlib.pyplot as plt import mysql.connector
# Connect to the database cnx = mysql.connector.connect( user='root', password='admin', host='127.0.0.1', port=3306, database='airport')
# Create a cursor object cursor = cnx.cursor()
# Close the cursor and the connection cursor.close() cnx.close() |
Был написан код для обработки данных и визуализации городов назначения (des_city) по популярности среди пассажиров, сколько людей отправились в ту или иную страну. Код обработки и визуализации данных популярности туров представлен в листинге 35. График популярности представлен на рисунке 40.
Листинг 35 – Код обработки и визуализации данных популярности городов прилёта среди пассажиров
import matplotlib.pyplot as plt import mysql.connector
# Connect to the database cnx = mysql.connector.connect( user='root', password='admin', host='127.0.0.1', port=3306, database='airport')
# Create a cursor object cursor = cnx.cursor()
# execute a query query = ''' SELECT des_city, COUNT(*) as popularity FROM flights GROUP BY des_city ''' cursor.execute(query)
# fetch the results results = cursor.fetchall()
# print the results print(results)
# extract the data from results cities = [r[0] for r in results] popularity = [r[1] for r in results]
# create a bar chart plt.bar(cities, popularity) plt.grid() plt.xlabel('Города прибытия') plt.ylabel('Популярность') plt.show()
# Close the cursor and the connection cursor.close() cnx.close() |
Рисунок 40 – Визуализация городов назначения (des_city) по популярности среди пассажиров
Был написан код для обработки данных и визуализации количества пассажиров мужского и женского пола. Код обработки и визуализации данных представлен в листинге 36. График представлен на рисунке 41.
Листинг 36 – Код обработки и визуализации данных количества пассажиров разного пола
import mysql.connector import matplotlib.pyplot as plt
# Connect to the database cnx = mysql.connector.connect( host='127.0.0.1', user='root', password='admin', database='airport' )
# Create a cursor cursor = cnx.cursor()
# Execute the query query = ''' SELECT gender, COUNT(*) as count FROM passangers GROUP BY gender ''' cursor.execute(query)
# Fetch the results results = cursor.fetchall()
# Create two lists to hold the values labels = [] sizes = []
# Iterate through the results for result in results: labels.append(result[0]) sizes.append(result[1])
# Plot the pie chart plt.pie(sizes, labels=labels, autopct='%1.1f%%') plt.axis('equal') plt.show()
# Close the cursor and connection cursor.close() cnx.close() |
Этот код подключается к базе данных "airport" с помощью библиотеки "mysql.connector" и выполняет запрос для подсчета количества людей с полом "м" и "ж". Затем результаты извлекаются и сохраняются в двух списках: "labels" и "sizes". Затем используется библиотека "matplotlib" для создания круговой диаграммы с данными из этих списков, с метками пола на срезах круга и процентом людей с этим полом, отображаемым в центре каждого среза. Наконец, диаграмма отображается с помощью функции "plt.show()".
Рисунок 41 – Диаграмма о количестве пассажиров мужского и женского пола.
Был написан код для обработки данных и визуализации данных о количестве проданных билетов. Код подключения к MySQL Workbench с помощью библиотеки mysql-connector-python, запроса необходимых данных о количестве проданных билетов по месяцам, и визуализации их с помощью библиотеки matplotlib представлен в листинге 37.
Листинг 37 – Код обработки и визуализации данных о количестве проданных билетов по месяцам
import mysql.connector import matplotlib.pyplot as plt
# Connect to MySQL server cnx = mysql.connector.connect( host='127.0.0.1', user='root', password='admin', database='airport' )
# Create cursor and execute query cursor = cnx.cursor() query = "SELECT DATE_FORMAT(sale_date, '%Y-%m') as month, COUNT(ticket_id) as tickets_sold FROM tikets GROUP BY month ORDER BY month" cursor.execute(query)
# Fetch and store results months = [] tickets_sold = [] for (month, count) in cursor: months.append(month) tickets_sold.append(count)
# Close cursor and connection cursor.close() cnx.close()
# Create subplot fig, axs = plt.subplots(1) axs.plot(months, tickets_sold) axs.grid() axs.set_title("Количество проданных билетов в месяц") axs.set_xlabel("Месяц") axs.set_ylabel("Билетов Продано")
# Show plot plt.show() |
Этот код подключится к серверу MySQL, выполнит запрос для получения количества проданных билетов по месяцам, сохранит результаты в двух отдельных списках (months и tickets_sold), а затем использует метод plot() из matplotlib для создания графика данных и отображения ее в виде вложенного графика. Результат представлен на рисунке 42.
Рисунок 42 – Диаграмма о количестве проданных билетов в месяце