Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чурилов / 4 курс / Z9411_Чурилов_БазыДанных_ЛР2

.docx
Скачиваний:
4
Добавлен:
10.11.2024
Размер:
169.03 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА 41

ОЦЕНКА

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

кандидат техн. наук

Е.Л. Турнецкая

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

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

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

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

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

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

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

СТУДЕНТ ГР. №

Z9411

А.С.Чурилов

номер группы

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

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

Студенческий билет № 2019/3684

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

Цель работы:

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

Ход работы:

Телевизионная компания.

Вы являетесь руководителем коммерческой службы телевизионной компании. Вашей задачей является отслеживание расчетов, связанных с прохождением рекламы в телеэфире. Работа построена следующим образом: заказчики просят поместить свою рекламу в определенной передаче в определенный день. Каждый рекламный ролик имеет определенную продолжительность. Для каждой организации–заказчика известны банковские реквизиты, телефон и контактное лицо для проведения переговоров. Передачи имеют определенный рейтинг. Стоимость минуты рекламы в каждой конкретной передаче известна (определяется коммерческой службой, исходя из рейтинга передачи и прочих соображений). Также необходимо хранить информацию об агентах, заключивших договоры на рекламу. Зарплата рекламных агентов составляет некоторый процент от общей стоимости рекламы, прошедшей в эфире.

Схема данных (Рисунок 1).

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

Связал R studio с базой данных и вывел таблицу (Рисунок 2).

Рисунок 2 – Вывод таблицы из базы данных

Запрос с агрегатной функцией – данная команда подсчитывает количество строк таблицы (Рисунок 3).

Рисунок 3 – Агрегатные функции

Запрос с группировкой – данная команда осуществляет поиск по столбцу с процентом, выводит значения, где процент больше 16 (Рисунок 4).

Рисунок 4 – Группировка

Запрос с группировкой – единичный вывод данных из таблицы (Листинг 3, Рисунок 5).

Рисунок 5 – Группировка

Создал графики с помощью ggplot2, а именно Процентная ставка (Рисунок 6-7), выводится Имя агента и идет сравнение по его процентной ставке.

Рисунок 6 – Процентная ставка

Рисунок 7 – Процентная ставка

Вывод:

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

Приложение А

library(RMySQL)

library(ggplot2)

library(plotly)

con <- dbConnect(RMySQL::MySQL(), user='root', password='admin',

dbname='tv', host='127.0.0.1')

#1

res <- dbSendQuery(con, " select * from customer ;")

stat <- dbFetch(res)

dbClearResult(res)

stat

#2

res <- dbSendQuery(con, " select count(*) from customer;")

stat <- dbFetch(res)

dbClearResult(res)

stat

#3

res <- dbSendQuery(con, " SELECT * FROM agent where Agent_Percent>16 order by agent.agent_id;")

stat <- dbFetch(res)

dbClearResult(res)

stat

#4

res <- dbSendQuery(con, " select * from customer group by customer_id;")

stat <- dbFetch(res)

dbClearResult(res)

stat

#5

res <- dbSendQuery(con, " select agent_lastName, agent_percent from agent ;")

stat <- dbFetch(res)

dbClearResult(res)

stat

pie(stat$agent_percent, stat$agent_lastName)

#6

barplot(stat$agent_percent,names.arg = stat$agent_lastName)