Курс предоставляет знания и навыки использования SQL и PL/SQL в Oracle 11g-19с в процессе разработки web-приложений. Слушатели научатся использовать новые возможности систем управления базами данных, осуществлять настройку и мониторинг серверов баз данных, а также оптимизировать производительность SQL-запросов.
По окончании курса слушатели смогут:
- создавать приложения и запросы на SQL и PL/SQL на новом, современном уровне;
- использовать новые архитектурные особенности сервера Oracle 11g, 12C;
- осуществлять тонкую настройку серверной части Oracle 11g, 12C с использованием SQL/PLSQL;
- использовать новые возможности SQL и PL/SQL;
- осуществлять настройку производительности SQL-запросов;
- осуществлять мониторинг и трассировку SQL;
- разрабатывать web-приложения средствами PL/SQL.
Аудитория
Профессиональные разработчики PL/SQL, желающие систематизировать свои знания PL/SQL и разрабатывать приложения, которые соответствуют современным стандартам.
Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
- знание PL/SQL;
- основы программирования для сервера Oracle.
- Интегрированная и контейнерная базы данных Oracle 11, 19. Логическая и физическая компоновка базы данных. Процессы управления. Архитектура табличных пространств. Оптимальное использование памяти сервером. Понятие параллельного сервера. TNS-адресаты. Настройка процессов прослушивания. NLS_LANG и настройка многоязыковой поддержки, особенности. Обзор новых возможностей Oracle 19с
- Новые типы данных 11g, 19c. Функции для работы с TimeStamp. Рациональное использование табличных пространств для размещения больших объектов. Использование объектных и агрегатных типов для хранения данных
- Использование подзапросов во фразе From. Подзапросы. Коррелированные подзапросы. Древовидные структуры. Новые конструкции во фразе SELECT.(rollup, cube, case). Аналитические функции в запросах. Вложенные таблицы CURSOR в операторе SELECT
- Язык манипулирования данными DML. Выполнение сложных операторов DML с подзапросами. Оператор Merge
- Оптимизация SQL-запросов. Настройка производительности приложения. Разделяемый пул и глобальная рабочая область. Oracle-оптимизатор. Команда Analyze. Оптимизация COST и RULE. Организация и планирование сбора статистики по объектам схемы. Построение диаграмм распределения данных в таблицах. Указатели оптимизатору HINTS. Ранжирование методов доступа. Анализ запросов с целью повышения скорости их выполнения, задание режимов оптимизации. Команда Explain Plan и алгоритмы ее использования. Правила оптимизации запросов и их оценка. Практические примеры оптимизации. Новые возможности Oracle при описании подсказок HINTS. Самонастраиваемая база данных Oracle. Обеспечение мониторинга изменений в таблицах. Автоматический сбор статистики по таблицам
- Язык DDL. Создание и изменение таблиц DDL. Команда Create Table. Определение параметров хранения таблиц на физическом уровне. Локальное управление табличными пространствами. Сегменты, экстенты, блоки. Параметры блоков хранения данных. Векторное хранение колонок в памяти сервера, технология InMemory
- Создание временных транзакционных и сессионных таблиц. Создание таблиц с разбивкой на партиции. Ссылочные партиционные таблицы. Глобальные и локальные индексы. Индексные таблицы. Доступ к данным в индексных таблицах, проблемы обновления данных. Особенности размещения индексных таблиц в физических блоках дисковой памяти. Таблицы, организованные как внешние
- Декларативные ограничения целостности. Индексы и ограничения. «Откладываемые» ограничения целостности и проблемы каскадного обновления первичных ключей. Команда Set Constraint. Изменение структуры таблицы, команда Alter Table и ограничения целостности. Создание неуникальных индексов для первичных и уникальных ключей. Мгновенное включение ограничений
- Транзакции. Оптимистические и пессимистические запросы. Алгоритмы совместного доступа к базам данных. Конкуренция, параллельность и согласованность. Транзакции и взаимовлияние. Потери изменений, черновое чтение, повторяемое и неповторяемое чтение. Уровни изоляции. Алгоритмы блокирования Oracle, уровни блокировок. Блокировки DML, табличные и строчные блокировки, тупики. Разрешения тупиков. DDL-исключающие и разделяемые блокировки, многовариантность. Многовариантность и согласованность чтения на уровне транзакций. Ошибка по причине слишком старого моментального снимка
- Другие объекты. Представления. Ограничение представлений и правила их обновляемости, триггер Instead Off. Индексы. Правила применения и рекомендации Oracle. Использование функций в индексах. Deterministic-функции. Индексы и оптимизация. Необходимость использования индексов. Особенности хранения индексов на дисковом пространстве. Кластеры. Hash-кластеры с сортировкой и кластеры одной таблицы. Необходимость использования кластеров. Практический пример преобразования некластеризованных таблиц в кластеризованные. Кластерные индексы. Связи с базами данных. Использование ролей для разграничения доступа к данным, безопасность. Практический пример создания связей со схемами нескольких удаленных баз данных. Снимки и журналы снимков. Методы обновления. Материализованные представления данных. Принудительное обновление данных
- Новые типы данных PL/SQL. Агрегатные типы данных, массивы и таблицы PL/SQL. Оператор BULK COLECT и операции DML. Извлечение данных из базы данных в таблицы PL/SQL, оператор BULK FETCH. Преобразование типов данных. Ссылочные типы данных. Ассоциативные таблицы и правила доступа к элементам
- Курсоры. Явные и неявные курсоры. Атрибуты и параметры курсоров. Использование курсоров внутри управляющих блоков. Оператор CURSOR и фраза INTO. Обновляемые курсоры и транзакции
- Процедуры, функции и пакеты. Ограничения для пользовательских SQL-процедур. Зависимые процедуры и их сопровождение. Прагмы RESTRICT_REFERENCES, SERIALLY_REUSABLE. Зависимые пакеты. Использование хранимых функций в SQL-запросах. Закрепление модулей в разделяемом пуле. Оптимизация. Автономные транзакции. Правила распространения автономных транзакций. Использование функций с автономными транзакциями в SQL-запросах. Мутационные таблицы
- Исключительные ситуации. Предопределенные и пользовательские исключительные ситуации. Явное возбуждение исключений. Процедура RAISE_APPLICATION_ERROR. Методика обработки ошибок в PL/SQL
- Триггеры таблиц как разновидность хранимых процедур. Атрибуты триггеров Oracle. Обработка исключительных ситуаций в триггерах. Триггеры базы данных и схем пользователя. Автономные транзакции в триггерах
- Статический и динамический SQL. Почему «умер» пакет DBMS_SQL. Четыре алгоритма выполнения динамического запроса. Динамическое выполнение DDL-операторов. Связывание входных параметров и подготовка выходных переменных для DML-операторов
- Объектная опция Oracle. Наследование и полиморфизм, абстрактные классы. Создание собственных классов. Использование классов в PL/SQL. Классы в таблицах базы данных. Объектные таблицы. Ссылки на объекты и таблицы с полями типа REF OBJECT. Зависшие ссылки и их оптимизация. Вложенные таблицы и массивы. Оператор CAST и MULTISET. Представления с агрегированными типами данных. Наследование и полиморфизм в Oracle. Абстрактные типы. Оператор TREAT и приведение типов
- Обзор использования основных пакетов базы данных: DBMS_PIPE, DBMS_JOB, DBMS_ALERT, UTL_FILE, UTL_TCP, UTL_SMTP, UTL_HTTP
- Пакет DBMS_DBWS для доступа к внешним сервисам по протоколу SOAP
- Порядок компиляции PL/SQL в C код, а затем сборка в SO или DLL-библиотеку