Распределенные базы данных. Лабораторный практикум
.pdf
ЛАБОРАТОРНАЯ РАБОТА № 11
Знакомство с MySQL, роли пользователей
Для выполнения заданий можно воспользоваться онлайн-демо-
версией phpMyAdmin4 (сервер MySQL):
•пользователь: root;
•без пароля.
Это онлайн-сервер, поэтому не удаляйте никаких пользователей и чужие БД. Ваша БД и пользователи, которых вы создали, удалятся автоматически примерно через час.
В отчет вставьте скриншоты по каждому пункту из задания. Также для выполнения данной лабораторной работы можно ис-
пользовать MySQL Workbench.
MySQL5 – это СУБД обеспечение с открытым исходным кодом, рас- пространяемое в соответствии с общедоступной лицензией GNU GPL. Также возможна работа с MySQL по коммерческой лицензии, что по- зволяет обойти некоторые недостатки использования GPL.
Для упрощения работы с сервером MySQL в базовый комплект установки входиттакой инструмент, как MySQL Workbench. Он пред- ставляет собой графический клиент для работы с сервером, с по- мощью которого можно создавать, удалять, изменять базы данных и управлять ими.
ЧащевсегоMySQL используютприразработкевеб-решений,чтообъ- ясняется тесной интеграцией с популярными языками программиро- вания, высокими показателями скорости и бесплатностью [7].
Задание
4
5
1.Создайте базу данных (сохраните под вашими инициалами), в которой будутсодержаться сведения о пунктах проката в пар- ках. В БД должно быть 3–4 связанные таблицы (см. пункты 4 и 10, чтобы определиться стаблицами).
2.Заполните тестовыми данными (3–5 строчек). В отчет вставь- те скриншоты с таблицами, а также скриншот из «Дизайнера» (схема БД).
3.Сделайте экспорт вашей БД в формате SQL.
phpMyAdmin. URL: https://demo.phpmyadmin.net/STABLE/ (дата обращения: 03.12.2022).
MySQL. URL: https://www.mysql.com/ (дата обращения: 10.12.2022).
31
П. Д. КУЛПЕППЕР, Е. Е. КОВАЛЕВ. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
4.Создайте нового пользователя (без пароля, если вы работае- те в phpMyAdmin), который сможет вносить данные о взятом на прокат велосипеде/самокате (любом транспортном сред- стве, которое естьв пункте проката), стоимости поездки и о че- ловеке, который взял на прокаттранспортное средство. То есть у этого пользователя должны быть права только на добавление втаблицу и обновление данных.
5.Зайдите еще раз на демосервер phpMyAdmin, но уже под логи- ном созданного в пункте 3 пользователя.
6.Попробуйте добавить, удалить или изменить данные, а также создать новуютаблицу в вашей БД.
7.Создайте еще одного пользователя (без пароля, если вы рабо- таете в phpMyAdmin) – менеджера, который можеттолько про- сматривать информацию из БД (праватолько на SELECT).
8.Зайдите на демосервер phpMyAdmin под логином менеджера из пункта 6.
9.Попробуйте удалить строчки из каких-нибудьтаблиц.
10.Создайте несколько запросов:
a) выручка по каждому пункту проката;
b) общая выручка по всем пунктам проката;
c) количествотранспортных средств по всем пунктам проката.
32
ЛАБОРАТОРНАЯ РАБОТА № 12
Триггеры, представления (VIEW) и переменные в MySQL
Для выполнения заданий можно воспользоваться онлайн-демо-
версией phpMyAdmin (сервер MySQL) или MySQL Workbench.
В отчет вставьте скриншоты по каждому пункту из задания.
Задание
1.ИмпортируйтеБДизлабораторнойработы№12 вphpMyAdmin (MySQL Workbench).
2.Создайте дополнительную таблицу, в которой будут храниться сведенияотипеизменениявтаблицахиосотруднике, который внес эти изменения.
3.Создайте триггеры, которые будут отслеживать изменения
втаблицах БД. Имя пользователя и дата изменения должны определяться автоматически, тип изменения можетбытьзадан
втеле триггера. Для определения пользователя можно исполь-
зовать переменные:
;
.
4.Создайте триггер, который будет отслеживать наличие транс- портных средств в точках проката. Подумайте, что должен де- лать данный триггер: например, выводить сообщения, переда- ватьданные в другуютаблицу ит. д.
5.Создайте представление (VIEW), в котором будут содержаться статистические данные по всем пунктам проката (можно ис- пользовать переменные и UNION):
a)общее количествотранспортных средств;
b)количество транспортных средств по каждому типу (напри- мер, велосипедов– 10, самокатов– 15);
c)какихтранспортных средств меньше всего;
d)какихтранспортных средств больше всего;
e)количество пунктов проката;
f)общая выручка по всем пунктам проката;
g)пункт проката с наименьшей выручкой;
h)пункт проката с наибольшей выручкой.
33
ЛАБОРАТОРНАЯ РАБОТА № 13
Функции и процедуры в MySQL
Для выполнения заданий можно воспользоваться онлайн-демо-
версией phpMyAdmin (сервер MySQL) или MySQL Workbench.
В отчет вставьте скриншоты по каждому пункту из задания. Процедура – это подпрограмма, которая выполняет определенное
действие.
Функция – это подпрограмма, возвращающая результат вычис- лений.
Вотличие оттриггеров процедуры и функции выполняютсятолько
вмомент вызова.
Задание
1.ИмпортируйтеБДизлабораторнойработы№12 вphpMyAdmin (MySQL Workbench).
2.Создайте процедуру без параметров, с помощью которой поль- зователь может просмотреть информацию о пунктах проката: общую выручку, выручку в среднем по пунктам проката и ко- личествотранспортных средств.
3.Создайте процедуру с входным параметром, с помощью кото- рой пользователь может посмотреть статистические данные для конкретного пункта проката: выручку и количество вело- сипедов/самокатов ит. д.
4.Создайте процедуру, которая сообщает администратору, в ка- ких пунктах проката осталось мало транспортных средств. Ис- пользуйте конструкцию IF-ELSE.
5.Создайте функцию, которая возвращаетсуммарное количество указанных транспортных средств (велосипедов/самокатов) по всем пунктам проката.
6.Создайте функцию, которая возвращает количество пунктов проката.
7.Создайте еще 1 пользователя с правами только на чтение изтаблиц.
8.Создайте процедуру, которая выводит текущего пользователя
иего права.
9.Создайте процедуру, которая принимает на вход пользователя
ивыводит его права.
34
КОНТРОЛЬНЫЕ ВОПРОСЫ
Вопросы для промежуточного контроля знаний
1.Что называется базой данных?
2.Укажите различия между СУБД и системой управления фай- лами.
3.Перечислите главные функции, выполняемые СУБД.
4.Назовите три уровня архитектуры (три представления) систе- мы баз данных.
5.Что понимается подтехнологией баз данных?
6.Назовите основные компоненты персональной СУБД.
7.Что называется моделью данных?
8.Назовитетри основных модели данных.
9.Перечислите функции администратора базы данных.
10.Что подразумевается под независимостью данных?
11.Чтотакое целостностьданных?
12.В чем заключается централизованное управление данными?
13.Охарактеризуйте основные конструкции модели «сущность – связь».
14.Дайте определение объекта, атрибута, связи.
15.Назовите характеристики атрибутов.
16.Что называется степенью связи?
17.Какая система называется реляционной?
18.Дайте определение понятия «отношение».
19.Перечислите и объясните основные свойства отношений.
20.Ключи отношений: потенциальный, первичный, внешний и их назначение.
Примерный перечень вопросов к зачету
1.Транзакции и целостность баз данных.
2.Отличие SQL от процедурных языков программирования.
3.Первая нормальная форма (1НФ).
4.Вторая нормальная форма (2НФ).
5.Третья нормальная форма (3НФ).
6.Составные части SQL. Типы данных SQL.
7.Простейшие SELECT-запросы.
35
П. Д. КУЛПЕППЕР, Е. Е. КОВАЛЕВ. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
8.Операторы IN, BETWEEN, LIKE, IS NULL.
9.Агрегирование и групповые функции.
10.Пустые значения в агрегирующих функциях.
11.Условный оператор в SQL.
12.Вложенныеподзапросы. Формированиесвязанныхподзапросов.
13.Оператор объединения UNION.
14.Внешнее объединение.
15.Соединениетаблиц с использованием оператора JOIN.
16.Команды манипулирования данными.
17.Использование подзапросов в INSERT.
18.Использование подзапросов с DELETE.
19.Использование подзапросов с UPDATE.
20.ПредставленияVIEW.
36
ЗАКЛЮЧЕНИЕ
Представленный лабораторный практикум позволяет освоить ме- тоды и средства манипулирования данными. Для любых данных важ- нонетолькоиххранить, ноиуправлятьими. Владениетакимикомпе- тенциями в настоящее время очень широко востребовано, ведь СУБД применяются везде, где нужно структурированно хранить данные: от простого блога до Data Science проектов.
Почти все крупнейшие технологические компании используют SQL, даже те, которые разработали свои собственные высокопроизво- дительные системы баз данных.
SQL – один из важных навыков, который необходимо освоить на- равне с Python, PHP, Java и Power BI. Ведь практически любой сайт, от маленького блога до крупнейшего интернет-ресурса, использует базыданных. Чтениепочты, переводденегдругу, покупкивинтернет- магазинах или регистрация на сайте– все это происходит через обра- щение к различным базам данных.
При разработке веб-приложений практически всегда используют- ся базы данных. Там хранится информация, необходимая для рабо- ты сайта: контент, логины/пароли, настройки и данные о посетителях и клиентах. С помощью SQL запросов разработчик записывает и вы- водит данные из базы. Таким образом, SQL – связующее звено, кото- рое обеспечивает взаимодействие приложения с базой данных и ин- формацией, котораятам хранится [9].
Также SQL является одним из самых востребованных навыков среди вакансий в области анализа и обработки данных. В настоящее время он требуется в примерно половине всех объявлений от рабо- тодателей. И доля вакансий, в которых перечисляется SQL, все время увеличивается.
Полученные в ходе выполнения практикума по дисциплине «Рас- пределенные базы данных» компетенции студенты бакалавриата мо- гут развивать дальше и использовать при освоении учебных дисцип- лин «Корпоративные информационные системы», «Информационные системы управления предприятием», «Разработка компонентов ин- формационных систем», а также при подготовке и выполнении курсо- вых и выпускных квалификационных работ.
37
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1.Агальцов В.П. Базы данных: в 2 кн. Кн 2. Распределенные и уда- ленные базы данных: учебник. М.: ФОРУМ: ИНФРА-М, 2021. 271 с. URL: https://znanium.com/catalog/product/1514118 (дата об- ращения: 12.12.2022).
2.Базы данных: учебник для вузов / Б.Я. Советов и др. 3-е изд., пере-
раб. идоп. М.: Юрайт, 2023. 420 с. URL: https://urait.ru/bcode/510752 (дата обращения: 12.12.2022).
3.Илюшечкин В.М. Основы использования и проектирования баз данных: учебник для вузов. М.: Юрайт, 2023. 213 с. URL: https:// urait.ru/bcode/510473 (дата обращения: 12.12.2022).
4.Полякова Л.Н. Основы SQL. URL: https://intuit.ru/studies/courses/5/5/info (дата обращения: 12.12.2022).
5.Представления (VIEW) в MySQL. URL: https://habr.com/ru/ post/47031/ (дата обращения: 12.12.2022).
6.РаботасSQLite. URL: https://exercises-on-sql.blogspot.com/2019/02/ sqlite_12.html (дата обращения: 12.12.2022).
7.Работа с датами и временем. URL: https://sql-academy.org/ru/guide/ datetime-data-type (дата обращения: 12.12.2022).
8.Триггеры. Определение триггеров. URL: https://metanit.com/sql/ sqlserver/12.1.php (дата обращения: 12.12.2022).
9.SQL: кому нужен и в чем его польза? URL: https://www.instituteiba. by/courses/it/oracle/column-expert/sql-who-needs-and-how-does-it- help/ (дата обращения: 12.12.2022).
10.<chrono>. URL: https://learn.microsoft.com/en-us/cpp/standard- library/chrono?view=msvc-170 (дата обращения: 03.12.2022).
38
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
11.How to compile SQLite. URL: https://www.sqlite.org/howtocompile. html (дата обращения: 03.12.2022).
12.MySQL. URL: https://www.mysql.com/ (датаобращения: 10.12.2022).
13.phpMyAdmin. URL: https://demo.phpmyadmin.net/STABLE/ (дата обращения: 03.12.2022).
14.SQLite Sample Database. URL: https://www.sqlitetutorial.net/sqlite- sample-database/ (дата обращения: 03.12.2022).
Учебное издание
Кулпеппер Полина Дмитриевна Ковалев Евгений Евгеньевич
РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ
Лабораторный практикум
Редактор Дубовец В. В.
Оформление обложки Удовенко В. Г. Компьютерная верстка Ковтун М. А.
Московский педагогический государственный университет (МПГУ). 119435, Москва, ул. Малая Пироговская, д. 1, стр. 1.
Управление издательской деятельности и инновационного проектирования (УИД и ИП) МПГУ.
119571, Москва, пр-т Вернадского, д. 88, оф. 446,
тел. +7 (499) 730-38-61, e-mail: izdat@mpgu.su.
Отпечатано в отделе оперативной полиграфии УИД и ИП МПГУ.
Подписано в печать 29.05.2023. Формат 60×90/16. Бум. офсетная. Печать цифровая. Усл. печ. л. 2,5.
Тираж 500 экз. Заказ № 1423.
