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

6 СЕМЕСТР / ЛР / ЛР8 / ЛР_№8_БД_2семестр_Визуализация_Python_PostgreSQL

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

Лабораторная работа № 8 Визуализация данных из СУБД PostgreSQL в Python

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

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

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

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

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

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

Соединение Python и PostgreSQL вам уже знакомо по предыдущей ЛР.

Приведем код подключения к PostgreSQL, выполнения запроса на выборку данных из таблицы и визуализацию в виде гистограммы.

import pandas as pd

import psycopg2

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

connection = psycopg2.connect(database="database1", # название базы данных

user="postgres",

password="admin",

host="127.0.0.1",

port="5432")

cursor = connection.cursor()

sql = "SELECT * FROM jobs " # запрос SQL

df = pd.read_sql_query("SELECT * FROM jobs ", connection) print(df)

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

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

plt.bar(df['jobгистограммафильмовпоid'],df['min_salary']) #

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

Принцип похож с тем, что было сделано в лабораторной работе с визуализацией данных из MySQL.

1

Рисунок 1 – Результат построения гистограммы

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

1.Использовать БД, созданную в предыдущей ЛР (employees, departments, jobs, locations). Обязательно предоставить схему данных в отчете.

2.Осуществить связь Python и БД в PostgreSQL.

3.Необходимо выполнить запросы по вариантам и построить графики по результатам этих запросов в Python.

Задания по вариантам представлены в Таблице 1. Распределение вариантов согласно списку (в материалах выложено распределение вариантов ко всем ЛР).

В результате у каждого студента будет минимум 4 графика.

Таблица 1 – Варианты заданий

Вариа Формулировка запросов нты:

11 По оси х – фамилия имя менеджера, по оси у – количество сотрудников, у которых он является менеджером.

2 По оси х – должность сотрудника, по оси у средняя зарплата сотрудников на этой должности.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех менеджеров, а только количество сотрудников, у которых больше определенного числа (на ваш выбор), во втором запросе выводить среднюю зарплату из выбранного диапазона.

построить любой график, используя locations

на оценку 4:

2

добавить условие – в первом запросе выводить не всех менеджеров, а только количество сотрудников, у которых больше определенного числа (на ваш выбор), во втором запросе выводить среднюю зарплату из выбранного диапазона.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations.

21 По оси х – фамилия имя менеджера, по оси у – средняя зарплата по отделу, в котором этот менеджер главный.

2 По оси х – должность сотрудника, по оси у – количество сотрудников, которые работают на этой должности.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех менеджеров, а только со средней зарплатой определенного диапазона (на ваш выбор),во втором запросе выводить не все должности, а должности, где количество сотрудников больше или меньше определенного числа.

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не всех менеджеров, а только со средней зарплатой определенного диапазона (на ваш выбор), во втором запросе выводить не все должности, а должности, где количество сотрудников больше или меньше определенного числа.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

31 По оси х – имя сотрудника, по оси у – количество сотрудников с таким именем.

2 По оси х – должность сотрудника, по оси у – суммарная заработная плата сотрудников, которые работают на этой должности.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех сотрудников, а только с определенным списком имен (любое условие на ваш выбор), во втором запросе выводить не все должности, а должности, где суммарная заработная плата принадлежит определенному диапазону.

построить любой график, используя locations

на оценку 4:

3

добавить условие – в первом запросе выводить не всех сотрудников, а только с определенным списком имен (любое условие на ваш выбор), во втором запросе выводить не все должности, а должности, где суммарная заработная плата принадлежит определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

41 По оси х – название отдела, по оси у – средняя зарплата сотрудников по каждому отделу.

2 По оси х – должность сотрудника, по оси у – максимальная зарплата сотрудников этих профессий.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не все отделы, а только со средней зарплатой определенного диапазона (на ваш выбор), во втором запросе выводить не все должности, а только с суммарной зарплатой определенного диапазона (на ваш выбор),

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не все отделы, а только со средней зарплатой определенного диапазона (на ваш выбор), во втором запросе выводить не все должности, а только с суммарной зарплатой определенного диапазона (на ваш выбор),

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

51 По оси х – фамилия имя менеджера, по оси у – максимальная зарплата по отделу, в котором этот менеджер главный.

2 По оси х – название отдела, по оси у – минимальные зарплаты по отделам. 3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех менеджеров, а только максимальной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все отделы, а отделы, где минимальные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 4:

4

добавить условие – в первом запросе выводить не всех менеджеров, а только максимальной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все отделы, а отделы, где минимальные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

61 Найти разницу между зарплатой начальников и средней зарплатой их подчиненных. Построить график, на оси х – фамилия имя начальника, на оси y – разница между зарплатой начальника и средней зарплатой подчиненных.

2 По оси х – название отдела, по оси у – суммарные зарплаты по отделам. 3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех начальников, а только

сразницей зарплат из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все отделы, а отделы, где суммарные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не всех начальников, а только

сразницей зарплат из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все отделы, а отделы, где суммарные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

71 По оси х – фамилия имя менеджера, по оси у – суммарные зарплаты сотрудников, у которых он является менеджером.

2 По оси х – должность сотрудника, по оси у – минимальная зарплата сотрудников этих профессий.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех менеджеров, а только с суммарной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все должности, а должности, где минимальные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

5

на оценку 4:

добавить условие – в первом запросе выводить не всех менеджеров, а только с суммарной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все должности, а должности, где минимальные заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

81 Найти количество сотрудников, в должности которых фигурирует слово «Manager», найти количество сотрудников в должности которых фигурирует «Clerk», найти количество сотрудников, в должности которых фигурирует «President», построить гистограмму с 4 столбцами (Manager, Clerk, President, Other), по оси у – количество сотрудников.

2 По оси х – должность сотрудника, по оси у – разница между минимальной и максимальной зарплатой на этой должности (используя только таблицу jobs).

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не все столбцы, а только те категории, где количество сотрудников больше определенного числа (на ваш выбор), во втором запросе выводить не все должности, а должности, где разница зарплат принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не все столбцы, а только те категории, где количество сотрудников больше определенного числа (на ваш выбор), во втором запросе выводить не все должности, а должности, где разница зарплат принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

91 По оси х – фамилия имя менеджера, по оси у – минимальная зарплата по отделу, в котором этот менеджер главный.

2 Найти количество сотрудников, в должности которых фигурирует слово «Manager», найти количество сотрудников в должности которых фигурирует «Clerk», найти количество сотрудников, в должности которых фигурирует «President», построить гистограмму с 4 столбцами (Manager, Clerk, President, Other), по оси у – максимальная зарплата сотрудников по каждой группе.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

6

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не всех менеджеров, а только

сминимальной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все категории, а отделы, где максимальная заработная плата принадлежит определенному диапазону.

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не всех менеджеров, а только

сминимальной зарплатой из определенного диапазона (любое условие на ваш выбор), во втором запросе выводить не все категории, а отделы, где максимальная заработная плата принадлежит определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

101 По оси х – название отдела, по оси у – количество сотрудников.

2 Найти количество сотрудников, в должности которых фигурирует слово «Manager», найти количество сотрудников в должности которых фигурирует «Clerk», найти количество сотрудников, в должности которых фигурирует «President», построить гистограмму с 4 столбцами (Manager, Clerk, President, Other), по оси у – средняя зарплата сотрудников по каждой группе.

3 Выполнить модификацию первых двух графиков:

3.1 – сделать гистограмму горизонтальной (поменять х и у), изменить цвета, 3.2

на оценку 3 что-то одно:

добавить условие – в первом запросе выводить не все отделы, а только отделы, где количество сотрудников принадлежит определенному диапазону (любое условие на ваш выбор), во втором запросе выводить не все категории,

акатегории, где средние заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 4:

добавить условие – в первом запросе выводить не все отделы, а только отделы, где количество сотрудников принадлежит определенному диапазону (любое условие на ваш выбор), во втором запросе выводить не все категории,

акатегории, где средние заработные платы принадлежат определенному диапазону.

построить любой график, используя locations

на оценку 5:

создать процедуру/функцию, которая позволит строить графики для любого числа в условии.

построить любой график, используя locations

7

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

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

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

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

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

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

3.Вариант задания (тема работы, схема данных, описание запросов из Таблицы 1).

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

4.1 Текстовое описание созданных запросов, SQL-код, скриншоты полученных графиков и пояснения к ним. Минимум должно быть 4 графика.

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

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

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

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

8

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