Описание курса:
В курсе изучаются современные возможности PL/SQL по разработке и отладке PL/SQL-программ, наиболее эффективно взаимодействующих с базой данных и другими приложениями. Слушатели научатся использовать все функциональные возможности курсоров, пакетов, больших объектов, коллекций и методов взаимодействия с другими приложениями. Рассматриваются вопросы написания оптимального кода, использования внешних подпрограмм, написанных на языках C и Java, применения механизма детального контроля доступа, а также защиты кода от SQL-внедрений
Необходимая подготовка:
Перед обучением на данном курсе слушателям необходимо прослушать курсы:
• Oracle Database 11g: Основы SQL
• Oracle Database 11g: Основы PL/SQL
или обладать эквивалентными знаниями и навыками.
Результат обучения:
После изучения курса слушатель будет уметь:
• Писать код, взаимодействующий с другими приложениями и операционной системой
• Создавать приложения, использующие коллекции
• Применять механизм детального контроля доступа
• Писать код, взаимодействующий с большими объектами(LOBs), и использовать SecureFile LOBs
• Защищать код от sql-внедрений
• Создавать оптимальные с точки зрения производительности программы.
Программа курса:
Модуль 1. Обзор среды разработки
• SQL Developer
• SQL*Plus
Модуль 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-внедрений.