Курс надає знання та навички використання 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-бібліотеки