Распределенные базы данных. Лабораторный практикум
.pdf
Министерство просвещения Российской Федерации Федеральное государственное бюджетное образовательное учреждение
высшего образования «Московский педагогический государственный университет»
П. Д. Кулпеппер, Е. Е. Ковалев
РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ
Лабораторный практикум
МПГУ Москва • 2023
УДК |
004.65(076.5) |
DOI: 10.31862/9785426312432 |
ББК |
16.353.1я73-5 |
|
|
К90 |
|
Рецензенты:
В. Н. Платонов, доцент, кандидатфизико-математических наук, доценткафедры ПИВМ МПГУ
А. В. Данилькевич, доцент, кандидатпедагогических наук, директор ГБОУ«Школа № 1179», г. Москва
Кулпеппер, Полина Дмитриевна.
К90 Распределенные базы данных : лабораторный практикум / П. Д. Кулпеппер, Е. Е. Ковалев. – Москва : МПГУ, 2023. – 40 с. : ил.
ISBN 978-5-4263-1243-2
Лабораторный практикум предназначен для проведения занятий по курсам «Распределенные базыданных», «Базыданных» для бакалавров, обучающихся по на- правлению «Прикладная информатика», атакже можетиспользоватьсядля изучения разделов, связанных с базами данных и управления данными, на направлениях под- готовки «Педагогическое образование» (с двумя профилями подготовки).
Основная цель практикума – показать все основные задачи и приемы работы с базамиданных с помощью языка SQL. Практикум содержит13 лабораторных работ.
УДК 004.65(076.5) ББК 16.353.1я73-5
ISBN 978-5-4263-1243-2 |
© МПГУ, 2023 |
DOI: 10.31862/9785426312432 |
© КулпепперП. Д., |
|
КовалевЕ. Е., текст, 2023 |
СОДЕРЖАНИЕ
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Лабораторная работа № 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Лабораторная работа № 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Лабораторная работа № 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Лабораторная работа № 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Лабораторная работа № 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Лабораторная работа № 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Лабораторная работа № 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Лабораторная работа № 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Лабораторная работа № 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Лабораторная работа № 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Лабораторная работа № 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Лабораторная работа № 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Лабораторная работа № 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Список использованной литературы. . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3
ВВЕДЕНИЕ
Лабораторный практикум по дисциплине «Распределенные базы данных» является важной частью методической системы, направлен- ной на формирование прикладных компетенций у студентов направ- ления 09.03.03 «Прикладная информатика».
Эта дисциплина является продолжением курса «Базы данных» и охватываетобластьприменения сетевыхтехнологий при реализации управления данными. Основной упор сделан на овладении практиче- скими приемами манипулированияданными при помощи языка SQL.
Цель освоения дисциплины: знакомство с основными современны- минаправлениямивобластисозданияраспределенныхбазданных, ос- новными правилами нормализации данных, изучение основ програм- мирования баз данных и выполнения типовых операций, таких как: добавление, изменение и удаление данных в распределенной структу- ре обработки данных, разработки распределенных SQL-приложений, атакжеформированиеопределенныхпрактическихнавыковразработ- ки приложений базданных с архитектурой «клиент-сервер».
Длявыполненияпредставленныхвпрактикумезаданийнеобходи- мо знакомство с основами теории реляционных баз данных, жизнен- ным циклом баз данных, современными системами управления база- ми данных.
Практикум направлен на формирование компетенции, представ- ленной втаблице 1.
Таблица 1
|
Индикаторы достижения компетенций |
||
|
|
|
|
Код |
Формулировка |
Индикаторыдостижениякомпетенций |
|
компетенции |
компетенции |
||
|
|||
|
|
ПК-5.1 |
|
|
Способен |
Владеет прикладными средствами моделирования, |
|
|
разработки и администрирования баз данных |
||
|
осуществлять |
||
|
ПК-5.2 |
||
|
управле- |
||
|
ние базами |
Владеет средствами администрирования локальных |
|
|
данных |
вычислительных сетей |
|
ПК-5 |
и поддержку |
ПК-5.3 |
|
|
информа- |
Применяет средства сопровождения и контроля |
|
|
ционного |
использования ИТ-инфраструктуры |
|
|
обеспечения |
||
|
ПК-5.4 |
||
|
решения при- |
||
|
кладных задач |
Публично представляет результаты решения кон- |
|
|
|
кретной задачи, разбирается в вопросе и пробле- |
|
|
|
мах построения информационных систем |
|
4
ЛАБОРАТОРНАЯ РАБОТА № 1
Создание многотабличной базы данных (БД), многотабличные запросы
Под распределенной базой данных (РБД) понимается набор логи- чески связанных между собой разделяемых данных, которые физиче- ски распределены по разным узлам компьютерной сети.
Система управления РБД – это программный комплекс (СУБД), предназначенный для управления РБД и позволяющий сделать рас- пределенностьпрозрачнойдляконечногопользователя.Прозрачность РБД заключается в том, что с точки зрения конечного пользователя она должна вести себяточно так же, как централизованная.
Логически единая БД разделяется на фрагменты, каждый из кото- рыххранитсянаодномкомпьютере, авсекомпьютерысоединеныли- ниями связи. Каждый из этих фрагментов работает под управлением своей СУБД.
Объектами баз данных являются их составляющие, например та- блицы, представления, отчеты и т. п. Объекты выполняют функции хранения и обработки информации, чаще всего в реляционном виде как набор связанныхтаблиц.
Таблицы состоят из строк и столбцов и представляют собой струк- турированный набор сведений о чем-либо.
Строки (или записи) – составляющие таблицы, которые содержат определенное описание или характеристики конкретного элемента (субъекта).
Столбцы (или поля) – составляющие таблицы, которые содержат описание какого-то одного параметра, но для всех объектов. Каждый столбец втаблице имеет свойтип данных, размер и имя.
Обычно все данные при распределенном характере обработки хранятся на сервере, который обслуживает все клиентские запросы. Серверные данные располагаются на одном или нескольких физи- ческих дисках или могут распределяться между узлами сети. Чтобы сделать запрос, клиент устанавливает соединение с сервером. Сервер анализирует инструкции, выполняет их, извлекает данные и возвра- щает результаты запроса [1].
Основным средством запроса, извлечения и манипулирования данными является язык SQL (англ. structured query language – «язык структурированных запросов»). SQL относится к декларативным
5
П. Д. КУЛПЕППЕР, Е. Е. КОВАЛЕВ. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
языкам программирования. Операторы (команды), написанные на SQL, только указывают СУБД, какой результат должен быть полу- чен после выполнения программы, но не описывают процедуру по- лучения этого результата. СУБД сама определяетспособ выполнения команды пользователя.
В языке SQL традиционно выделяются группа операторов опреде- ленияданных(Data Definition Language – DDL), группаоператоровма-
нипулирования данными (Data Manipulation Language – DML) и груп-
па операторов, управляющих привилегиями доступа к объектам базы данных (Data Control Language – DCL) [3].
К операторам языка определения данных (DDL) относятся коман- дыдля создания, изменения и удалениятаблиц, представлений идру- гих объектов базы данных.
Задание
1.Создать базу данных «Университет» (рис. 1).
2.Внести данные втаблицы (10–15 строчек).
3.Сформировать SQL запросы.
Запросы
1.Выведите названия кафедр вместе с факультетами, на которых расположены эти кафедры.
2.Выведите названия групп и их кураторов.
3.Выведитеименаифамилиипреподавателей, которыепроводят занятия у выбранной группы.
4.Выведитеназваниядисциплин, которыезакрепленызауказан- ным преподавателем.
5.Выведите фамилии преподавателей и названия факультетов, на которых они проводят занятия.
6.Выведите названия кафедр и названия групп, которые к ним относятся.
7.Выведите названия кафедр, на которых читается указанная дисциплина.
8.Выведите названия групп, которые обучаются на указанном факультете.
9.Выведите группы выбранного курса, а также названия их фа- культетов.
10.Для занятий, которые проходят в указанной аудитории, выве- дите полное имя преподавателя, предмет и номер группы.
6
ЛАБОРАТОРНАЯ РАБОТА№1
Рис. 1. Структура базы данных «Университет»
Общие требования для полей:
•все поля не должны содержать NULL значений;
•значения полей типа «Финансирование», «Зарплата» и «Курс» должны быть строго больше нуля.
7
ЛАБОРАТОРНАЯ РАБОТА № 2
Операторы BETWEEN, IN, LIKE
SQL использует специальные операторы IN, BETWEEN, LIKE и IS NULL в дополнение к булевым операциям.
Задание
1.Использоватьбазуданных «Университет», созданную влабора- торной работе № 1.
2.Внести данные втаблицы (10–15 строчек).
3.Сформировать SQL запросы.
Запросы
1.Выведите факультеты, у которых финансирование находится вуказанномдиапазоне, спомощьюоператораBETWEEN испо- мощью операторов сравнения (2 способа– 2 запроса).
2.Выведите группы с 1-го по 3-й курс, у которых есть указанный предмет.
3.Выведите данные из таблицы «Кафедры», отсортированные по возрастанию по полю «Финансирование».
4.Выведите кафедры, отсортированные по факультету и назва- нию кафедры.
5.Выведите преподавателей, которые проводят занятия у 2-го илиу4-гокурсов, спомощьюоператораIN испомощьюопера- тора OR (2 способа– 2 запроса).
6.В порядке обратном алфавитному выведите названия групп, у которых нет указанного предмета.
7.Выведите имена всех кураторов и преподавателей без повторе- ний в алфавитном порядке.
8.Выведите все кафедры и все факультеты с повторениями в по- рядке обратном алфавитному.
9.Выведите преподавателей, которые проводят занятия, с помо- щью оператора IN и подзапроса (2 способа– 2 запроса).
10.Выведите все предметы, у которых в названии есть буква «а».
11.Выведитевсе факультеты, названиекоторыхначинается сглас- ной буквы.
12.Выведите кураторов групп указанной кафедры, у которых фа- милия заканчивается на заданную букву.
8
ЛАБОРАТОРНАЯ РАБОТА№2
13.Выведите кураторов, у которых имя состоит из 6 и более букв, а в фамилии нет заданной буквы.
14.Выведите все группы первого курса, переименуйте поле «На- звание», ограничьте вывод 3 строками.
15.Выведите имена и фамилии преподавателей в одном столбце, задайте новое имя столбца.
9
ЛАБОРАТОРНАЯ РАБОТА № 3
Создание многотабличной БД, нормализация таблиц, работа с операторами JOIN и UNION, агрегирующие функции
Нормализация – это процесс эффективной организации данных в БД. Существует две главные причины, обуславливающие необходи- мость нормализации:
•предотвращение записи в БД лишних данных, например хране- ния одинаковых данных в разных таблицах (сохранение целост- ности данных);
•обеспечение необходимого и обоснованного типа связи между данными (мощности отношения).
Нормализация предполагает соблюдение нескольких форм. Форма – это формат структурирования БД. Существует три главные формы: перваянормальнаяформа(1НФ), вторая(2НФ) итретья(3НФ). Всеготаких форм семь, однако на практикедля большей части прило- жений вполне достаточно нормализовать БД до третьей нормальной формы (БД будет считаться нормализованной, когда к ней применя- ется 3НФ и выше) [3].
JOIN – оператор SQL, который используется для объединения таб- лиц по ключу, присутствующему в обеихтаблицах. Перед ключом ста- вится оператор ON.
Примеры использования различных видов оператора JOIN приве- дены на рис. 2.
Оператор языка SQL UNION предназначен для объединения ре- зультирующихтаблиц базыданных, полученных с применением клю- чевого слова SELECT. Условием объединения результирующих таблиц является совпадение количества столбцов в объединяемых запросах.
Агрегирующие функции используются для получения обобщаю- щих значений. Их можно применять ко всем строкам таблицы, стро- кам, определенным в условии WHERE, или к группам строк при при- менении GROUP BY. В любом случае независимо от структуры набора строк для каждого из них получается единственное значение.
Для выполнения агрегирующих операций используются следую- щие функции:
•COUNT определяетколичествонепустых(неNULL) строкилизна- чений поля, выбранных посредством запроса;
•SUM вычисляет сумму всех выбранных значений данного поля;
10
