Цель курса - предоставить слушателям знания, умения и навыки, необходимые для построения базовых запросов и программирования на SQL для реляционных СУБД Firebird SQL Server, Microsoft SQL Server, Oracle Database, PostgreSQL, Ред База Данных.
Авторский дистанционный курс по SQL для реляционных СУБД Firebird SQL Server, Microsoft SQL Server, PostgreSQL, Oracle Database поставлен по учебнику Маркина А.В. "Программирование на SQL"с грифом учебно-методического отдела высшего образования.
На курсе Вы научитесь свободно и уверенно пользоваться современными базами данных, языком структурированных запросов и процедурным языком.
Курс предназначен для начинающих администраторов и разработчиков реляционных баз данных и приложений.
Требуемая предварительная подготовка:
- Умение работать в Windows или Linux.
- Знание основ программирования.
- Базовые знания теории реляционных баз данных.
По окончании курса Вы будете уметь:
- Использовать современные системы управления реляционными базы данных.
- Создавать запросы к базам данных на языке SQL.
- Использовать сложные конструкции процедурного SQL для программирования хранимых процедур и функций, а также триггеров.
- Управлять доступом к объектам базы данных.
- Работать с транзакциями.
Здесь можно в режиме 7/24 приобрести устойчивые практические навыки программирования на SQL и проверить полученные знания и умения.
СОДЕРЖАНИЕ
Предисловие
1.Реляционная модель данных
1.1. Определение реляционной модели
1.2. Таблицы
1.3. Первичные ключи
1.4. Внешние ключи
1.5. Связи между таблицами
1.6. Нормализация отношений
1.7. Модели базы данных на логическом и физическом уровнях
1.8. Целостность данных
1.9. Архитектура «клиент-сервер»
Контрольные вопросы
2. Введение в SQL
2.1. Объекты структуры базы данных
2.2. Функции SQL
2.3. Достоинства SQL
2.4. Формы использования SQL
2.5. Firebird SQL Server
2.6. Правила синтаксиса и основные запросы SQL
2.7. Имена объектов в SQL. Константы, отсутствующие данные
2.8. Выражения
2.9. Типы данных
Контрольные вопросы
3. Язык выборки данных
3.1. Синтаксис запроса SELECT
3.2. Запросы к одной таблице
3.2.1. Предложения SELECT и FROM
3.2.2. Предложение WHERE
3.2.2.1. Простое сравнение
3.2.2.2. Проверка на принадлежность диапазону значений
3.2.2.3. Проверка на соответствие шаблону
3.2.2.4. Проверка на наличие последовательности символов
3.2.2.5. Проверка на совпадение с началом строки
3.2.2.6. Проверка на членство во множестве
3.2.2.7. Проверка значения на NULL
3.2.2.8. Проверка двух значений на отличие
3.2.2.9. Проверка на соответствие регулярному выражению
3.2.2.10. Составные условия поиска
3.2.3. Функции в SQL
3.2.3.1. Классификация функций
3.2.3.2. Скалярные функции
3.2.3.3. Агрегатные функции
3.2.3.4. Функции для списка значений
3.2.3.5. Дополнительные возможности вывода в предложении SELECT
3.2.4. Предложение GROUP BY
3.2.5. Предложение HAVING
3.2.6. Сортировка результатов запроса
3.3. Многотабличные и вложенные запросы
3.3.1. Соединения таблиц
3.3.1.1. Неявное соединение таблиц
3.3.1.2. Явное соединение таблиц
3.3.1.3. Стандартные соединения (объединения) таблиц
3.3.1.4. Соединение таблицы со своей копией
3.3.2. Запросы с вложенными запросами
3.3.2.1. Виды вложенных запросов
3.3.2.2. Запросы с простыми подзапросами
Простые подзапросы в предложениях WHERE и HAVING
3.3.2.3. Запросы со связанными подзапросами
3.3.2.4. Предикаты ANY и ALL
3.3.2.5. Предикат SINGULAR
3.3.2.6. Предикат EXISTS
3.3.3. Объединение результатов нескольких запросов
3.3.4. Рекурсивные подзапросы в предложении WITH
3.4. Оптимизация запросов на выборку данных
3.4.1. Обработка запроса в реляционных СУБД
3.4.2. Основные направления анализа «медленных» SQL-запросов
3.4.3. Рекомендации по разработке и реструктуризации запросов конкретных типов
Контрольные вопросы
4. Язык определения данных
4.1. Домены
4.2. Создание, изменение и удаление базовых таблиц БД
4.2.1. Создание таблицы
4.2.2. Определение ограничений столбца
4.2.3. Определение ограничений на таблицу
4.2.4. Удаление таблицы БД
4.2.5. Изменение определения таблицы
4.3. Индексы
4.4. Временные таблицы
4.5. Представления
4.6. Комментарии к объектам базы данных
Контрольные вопросы
5. Язык манипулирования данными
5.1. Добавление новых данных
5.1.1. Однострочный запрос INSERT
5.1.2. Многострочный запрос INSERT
5.2. Обновление существующих данных
5.2.1. Простой запрос UPDATE
5.2.2. Запрос UPDATE с подзапросом
5.3. Обобщенное обновление и добавление данных
5.4. Слияние данных
5.5. Удаление существующих данных
5.5.1. Простой запрос DELETE
5.5.2. Запрос DELETE с подзапросом
5.6. Обновление представлений
Контрольные вопросы
6. Процедурный язык
6.1. Основы разработки модулей на PSQL
6.1.1. Переменные
6.1.2. Условные операторы
6.1.2.1. Оператор ветвления IF
6.1.2.2. Оператор WHILE
6.1.3. Курсоры в PSQL
6.1.3.1. Неявный курсор
6.1.3.2. Явный курсор
6.1.4. SQL-сценарии
6.1.5. Генераторы
6.1.6. Исключительные ситуации
6.2. Хранимые процедуры
6.2.1. Определение хранимых процедур
6.2.2. Процедуры выбора
6.2.3. Выполняемые процедуры
6.3. Триггеры
6.3.1. Триггеры DML
6.3.1.1. Определение триггера
6.3.1.2. Примеры поддержания ссылочной целостности
6.3.1.3. Модификация и удаление триггера
6.3.2. Триггеры базы данных
6.4. Выполняемые блоки
Контрольные вопросы
7.1. Управление доступом к данным
7.1.1. Требования к безопасности данных
7.1.2. Привилегии доступа и передача привилегий
7.1.3. SQL роли
7.1.4. Привилегии на представления
7.1.5. Отмена привилегий
7.1.6. Автоматизированное управление доступом
7.2. Транзакции
7.2.1. Понятие транзакции
7.2.2. Восстановление данных
7.2.3. Параллелизм
Контрольные вопросы
Лабораторный практикум
Лабораторная работа № 1. Инструменты разработчика и администратора баз данных. Учебная база данных.
Лабораторная работа № 2. Построение простых запросов на чтение данных.
Лабораторная работа № 3. Построение многотабличных запросов (соединения) на чтение данных.
Лабораторная работа № 4. Построение многотабличных и вложенных запросов на чтение данных.
Лабораторная работа № 5. Построение запросов на определение данных.
Лабораторная работа № 6. Построение запросов на модификацию данных.
Лабораторная работа № 7. Программирование хранимых процедур.
Лабораторная работа № 8. Программирование триггеров.
Лабораторная работа № 9. Построение запросов управления доступом.
Библиографический список
Приложение А. Описание учебного проекта.
Приложение Б. Описание учебной базы данных
Приложение В. Скрипты учебной базы данных
- Управляющий: Маркин Александр Васильевич