В курсе изучаются современные возможности PL/SQL по разработке и отладке PL/SQL-программ, наиболее эффективно взаимодействующих с базой данных и другими приложениями. Студенты учатся использовать все функциональные возможности курсоров, пакетов, больших объектов, коллекций и методов взаимодействия с другими приложениями. Изучаются аспекты написания оптимального кода, использования внешних подпрограмм, написанных на языках C и Java, применения механизма детального контроля доступа, защиты кода от SQL-внедрений.
Цели курса
- Создание эффективных пакетов и программных единиц PL/SQL
- Написание кода, взаимодействующего с другими приложениями и операционной системой
- Создание приложений, использующих коллекции
- Создание оптимальных с точки зрения производительности программ.
- Применение механизмов детального контрол я доступа
- Написание кода, взаимодействующего с большими объектами (LOBs), и использование SecureFile LOBs
Аудитория
- Разработчики приложений
- Администраторы баз данных
Требуемая подготовка
- Знания SQL и PL/SQL
- Oracle Database: Разработка программных модулей на PL/SQL
- Oracle Database: Основы SQL
- Oracle Database: SQL Tuning for Developers
Программа курса
Модуль 1. Введение
- Задачи курса
- Расписание курса
- Описание сред разработки
- Таблицы, данные и инструменты, используемые в этом курсе
Модуль 2. Обзор концепций программирования на PL/SQL
- Структура блока PL/SQL
- Пакеты, процедуры и функции
- Курсоры
- Обработка исключений
- Зависимости
Модуль 3. Дизайн кода PL/SQL
- Оп исание предопределённых типов данных
- Создание подтипов на основе имеющихся в приложении типов
- Использование разных подходов при дизайне курсоров
- Использование переменных курсоров
- Белый список
Модуль 4. Обзор коллекций
- Обзор коллекций
- Использование ассоциативных массивов
- Навигация при помощи ассоциативных методов
- Использование вложенных таблиц
- Использование массивов переменной длины
- Сравне ние вложенных таблиц и массивов переменной длины
Модуль 5. Использование коллекций
- Написание PL/SQL программ, использующих коллекции
- Эффективное использование коллекций
- Улучшения в типах переменных привязки в PL/SQL
Модуль 6. Манипулирование большими объектами
- Работа с LOB
- Обзор SecureFile LOB
Модуль 7. Использование продвинутых методов интерфейсов
- Вызов внешних программ из PL/SQL
- Преимущества вызова внешних процедур
- Вызов внешних процедур, написанных на других языках программирования
- Вызов из PL/SQL процедур, написанных на языке C
- Вызов из PL/SQL процедур, написанных на языке Java
Модуль 8. Настройка производительности кода PL/SQL
- Влияние компилятора
- Настройка кода PL/SQL
- Управление автоматическим встраиванием подпрограмм
- Идентификация проблем использования памят и и ее настройка
- Сетевые проблемы
Модуль 9. Увеличение производительности за счет кэширования
- Описание кэширования результатов
- Использование кэша результатов запросов
- Использование кэша функций PL/SQL
- Обзор особенностей кэша функций PL/SQL
Модуль 10. Анализ кода PL/SQL
- Информация о коде
- Области видимости PL/SQL
- Пакет DBMS_METADATA
- Улучшения PL/SQL
Модуль 11. Профилирование и трассировка кода PL/SQL
- Трассировка выполнения PL/SQL
- Шаги трассировки PL/SQL
Модуль 12. Внедрение виртуальной частной базы данных при помощи детального контроля доступа
- Описание работы детального контроля доступа
- Описание методов детального контроля доступа
- Описание контекста приложения
- Создание контекста приложения
- Применение контекста приложения
- Процедуры пакета DBMS _RLS
- Применение политики
- Представления словаря данных, содержащие информацию о детальном контроле доступа
Модуль 13. Защита кода от SQL-инъекций
- Описание SQL-инъекций
- Уменьшение зон, уязвимых для SQL-инъекций
- Использование DBMS_ASSERT