Цель курса - предоставить слушателям знания и навыки, необходимые для построения базовых запросов и программирования на SQL для СУБД РЕД БАЗА ДАННЫХ.
Авторский дистанционный курс поставлен по одноименному учебному пособию Маркина А.В.
На курсе вы научитесь свободно и уверенно пользоваться современными базами данных, языком структурированных запросов и процедурным языком.
Курс предназначен для начинающих администраторов и разработчиков баз данных и приложений.
Требуемая предварительная подготовка:
- Умение работать в Windows или Linux
- Знание основ программирования
- Базовые знания теории реляционных баз данных
По окончании курса Вы будете уметь:
- Использовать современные базы данных
- Создавать запросы к базам данных на языке SQL
- Использовать сложные конструкции процедурного SQL для программирования хранимых процедур и триггеров
- Управлять доступом к объектам базы данных
- Работать с транзакциями
Материалы слушателя
Слушателям предоставляется учебное пособие и прочие материалы, необходимые для обучения.
Здесь можно проверить полученные знания.
СОДЕРЖАНИЕ
ПРЕДИСЛОВИЕ
8
ВВЕДЕНИЕ
14
ГЛАВА 1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ
16
1.1. Определение реляционной модели
18
1.2. Таблицы БД
25
1.3. Первичные ключи
28
1.4. Внешние ключи
30
1.5. Реляционные связи между таблицами
31
1.6. Нормализация отношений
35
1.7. Модели баз данных на логическом и физическом уровнях
40
1.8. Целостность
44
1.9. Архитектура «клиент-сервер»
54
Контрольные вопросы и задания
57
ГЛАВА 2. ВВЕДЕНИЕ В SQL
58
2.1. Объекты структуры базы данных
58
2.2. Функции SQL
63
2.3. Достоинства SQL
69
2.4. Формы использования SQL
74
2.5. Правила синтаксиса и основные запросы SQL
79
2.6. Имена объектов в SQL. Константы, отсутствующие данные
86
2.7. Типы данных
90
2.8. Выражения
97
2.9. Комментарии
101
Контрольные вопросы и задания
103
ГЛАВА 3. ПРОГРАММИРОВАНИЕ ЗАПРОСОВ ВЫБОРКИ ДАННЫХ
104
3.1. Синтаксис запроса SELECT
104
3.2. Запросы к одной таблице
109
3.2.1. Секции SELECT и FROM
111
3.2.2. Секция WHERE
124
3.2.3. Функции в SQL
144
3.2.4. Секция GROUP BY
194
3.2.5. Секция HAVING
202
3.2.6. Секция ORDER BY
208
3.2.7. Функции для анализа данных
216
3.3. Многотабличные и вложенные запросы
227
3.3.1. Соединения таблиц
228
3.3.2. Запросы с вложенными запросами
254
3.3.3. Операторы действий над множествами
318
3.3.4. Рекурсивные подзапросы в секции WITH
328
Контрольные вопросы и задания
333
ГЛАВА 4. ПРОГРАММИРОВАНИЕ ЗАПРОСОВ ОПРЕДЕЛЕНИЯ ДАННЫХ
334
4.1. Домены
336
4.2. Создание, изменение и удаление базовых таблиц
341
4.2.1. Создание таблицы
341
4.2.2. Определение ограничений столбца
347
4.2.3. Определение ограничений таблицы
354
4.2.4. Удаление таблицы
359
4.2.5. Изменение определения таблицы
360
4.3. Индексы
371
4.4. Временные и внешние таблицы
380
4.5. Хранимые представления
385
4.6. Последовательности
399
4.7. Комментарии к объектам базы данных
404
Контрольные вопросы и задания
407
ГЛАВА 5. ПРОГРАММИРОВАНИЕ ЗАПРОСОВ МАНИПУЛИРОВАНИЯ ДАННЫМИ
408
5.1. Добавление данных
409
5.1.1. Явный запрос INSERT
411
5.1.2. Запрос INSERT с подзапросом
415
5.2. Обновление данных
419
5.2.1. Явный запрос UPDATE
421
5.2.2. Запрос UPDATE с подзапросами
423
5.3. Удаление данных
428
5.3.1. Явный запрос DELETE
429
5.3.2. Запрос DELETE с подзапросом
430
5.4. Условное манипулирование данными
435
5.4.1. Запрос UPDATE OR INSERT
435
5.4.2. Запрос MERGE
438
5.5. Обновление представлений
443
5.6. Оптимизация запросов на выборку данных
456
5.6.1. Обработка запроса в реляционных системах управления базами данных
457
5.6.2. Основные направления анализа «медленных» SQL-запросов
461
5.6.3. Рекомендации по построению и реструктуризации запросов конкретных типов
465
Контрольные вопросы и задания
473
ГЛАВА 6. ПРОЦЕДУРНОЕ И СОБЫТИЙНОЕ ПРОГРАММИРОВАНИЕ
474
6.1. Основы разработки исполняемых модулей
478
6.1.1. SQL-сценарии
480
6.1.2. Переменные
487
6.1.3. Операторы ветвления, циклов и переходов
491
6.1.4. Курсоры
496
6.1.5. Обработка исключительных ситуаций
504
6.1.6 Сообщения о событии базы данных
512
6.2. Хранимые процедуры
513
6.2.1. Определение, модификация и удаление процедур
515
6.2.2. Виды хранимых процедур
519
6.2.3. Селективные процедуры
523
6.2.4. Выполняемые процедуры
548
6.2.5. Динамический SQL
564
6.3. Хранимые функции
575
6.4. Процедурные пакеты
579
6.5. Выполнимые блоки
585
6.6. Триггеры
587
6.6.1. Триггеры DML
590
6.6.2. Триггеры DDL
615
6.6.3. Триггеры базы данных
622
Контрольные вопросы и задания
625
ГЛАВА 7. ПРОГРАММИРОВАНИЕ ЗАПРОСОВ УПРАВЛЕНИЯ ДОСТУПОМ
626
7.1. Принципы доступа к данным. Управление пользователями
627
7.2. Привилегии доступа и передача привилегий
631
7.3. SQL-роли
639
7.4. Привилегии на представления
642
7.5. Удаление привилегий
644
Контрольные вопросы и задания
647
ГЛАВА 8. УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ
648
8.1. Понятие транзакции
649
8.2. Восстановление данных
651
8.3. Параллелизм
658
Контрольные вопросы и задания
665
ЛАБОРАТОРНЫЙ ПРАКТИКУМ
666
Лабораторная работа № 1. Основы реляционных баз данных. Учебная база данных
667
Лабораторная работа № 2. Построение запросов на выборку данных из одной таблицы
672
Лабораторная работа № 3. Селективные запросы к нескольким таблицам (соединения)
673
Лабораторная работа № 4. Построение селективных запросов с подзапросами
674
Лабораторная работа № 5. Построение запросов на определение данных
675
Лабораторная работа № 6. Построение запросов на модификацию данных
678
Лабораторная работа № 7. Программирование хранимых процедур
683
Лабораторная работа № 8. Программирование триггеров
690
Лабораторная работа № 9. Построение запросов управления доступом
695
ПРИЛОЖЕНИЯ
698
Приложение А. Описание учебного проекта «Биллинг коммунальных ресурсов и жилищных услуг»
698
Приложение Б. Описание учебной базы данных «Учет абонентов коммунального биллинга»
709
Приложение В. Системный каталог базы данных СУБД «Ред База Данных»
725
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
733