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

6 СЕМЕСТР / ЛР / ЛР8 / БД ЛР8

.pdf
Скачиваний:
10
Добавлен:
25.06.2023
Размер:
1.15 Mб
Скачать

ГУАП

КАФЕДРА № 41

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

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

ассистент

 

 

 

В.В. Боженко

 

 

 

 

 

 

 

 

 

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

 

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

 

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

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

ВИЗУАЛИЗАЦИЯ ДАННЫХ ИЗ СУБД POSTGRESQL В PYTHON

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

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

СТУДЕНТ ГР. №

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

 

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

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

Цель работы

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

Индивидуальный вариант

Индивидуальный вариант №10

Формулировка запросов:

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

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

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

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

цвета;

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

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

Исходные данные

Схема дынных БД «students» в соответствии с рисунком 1.

Рисунок 1 – Схема данных

2

Ход работы

1) Осуществили связь Python и БД в PostgreSQL и выполнили простой запрос на выборку всех данных из таблицы «jobs» для проверки соединения в соответствии с рисунком 2. Код всех пунктов находится в Приложении А.

Рисунок 2 – Результат соединения и запроса в БД PostgreSQL из кода Python

3

2)Выполнили запросы в соответствии с индивидуальным вариантом

ипостроили графики по результатам этих запросов в Python.

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

Рисунок 3 – Код, график и результат первого запроса

4

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

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

Рисунок 4 – Код, график и результат второго запроса

5

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

Cделали гистограмму горизонтальной и изменили цвета, результат модификации в соответствии с рисунками 5-6.

Рисунок 5 – Модифицированный график первого запроса

Рисунок 6 – Модифицированный график второго запроса

6

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

Измененный первый запрос добавили в функцию fn_worker_in_cnt_range. Код создания в соответствии с рисунком 7.

Рисунок 7 – Код создания функций fn_worker_in_cnt_range

Вызвали функцию fn_worker_in_cnt_range из кода Python в соответствии с рисунком 8.

Рисунок 8 – Результаты вызова функций fn_worker_in_cnt_range

7

Нарисовали график для результата функции fn_worker_in_cnt_range. Код для отображения графика и сам график в соответствии с рисунком 9.

Рисунок 9 – Результаты вызова функций fn_worker_in_cnt_range

Добавили условие – во второй запрос выводить не все категории, а

категории, где средние заработные платы принадлежат определенному диапазону. Измененный второй запрос добавили в функцию fn_worker_in_cnt_range. Код создания в соответствии с рисунком 10.

Рисунок 10 – Код создания функций fn_worker_in_salary_range

8

Вызвали функцию fn_worker_in_salary_range из кода Python в

соответствии с рисунком 11.

Рисунок 11 – Результаты вызова функций fn_worker_in_salary_range

Нарисовали график для результата функции fn_worker_in_salary_range.

Код для отображения графика и сам график в соответствии с рисунком 12.

Рисунок 12 – Результаты вызова функций fn_worker_in_salary_range

9

Выполнил запрос с использованием таблицы locations. Запрос находит среднюю зарплату сотрудников по городам. Поданным запроса построил гистограмму. Код, результат запроса и его график в соответствии с рисунком 13.

Рисунок 13 – Запрос, его результат и график

10

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