- •Ход работы
- •Связь Python с бд в MySql
- •Код для запроса на выборку и скриншот результата
- •Текстовое описание созданных запросов, sql-код, скриншоты полученных графиков и пояснения к ним
- •Заключение
- •Список использованных источников
- •Приложение а Полный листинг кодов
- •Приложение б Скриншоты заполненных таблиц в бд
Заключение
В заключение следует отметить, что целью данной лабораторной работы было установление связи между базой данных MySQL и Python, извлечение данных из таблиц базы данных и проведение анализа данных с использованием визуализации в Python. Для достижения этой цели были предприняты следующие шаги:
Использование предметной области и базы данных, созданной в этом семестре в MySQL, описание предметной области в отчете и предоставление схемы данных из MySQL Workbench.
Установление соединения между Python и базой данных MySQL.
Выполнение одного запроса для выборки всех данных из одной таблицы базы данных и демонстрация результата (вывод таблицы в Python).
Выполнение трех запросов в скрипте Python с использованием агрегатных функций, сортировки и группировки для базы данных, результаты которых можно представить в виде графика или гистограммы.
В результате проделанной работы я смогл успешно соединить Python с базой данных MySQL, извлечь данные из таблиц и выполнить анализ данных с помощью визуализации в Python. Использование агрегатных функций, сортировки и группировки позволило мне получить новое представление о данных и представить их в наглядном и визуально привлекательном виде. В целом, эта лабораторная работа стала ценным опытом использования баз данных и Python для анализа и визуализации данных, и она будет полезна для будущих проектов.
Список использованных источников
Борисов Б.Н. Основы теории алгоритмов. – М.: Вильямс, 2006. – 704 с.
Кормен Т. Алгоритмы: построение и анализ. – М.: Питер, 2007. – 768 с.
Шеннон Д. Грокаем алгоритмы. – М.: Питер, 2019. – 480 с.
1 С. Котеров, С. Герасимов, Д. Кузнецов и др. MySQL. Руководство для начинающих / Пер. с англ. – М.: ДМК Пресс, 2016. – 704 с.
М. Лутц. SQL на примерах / Пер. с англ. – М.: Вильямс, 2016. – 864 с.
Р. Фейертаг. SQL. Объектно-реляционное моделирование / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Основы языка / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Руководство для начинающих / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Р. Фейертаг. SQL. Экспертное программирование / Пер. с англ. – М.: ДМК Пресс, 2016. – 496 с.
Курсы по SQL. URL: https://www.w3schools.com/sql/ (дата обращения: 23.01.2023)
Руководство по SQL. URL: https://www.postgresqltutorial.com/postgresql-tutorial/ (дата обращения: 23.01.2023)
Приложение а Полный листинг кодов
Листинг А.1 – Код обработки и визуализации данных популярности городов прилёта среди пассажиров
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() |
Листинг А.2 – Код обработки и визуализации данных количества пассажиров разного пола
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() |
Листинг А.3 – Код обработки и визуализации данных о количестве проданных билетов по месяцам
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() |