Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 610373)
Контекстум

Основы технологий баз данных

0   0
Первый авторАгафонов А. А.
АвторыБелов А. М., Самарский нац. исслед. ун-т им. акад. С.П. Королева (Самар. ун-т)
ИздательствоИзд-во Самарского университета
Страниц304
ID909719
АннотацияУчебное пособие посвящено технологиям проектирования, разработки и внедрения баз данных. В пособии рассматриваются основные понятия реляционных баз данных и реляционной алгебры, вопросы проектирования баз данных. Несколько разделов посвящены языку запросов SQL и его использованию для получения и модификации данных, определению объектов баз данных, таких как таблицы, индексы или представления, а также вопросам использования процедурных расширений языка SQL. Кроме того, рассмотрены NoSQL-решения, предназначенные для хранения денормализованных данных, что может быть более эффективным в распределенной среде, а также принципы и программные инструменты обработки больших данных.
Кем рекомендованоРедакционно-издательским советом федерального государственного автономного образовательного учреждения высшего образования «Самарский национальный исследовательский университет имени академика С. П. Королева» в качестве учебного пособия для обучающихся по основной образовательной программе высшего образования по специальности 10.05.03 Информационная безопасность автоматизированных систем
Кому рекомендованоПредназначено для студентов института информатики и кибернетики, обучающихся по специальности 10.05.03 Информационная безопасность автоматизированных систем.
ISBN978-5-7883-1915-5
УДК004.65(075.8)
ББК16.35я73
Агафонов, А.А. Основы технологий баз данных : учеб. пособие / А.М. Белов; Самарский нац. исслед. ун-т им. акад. С.П. Королева (Самар. ун-т); А.А. Агафонов .— Самара : Изд-во Самарского университета, 2023 .— 304 с. — ISBN 978-5-7883-1915-5 .— URL: https://rucont.ru/efd/909719 (дата обращения: 07.04.2025)

Предпросмотр (выдержки из произведения)

Основы_технологий_баз_данных.pdf
Стр.2
Стр.3
Стр.4
Стр.5
Стр.6
Стр.7
Стр.8
Основы_технологий_баз_данных.pdf
УДК 004.65(075) ББК А635я7 А235 Рецензенты: д-р техн. наук, доц. С. Б. П о п о в, д-р техн. наук, проф. В. А. Ф у р с о в Агафонов, Антон Александрович А235 Основы технологий баз данных: учебное пособие / А.А. Агафонов, А.М. Белов. – Самара: Издательство Самарского университета, 2023. – 304 с. ISBN 978-5-7883-1915-5 Учебное пособие посвящено технологиям проектирования, разработки и внедрения баз данных. В пособии рассматриваются основные понятия реляционных баз данных и реляционной алгебры, вопросы проектирования баз данных. Несколько разделов посвящены языку запросов SQL и его использованию для получения и модификации данных, определению объектов баз данных, таких как таблицы, индексы или представления, а также вопросам использования процедурных расширений языка SQL. Кроме того, рассмотрены NoSQL-решения, предназначенные для хранения денормализованных данных, что может быть более эффективным в распределенной среде, а также принципы и программные инструменты обработки больших данных. Предназначено для студентов института информатики и кибернетики, обучающихся по специальности 10.05.03 Информационная безопасность автоматизированных систем. УДК 004.65(075) ББК А635я7 ISBN 978-5-7883-1915-5 © Самарский университет, 2023 2
Стр.2
ОГЛАВЛЕНИЕ Введение ................................................................................................ 9 1 Введение в базы данных ................................................................. 10 1.1 Понятие базы данных ............................................................... 10 1.2 Развитие баз данных ................................................................. 12 1.2.1 Иерархическая модель базы данных .............................. 14 1.2.2 Сетевая модель базы данных........................................... 17 1.2.3 Реляционная модель базы данных .................................. 18 1.2.4 Объектно-ориентированная модель базы данных ......... 22 1.2.5 Слабоструктурированные данные .................................. 23 1.2.6 Модель ключ-значение .................................................... 24 1.2.7 Документо-ориентированная модель БД ....................... 25 1.2.8 Распределенная обработка MapReduce .......................... 27 1.3 Системы управления базами данных...................................... 29 1.3.1 Понятие СУБД .................................................................. 29 1.3.2 Функции СУБД ................................................................. 30 1.3.3 Организация современных СУБД ................................... 34 1.3.4 Классификация СУБД ...................................................... 37 1.3.5 Современные СУБД ......................................................... 42 2 Реляционные базы данных.............................................................. 44 2.1 Реляционная модель ................................................................. 44 2.2 Тип данных. Домен .................................................................. 45 2.3 Отношение ................................................................................ 47 2.3.1 Понятие отношения.......................................................... 47 2.3.2 Фундаментальные свойства отношений ........................ 49 2.4 Целостность данных ................................................................. 51 2.4.1 Целостность доменов ....................................................... 51 2.4.2 Целостность сущностей ................................................... 52 2.4.3 Связи между кортежами отношений .............................. 54 2.4.4 Ссылочная целостность ................................................... 57 2.5 Реляционная алгебра ................................................................ 60 2.5.1 Выборка ............................................................................. 61 2.5.2 Проекция ........................................................................... 62 3
Стр.3
2.5.3 Декартово произведение .................................................. 63 2.5.4 Объединение ..................................................................... 64 2.5.5 Вычитание ......................................................................... 65 2.5.6 Пересечение ...................................................................... 65 2.5.7 Деление.............................................................................. 66 2.5.8 Соединение ....................................................................... 67 3 Проектирование баз данных ........................................................... 71 3.1 Понятие информационной системы ....................................... 71 3.2 Проектирование базы данных ................................................. 73 3.2.1 Концептуальное проектирование ................................... 74 3.2.2 Логическое проектирование ............................................ 74 3.2.3 Физическое проектирование ........................................... 76 3.3 ER-моделирование ................................................................... 77 3.3.1 Основные понятия ............................................................ 77 3.3.2 Пример разработки ER-модели ....................................... 79 3.4 Нормализация отношений ....................................................... 83 3.4.1 Пример предметной области ........................................... 83 3.4.2 Первая нормальная форма ............................................... 85 3.4.3 Вторая нормальная форма ............................................... 88 3.4.4 Третья нормальная форма ............................................... 92 3.4.5 Алгоритм нормализации .................................................. 93 4 Введение в SQL................................................................................ 96 4.1 Стандарт SQL ............................................................................ 96 4.2 Возможности SQL .................................................................. 101 4.3 Типы данных в SQL ............................................................... 102 4.3.1 Точные числовые типы .................................................. 103 4.3.2 Приближенные числовые типы..................................... 104 4.3.3 Логический тип ............................................................... 105 4.3.4 Строковые типы данных ................................................ 106 4.3.5 Битовые последовательности ........................................ 107 4.3.6 Дата и время .................................................................... 107 4.3.7 Непредопределенные типы данных .............................. 108 4.4 Операторы ............................................................................... 109 4
Стр.4
4.5 Встроенные функции ............................................................. 111 5 SQL. Операторы определения данных ........................................ 113 5.1 Базы данных ............................................................................ 113 5.2 Таблицы ................................................................................... 114 5.2.1 Создание таблиц ............................................................. 114 5.2.2 Внешние ключи .............................................................. 118 5.2.3 Модификация таблиц ..................................................... 120 6 SQL. Операторы манипулирования данными ............................. 122 6.1 Добавление данных. Инструкция INSERT ........................... 122 6.2 Выборка данных. Инструкция SELECT ............................... 124 6.2.1 Базовый синтаксис ......................................................... 124 6.2.2 Использование псевдонимов ......................................... 126 6.2.3 Сортировка. Предложение ORDER BY ....................... 127 6.2.4 Условие отбора данных. Предложение WHERE ......... 128 6.2.5 Агрегатные функции ...................................................... 132 6.2.6 Группировка данных. Предложение GROUP BY ........ 133 6.2.7 Фильтрация групп. Предложение HAVING ................ 135 6.3 Вложенные запросы ............................................................... 136 6.3.1 Оператор EXISTS ........................................................... 140 6.3.2 Многократное сравнение ............................................... 141 6.3.3 Коррелирующие подзапросы ........................................ 143 6.4 Многотабличные запросы ..................................................... 144 6.4.1 Декартово произведение таблиц ................................... 145 6.4.2 Внутреннее соединение WHERE .................................. 145 6.4.3 Соединение JOIN ............................................................ 146 6.4.4 Объединение UNION ..................................................... 151 6.5 Модификация данных. Инструкция UPDATE ..................... 152 6.6 Удаление данных. Инструкция DELETE ............................. 153 7 Представления ............................................................................... 154 7.1 Понятие представления.......................................................... 154 7.2 Обновляемые представления................................................. 157 8 Индексирование ............................................................................. 160 8.1 Понятие индекса ..................................................................... 160 8.2 Типы индексов ........................................................................ 162 5
Стр.5
8.2.1 Индексы на основе хеширования ................................. 162 8.2.2 Индексы на основе B-деревьев ..................................... 165 8.2.3 Пространственные индексы .......................................... 167 8.2.4 Битовые индексы ............................................................ 170 8.2.5 Полнотекстовый индекс ................................................ 171 8.2.6 Кластерные индексы ...................................................... 171 8.3 Селективность индекса .......................................................... 172 8.4 Рекомендации по созданию индексов .................................. 173 8.5 Создание индексов ................................................................. 174 9 Процедурный SQL ......................................................................... 176 9.1 Процедурные расширения SQL ............................................ 176 9.2 Управляющие конструкции SQL .......................................... 179 9.2.1 Переменные .................................................................... 179 9.2.2 Условный оператор IF…THEN…ELSE ....................... 181 9.2.3 Оператор выбора CASE ................................................. 181 9.2.4 Циклы .............................................................................. 183 9.3 Хранимые процедуры ............................................................ 184 9.4 Функции .................................................................................. 187 9.4.1 Создание функции в MySQL ......................................... 187 9.4.2 Создание функции в PostgreSQL .................................. 190 9.5 Триггеры .................................................................................. 191 9.5.1 Создание триггера в MySQL ......................................... 192 9.5.2 Создание триггера в PostgreSQL ................................... 195 9.6 Курсоры ................................................................................... 197 10 Транзакции ................................................................................... 200 10.1 Понятие транзакции ............................................................. 200 10.2 Механизмы обеспечения требований к транзакциям ....... 202 10.2.1 Журнал транзакций ...................................................... 202 10.2.2 Управление параллельным доступом посредством многоверсионности ................................................................. 206 10.3 Проблемы совместного доступа к данным ........................ 207 10.3.1 Уровни изоляции транзакций ...................................... 208 10.3.2 Потерянное обновление ............................................... 211 10.3.3 Грязное чтение .............................................................. 211 6
Стр.6
10.3.4 Неповторяющееся чтение ............................................ 212 10.3.5 Фантомное чтение ........................................................ 213 10.3.6 Аномалии сериализации .............................................. 215 10.4 Явное управление транзакцией ........................................... 216 10.4.1 Управление транзакцией в MySQL ............................ 217 10.4.2 Пример управления транзакцией в MySQL ............... 219 11 Расширенные типы данных ........................................................ 221 11.1 Пространственные данные .................................................. 221 11.1.1 Понятие пространственных данных ........................... 221 11.1.2 Пространственный анализ ........................................... 224 11.2 Слабоструктурированные данные ...................................... 233 11.2.1 Тип данных JSON ......................................................... 234 11.2.2 Работа с JSON в MySQL .............................................. 236 12 Нереляционные базы данных ..................................................... 239 12.1 Недостатки реляционной модели........................................ 239 12.1.1 Потеря соответствия .................................................... 239 12.1.2 Сложность масштабирования ..................................... 240 12.2 NoSQL базы данных ............................................................. 242 12.2.1 Теорема CAP ................................................................. 244 12.2.2 Альтернативные подходы. BASE. PACELC .............. 247 13 Документоориентированная СУБД MongoDB ......................... 249 13.1 Основные понятия ................................................................ 250 13.2 Типы данных ......................................................................... 251 13.3 Создание документов ........................................................... 252 13.4 Выборка документов ............................................................ 254 13.4.1 Базовый синтаксис ....................................................... 254 13.4.2 Методы курсора ............................................................ 259 13.4.3 Агрегация данных ........................................................ 260 13.5 Обновление документов ...................................................... 268 13.6 Удаление документов ........................................................... 271 13.7 Представления ...................................................................... 272 13.8 Индексирование .................................................................... 274 13.8.1 Типы индексов .............................................................. 274 13.8.2 Создание индекса ......................................................... 277 7
Стр.7
13.9 Транзакции ............................................................................ 277 14 Знакомство с большими данными ............................................. 281 14.1 Понятие больших данных .................................................... 281 14.2 Характеристики больших данных....................................... 284 14.3 Инструментарий для обработки больших данных ............ 285 14.4 Архитектура системы обработки больших данных .......... 287 14.4.1 Компоненты архитектуры ........................................... 287 14.4.2 Пакетная обработка ...................................................... 289 14.4.3 Потоковая обработка .................................................... 291 14.4.4 Лямбда-архитектура ..................................................... 292 14.5 Программное обеспечение для работы с большими данными ................................................................... 294 14.5.1 Apache Hadoop .............................................................. 294 14.5.2 Apache Spark ................................................................. 296 14.5.3 Apache Kafka ................................................................. 297 Заключение ........................................................................................ 299 Библиографический список ............................................................. 300 8
Стр.8

Облако ключевых слов *


* - вычисляется автоматически