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

6 семестр / БД1

.docx
Скачиваний:
6
Добавлен:
03.06.2024
Размер:
193.81 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

Б.К. Акопян

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1

СВЯЗЬ СУБД MYSQL И PYTHON. ВИЗУАЛИЗАЦИЯ ДАННЫХ В PYTHON.

по курсу: БАЗЫ ДАННЫХ

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

подпись, дата

инициалы, фамилия

Санкт-Петербург 2024

Цель работы:

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

Вариант Занятость актеров театра

На рисунке 1 изображена схема используемой БД.

Рисунок 1 – Модель данных

Ход работы:

Осуществлено подключение к БД, выполнен запрос на выборку всех записей из таблицы Спектакли (Рисунок 2). Листинг кода представлен в приложении.

Рисунок 2 – Результат выборки

Построено 3 графика по таблицам Касса и Спектакли (Рисунок 3-5).

Рисунок 3 – Круговая диаграмма

По диаграмме видно, что среди спектаклей преобладает жанр Драма.

Рисунок 4 – Вертикальный barplot

По графику видно, что в среднем, самые высокие цены на спектакль «Отголоски прошлого», самые низкие на «Шум вокруг ничего».

Рисунок 5 – Горизонтальный barplot

На графике отображено число билетов в кассе на каждый спектакль, видно, что «Преступление и наказание» имеет больше всего билетов.

Вывод:

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

Список используемых источников:

1. A.В. Аграновский, В.В. Боженко, Е.Л. Турнецкая. - Учебно-методическое пособие «Разработка и администрирование базы данных с открытым исходным кодом» ‒ СПб.: ГУАП, 2022

2. Руководство по MySQL: https://metanit.com/sql/mysql.

ПРИЛОЖЕНИЕ

import pandas as pd

import pymysql.cursors

import matplotlib.pyplot as plt

connection = pymysql.connect(host = '127.0.0.1',

user = 'root',

password = 'root',

db ='theatre',

charset ='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

with connection.cursor() as cursor:

sql = "SELECT * FROM касса "

cursor.execute(sql)

rows = cursor.fetchall()

df_kassa = pd.DataFrame(rows)

sql = "SELECT * FROM спектакли "

cursor.execute(sql)

rows = cursor.fetchall()

df_spektakli = pd.DataFrame(rows)

connection.close()

print(df_spektakli)

genre_count = df_spektakli['Жанр'].value_counts()

plt.figure()

plt.pie(genre_count, labels=genre_count.index, autopct='%1.1f%%')

plt.legend(fontsize = 10, bbox_to_anchor=(1, 1))

plt.textprops={'size': 'x-large'}

plt.title('Число спектаклей по жанрам')

df_mean=df_kassa.pivot_table(index='Спектакль', values='Цена', aggfunc='mean').reset_index()

print(df_mean)

plt.figure()

plt.bar(df_mean['Спектакль'],df_mean['Цена'])

plt.tick_params(axis='x',rotation=15)

plt.title('Средняя цена билета на спектакль')

df_count=df_kassa['Спектакль'].value_counts().reset_index()

print(df_count)

plt.figure()

plt.barh(df_count['Спектакль'],df_count['count'])

plt.title('Число билетов в кассе на спектакль')

plt.show()

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