Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6 СЕМЕСТР / ЛР / ЛР1 / ЛР_№1_БД_2семестр_СвязьMySQL-Python

.pdf
Скачиваний:
14
Добавлен:
25.06.2023
Размер:
209.42 Кб
Скачать

Лабораторная работа № 1

Связь СУБД MySQL и Python. Визуализация данных в Python.

Цель работы: произвести связь базы данных в MySQL и Python, извлечь данные из таблиц базы данных и выполнить анализ данных в БД с помощью визуализации в Python.

Теоретическая часть:

Библиотеки, которые нужны в Python:

Pymysql для соединения с БД

Matplotlib для графиков

Pandas для работы с данными

По желанию вы можете использовать другие библиотеки для графиков и работы с данными.

Стандартный вариант соединения Python с БД в MySQL: import pandas as pd

import pymysql.cursors

import matplotlib.pyplot as plt

# Подключение к базе данных:

connection = pymysql.connect(host = '127.0.0.1', user = 'root', password = '',

db ='cinema1', # название базы

данных

charset ='utf8mb4', cursorclass =

pymysql.cursors.DictCursor)

Обратим внимание, что пароль (password) – это тот пароль, который вы используете в СУБД MySQL, он не обязательно будет пустым.

db – это название базы данных, к которой вы хотите получить доступ. Далее мы можем в Python использовать SQL-запрос на выборку данных. Один из возможных примеров кода приведен ниже:

with connection.cursor() as cursor: sql = "SELECT * FROM film " #запросSQL

#Выполнениекомзапросанды(

Execute Query)

cursor.execute(sql)

 

rows = cursor.fetchall()# получениевсехтрочек

df = pd.DataFrame(rows)получение#таблицысданными

(DataFrame),

SQL

#котсодреаяржитзультатвыполнениязапроса

#тоесть(всезаписиизтаблицы

film)

#Закрытсоед(Closeинения connection). connection.close()

print(df)

sql – это тот запрос, который вы хотите применить к БД. В данном примере показан простейший запрос на выборку всех данных из таблицы film.

Создавать датафрейм с помощью библиотеки pandas необязательно, но использование датафреймов позволяет проще работать с данными и затем строить графики.

Построим для примера простейший график (гистограмму).

#Построениеграфика: plt.figure()

plt.tick_params(axis='x',rotation=90)пово#дписиросит хнаградусов90

plt.bar(df['name_film'],df['duration_film'])гистограмм# а

фильмовпопродолжительности plt.выводshow()гистограммы#

Результат выполнения программы: гистограмма, где по «оси х» указаны фильмы, а по «оси у» их продолжительность.

Рисунок 1 – Гистограмма

Порядок выполнения работы:

1.Использовать предметную область и БД, созданную в предыдущем семестре в СУБД MySQL. Описать вашу предметную область в отчете, обязательно предоставить схему данных из MySQL Workbench. Возможно вам потребуется заполнить таблицы бОльшим количеством данных для наглядности.

2.Осуществить связь Python и вашей БД в MySQL.

3.Выполнить один запрос на выборку всех данных из одной таблицы на выбор в вашей БД, продемонстрировать результат (вывод таблицы в Python).

4.Выполнить 3 запроса в скрипте Python с использованием агрегатных функций, сортировки, группировки для вашей БД, результаты которых можно представить в виде графика или гистограммы.

Например, в рамках БД с фильмами можно:

вывести гистограмму среднего рейтинга фильмов по таблице с отзывами,

выявить топ 5 наиболее популярных фильмов и построить гистограмму с количеством просмотров только этих фильмов,

посчитать суммарную выручку по каждому фильму за период,

посчитать выручку по жанрам, просмотры по жанрам и т.д.

Для своей БД вам необходимо самостоятельно придумать полезные запросы, которые могут использоваться для получения той или иной статистики в вашей предметной области.

5. Выполнить визуализацию с помощью Python.

Графики должны быть наглядными, график обязательно должен иметь заголовок, подписи к осям, а также отображать показательные значения (например, название фильма, а не id фильма).

Обязательно сделать графики двух разных видов (примеры: горизонтальная и вертикальная столбчатая диаграмма, групповая столбчатая диаграмма, круговая диаграмма, график). Можно сделать несколько линий на одном графике, при необходимости использовать легенду и любые другие возможности matplotlib.

6. К полученным графикам необходимо дать пояснения, прокомментировать результаты.

Содержание отчета:

1.Титульный лист.

2.Цель работы.

3.Вариант задания (описание вашего варианта: тема работы, описание предметной области, а также схема данных).

4.Ход работы: пояснения по ходу выполнения работы.

4.1Код для запроса на выборку и скриншот результата (пункт 3).

4.2Текстовое описание созданных запросов, SQL-код, скриншоты полученных графиков и пояснения к ним (пункты 4-6).

5. Полный листинг с комментариями (в виде текста, не скриншотами). Выносится в приложение.

6. Вывод в развернутом формате с описанием результатов работы.

7. Список источников.

Все пункты отчета являются обязательными и при отсутствии какого-то из пунктов лабораторная работа либо не будет принята, либо оценка за работу будет снижена. Также в тексте отчетов необходимо приводить пояснения по ходу выполнения работы, обязательно ссылаться в тексте отчета на рисунки, таблицы и листинги.

Соседние файлы в папке ЛР1