
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА 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)
|