В курсе изучаются современные возможности PL/SQL по разработке и отладке PL/SQL-программ, наиболее эффективно взаимодействующих с базой данных и другими приложениями. Студенты учатся использовать все функциональные возможности курсоров, пакетов, больших объектов, коллекций и методов взаимодействия с другими приложениями. Изучаются аспекты написания оптимального кода, использования внешних подпрограмм, написанных на языках C и Java, применения механизма детального контроля доступа, защиты кода от SQL-инъекций.
Цели курса
- Создание эффективных пакетов и программных единиц PL/SQL
- Написание кода, взаимодействующего с другими приложениями и операционной системой
- Создание приложений, использующих коллекции
- Создание оптимальных с точки зрения производительности программ.
- Применение механизмов детального контроля доступа
- Написание кода, взаимодействующего с большими объектами (LOBs), и использование SecureFile LOBs
Аудитория
- Разработчики приложений
- Администраторы баз данных
Программа курса
Модуль 1. Обзор среды разработки
Модуль 2. Рекомендации по проектированию
- Описание предопределённых типов данных
- Создание подтипов на основе имеющихся в приложении типов
- Проектирование курсоров
- Использование курсорных переменных
- Передача курсорных переменных как параметров программ
- Сравнение курсоров и курсорных переменных
Модуль 3. Использование коллекций
- Обзор коллекций
- Использование ассоциативных массивов
- Использование вложенных таблиц
- Использование массивов переменной длины
- Написание PL/SQL программ, использующих коллекции
- Эффективное использование коллекций
Модуль 4. Вызов внешних процедур, написанных на других языках программирования
- Вызов из PL/SQL процедур, написанных на языке C
- Вызов из PL/SQL процедур, написанных на языке Java
Модуль 5. Применение детального контроля доступа
- Обзор детального контроля доступа
- Описание методов детального контроля доступа
- Описание контекста приложения
- Создание контекста приложения
- Применение контекста приложения
- Процедуры пакета DBMS_RLS
- Применение политики
- Представления словаря данных, содержащие информацию о детальном контроле доступа
Модуль 6. Работа с большими объектами
- Описание больших объектов (LOBs)
- Работа с внутренними LOBs
- Описание BFILEs
- Создание директорий для доступа к объектам BFILEs
- Описание пакета DBMS_LOB
- Удаление LOBs
- Создание временных LOBs с помощью пакета DBMS_LOB
Модуль 7. Администрирование SecureFile LOBs
- Введение в SecureFile LOBs
- Окружение для SecureFile LOBs
- Использование SecureFile LOBs для хранения документов
- Преобразование BasicFile LOBs в SecureFile LOB формат
- Проверка производительности SecureFile LOBs
- Разрешение дедупликации и сжатия
- Разрешение шифрования
Модуль 8. Оптимизация производительности
- Влияние компилятора
- Настройка производительности кода PL/SQL
- Управление автоматическим встраиванием подпрограмм ( intra unit inlining) оптимизатором
- Идентификация проблем использования памяти и ее настройка
Модуль 9. Увеличение производительности за счет SQL и PL/SQL кэширования
- Кэширование результатов запроса при помощи Query Result Cache
- Использование кэширования результирующего набора SQL-запроса
- Кэширование PL/SQL-функций
Модуль 10. Анализ кода PL/SQL
- Использование встроенных пакетов Oracle и представлений словаря данных для получения информации о коде
- Анализ определяемых пользователем идентификаторов с помощью управляемого компилятором инструментального средстваPL/Scope
- Получение метаданных в XML или DDL виде при помощи пакета DBMS_METADATA , например, для для пересоздания объектов
Модуль 11. Профилирование и трассировка кода PL/SQL
- Трассировка выполнения кода
- Профилирование программ на PL/SQL
Модуль 12. Защита кода от SQL-инъекций
- Описание SQL-инъекций
- Уменьшение зон, уязвимых для SQL-внедрений
- Использование DBMS_ASSERT
- Создание неуязвимого для SQL-внедрений кода
- Проверка кода на возможность SQL-внедрений