Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс 1 семестр / Лабораторные / Z9411_КафкаРС_БД_ЛР1.docx
Скачиваний:
12
Добавлен:
24.10.2023
Размер:
680.71 Кб
Скачать

Заключение

В заключение следует отметить, что целью данной лабораторной работы было установление связи между базой данных 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()

Соседние файлы в папке Лабораторные