11gAPLS

Oracle Database 11g: Передовые методы PL/SQL


Oracle Database 11g: Advanced PL/SQL

В курсе изучаются современные возможности PL/SQL по разработке и отладке PL/SQL-программ, наиболее эффективно взаимодействующих с базой данных и другими приложениями. Студенты учатся использовать все функциональные возможности курсоров, пакетов, больших объектов, коллекций и методов взаимодействия с другими приложениями. Изучаются аспекты написания оптимального кода, использования внешних подпрограмм, написанных на языках C и Java, применения механизма детального контроля доступа, защиты кода от SQL-инъекций.

Цели курса

  • Создание эффективных пакетов и программных единиц PL/SQL
  • Написание кода, взаимодействующего с другими приложениями и операционной системой
  • Создание приложений, использующих коллекции
  • Создание оптимальных с точки зрения производительности программ.
  • Применение механизмов детального контроля доступа
  • Написание кода, взаимодействующего с большими объектами (LOBs), и использование SecureFile LOBs


Аудитория

  • Разработчики приложений
  • Администраторы баз данных

Требуемая подготовка

Программа курса

Модуль 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-внедрений