Содержание
Глава 1. Реляционная модель данных 11
1.1. Определение реляционной модели 12
1.2. Таблицы 17
1.3. Первичные ключи 20
1.4. Внешние ключи 21
1.5. Связи между таблицами 22
1.6. Нормализация отношений 25
1.7. Модели баз данных на логическом и физическом уровнях 29
1.8. Целостность данных 32
1.9. Архитектура «клиент-сервер» 40
1.9.1. Модели традиционной архитектуры 41
1.9.2. Облачные технологии для систем управления базами данных 53
Контрольные вопросы и задания 58
Глава 2. Введение в SQL 59
2.1. Объекты структуры базы данных 59
2.2. Функции SQL 64
2.3. Достоинства SQL 69
2.4. Формы использования SQL 73
2.5. Системы управления базами данных 76
2.5.1. Выбор системы управления базами данных как средства разработки приложений 77
2.5.2. Firebird SQL Server 79
2.5.3. Microsoft SQL Server 84
2.5.4. Oracle Database 88
2.6. Правила синтаксиса и основные запросы SQL 94
2.7. Имена объектов в SQL. Константы, отсутствующие данные 100
2.8. Типы данных 102
2.9. Выражения 112
Контрольные вопросы и задания 116
Глава 3. Язык выборки данных 117
3.1. Синтаксис запроса SELECT 117
3.2. Запросы к одной таблице 122
3.2.1. Секции SELECT и FROM 125
3.2.2. Секция WHERE 135
3.2.3. Функции в SQL 151
3.2.4. Секция GROUP BY 202
3.2.5. Секция HAVING 207
3.2.6. Секция ORDER BY 211
3.2.7. Статистический анализ данных 216
3.3. Многотабличные и вложенные запросы 225
3.3.1. Соединения таблиц 226
3.3.2. Запросы с вложенными запросами 244
3.3.3. Операторы действий над множествами 284
3.3.4. Рекурсивные подзапросы в секции WITH 292
3.4. Оптимизация запросов на выборку данных 297
3.4.1. Обработка запроса в реляционных системах управления базами данных 297
3.4.2. Основные направления анализа «медленных» SQL-запросов 300
3.4.3. Рекомендации по построению и реструктуризации запросов конкретных типов 302
Контрольные вопросы и задания 306
Глава 4. Язык определения данных 308
4.1. Домены 309
4.2. Создание, изменение и удаление базовых таблиц базы данных 312
4.2.1. Создание таблицы 312
4.2.2. Определение ограничений столбца 317
4.2.3. Определение ограничений на таблицу 323
4.2.4. Удаление таблицы базы данных 326
4.2.5. Изменение определения таблицы 327
4.3. Индексы 334
4.4. Временные таблицы 344
4.5. Представления 346
4.6. Комментарии к объектам базы данных 356
Контрольные вопросы и задания 358
Библиографический список 359
Часть 2
Глава 5. Язык манипулирования данными 5
5.1. Добавление новых данных 5
5.1.1. Однострочный запрос INSERT 9
5.1.2. Многострочный запрос INSERT 11
5.2. Обновление существующих данных 14
5.2.1. Неявный запрос UPDATE 18
5.2.2. Запрос UPDATE с подзапросом 20
5.3. Обобщенное обновление и добавление данных 27
5.4 Слияние данных 29
5.5. Удаление существующих данных 33
5.5.1. Неявный запрос DELETE 34
5.5.2. Запрос DELETE с подзапросом 35
5.5.3. Удаление всех строк таблицы 38
5.6. Обновление представлений 39
Контрольные вопросы 49
Глава 6. Процедурный язык 50
6.1. Основы разработки исполняемых модулей 51
6.1.1. SQL-сценарии 52
6.1.2. Переменные 64
6.1.3. Условные операторы и циклы 70
6.1.4. Курсоры 75
6.1.5. Последовательности 85
6.1.6. Обработка исключительных ситуаций 90
6.2. Хранимые процедуры 97
6.2.1. Определение, модификация и удаление процедур 98
6.2.2., Виды хранимых процедур 103
6.2.3. Селективные процедуры Firebird 107
6.2.4. Выполняемые 115
6.2.5. Динамический SQL 139
6.3. Хранимые функции 147
6.4. Процедурные пакеты 151
6.5. Выполняемые блоки 157
6.6. Триггеры 159
6.6.1. Триггеры DML 161
6.6.2. Триггеры DDL 191
6.6.3. Триггеры баз данных 200
Контрольные вопросы 203
Глава 7. Защита данных. Управление доступом 204
7.1. Принципы доступа к данным. Управление пользователями 204
7.2. Схемы базы данных в MS SQL Server 210
7.3. Привилегии доступа и передача привилегий 212
7.4. SQL-роли 222
7.5. Привилегии на представления 227
7.6. Удаление привилегий
7.7. Отмена привилегий 231
7.8. Автоматизированное управление доступом 232
Контрольные вопросы 235
Глава 8. Управление транзакциями 237
8.1. Понятие транзакции 238
8.2. Восстановление данных 239
8.3. Параллелизм 244
Контрольные вопросы и задания 248
Лабораторный практикум 249
Лабораторная работа № 1. IBExpert — инструмент разработчика и администратора баз данных Firebird. Учебная база данных 249
Лабораторная работа № 2. Построение однотабличных запросов на выборку данных 252
Лабораторная работа № 3. Построение многотабличных и вложенных запросов на выборку данных 253
Лабораторная работа № 4. Построение запросов на определение данных 254
Лабораторная работа № 5. Построение запросов на модификацию данных 256
Лабораторная работа № 6. Программирование хранимых процедур 259
Лабораторная работа № 7. Программирование триггеров 264
Лабораторная работа № 8. Построение запросов управления доступом 267
Библиографический список 270
Новые издания по дисциплине «Программирование на SQL» и смежным дисциплинам 272
Приложение А. Описание учебной базы данных 274
Приложение Б. Системный каталог базы данных Firebird 286
Добавить комментарий