Аудитория: Профессиональные разработчики PL/SQL, желающие упорядочить свои знания в PL/SQL и разрабатывать приложения, соответствующие современным стандартам.
Необходимая подготовка: знание Pl/SQL, основы программирования Oracle сервера.
Цель: по окончанию курса слушатели смогут создавать приложения и запросы на SQL и PL/SQL на новом, современном уровне.
Задачи: показать новые архитектурные особенности сервера Oracle 11g, 12C и его тонкую настройку с точки зрения разработчика серверной части приложения с использованием SQL/PLSQL. Новые возможности SQLи PL/SQL. Настройку производительности SQL запросов. Мониторинг и трассировку SQL. Разработку Webприложений средствами PL/SQL.
Программа
Oracle 11, 19 – интегрированная и контейнерная база данных. Логическая и физическая компоновка базы данных. Процессы управления. Архитектура табличных пространств. Оптимальное использование памяти сервером. Понятие параллельного сервера. TNS адресаты. Настройка процессов прослушивания. NLS_LANG и настройка многоязыковой поддержки – особенности. Новые возможности Oracle19с (обзор).
Новые типы данных 11g, 19c. Функции для работы с TimeStamp Рациональное использование табличных пространств для размещения больших объектов. Использование объектных и агрегатных типов для хранения данных.
SELECT. Использование подзапросов во фразе From. Подзапросы. Коррелированные подзапросы. Древовидные структуры. Новые конструкции во фразе SELECT. (rollup, cube, case…). Аналитические функции в запросах. Вложенные таблицы (CURSOR) в операторе SELECT.
Язык манипулирования данными DML. выполнения сложных операторов DML с подзапросами. Оператор Merge.
Оптимизация SQL запросов: Настройка производительности приложения. Разделяемый пул и глобальная рабочая область. Oracle оптимизатор. Команда Analyze. COST и RULE оптимизация. Организация и планирование сбора статистики по объектам схемы. Построение диаграмм распределения данных в таблицах. Указатели (HINTS) оптимизатору. Ранжирование методов доступа. Анализ запросов с целью повышения скорости их выполнения, задание режимов оптимизации. команда Explain Plan и алгоритмы ее использования. Правила оптимизации запросов и их оценка. Практические примеры оптимизации, Новые возможности Oracle при описании Hints (подсказок). Oracle – самонастраиваемая база данных. Обеспечение мониторинга изменений в таблицах. Автоматический сбор статистики по таблицам
Язык DDL. Создание и изменение таблиц (DDL). Команда CreateTable. Определение параметров хранения таблиц на физическом уровне. Локальное управление табличными пространствами. Сегменты, экстенты, блоки. Параметры блоков хранения данных. Векторное хранение колонок в памяти сервера — технология InMemory
Создание временных транзакционных и сессионных таблиц. Создание таблиц с разбивкой на партиции. Ссылочные партиционные таблицы. Глобальные и локальные индексы. Индексные таблицы. Доступ к данным в индексных таблицах, проблемы обновления данных. Особенности размещения индексных таблиц в физических блоках дисковой памяти. Таблицы, организованные как внешние.
Декларативные ограничения целостности. Индексы и ограничения. “Откладываемые” ограничения целостности и проблемы каскадного обновления первичных ключей. Команда SET CONSTRAINT. Изменение структуры таблицы, команда Alter table и ограничения целостности. Создание неуникальных индексов для первичных и уникальных ключей. Мгновенное включение ограничений.
Транзакции. Оптимистические и пессимистические запросы. Алгоритмы совместного доступа к базам данных. Конкуренция параллельность и согласованность. Транзакции и взаимовлияние. Потери изменений, черновое чтение, повторяемое и неповторяемое чтение. Уровни изоляции. Алгоритмы блокирования Oracle, уровни блокировок. Блокировки DML – табличные и строчные блокировки, тупики. Разрешения тупиков. Блокировки DDL-исключающие и разделяемые блокировки, многовариантность. Многовариантность и согласованность чтения на уровне транзакций. Ошибка - слишком старый моментальный снимок.
Другие объекты. Представления. Ограничение представлений и правила их обновляемости, Insteadoff триггер. Индексы. Правила применения и рекомендации Oracle. Использование функций в индексах. Deterministic функции. Индексы и оптимизация. Необходимость использования индексов. Особенности хранения индексов на дисковом пространстве. Кластеры. Hash кластеры с сортировкой и кластеры одной таблицы. Необходимость использования. Практический пример преобразования некластеризованных таблиц в кластеризованные. Кластерные индексы. Связи с базами данных. Использование ролей для разграничения доступа к данным – безопасность. Практический пример создания связей со схемами нескольких удаленных баз данных. Снимки и журналы снимков. Методы обновления. Материализованные представления данных. Принудительное обновление данных.
Новые типы данных PL/SQL. Агрегатные типы данных (массивы и таблицы PL/SQL). Оператор BULKCOLECT и операции DML. Извлечение данных из базы данных в PL/SQL таблицы – оператор BULKFETCH. Преобразование типов данных. Ссылочные типы данных. Ассоциативные таблицы и правила доступа к их элементам.
Курсоры. Явные и неявные курсоры. Атрибуты и параметры курсоров. Использование курсоров внутри управляющих блоков. Оператор CURSOR и фраза INTO. Обновляемые курсоры и транзакции.
Процедуры функции и пакеты. Ограничения для пользовательских SQL процедур. Зависимые процедуры и их сопровождение. Прагмы RESTRICT_REFERENCES, SERIALLY_REUSABLE. Зависимые пакеты. Использование хранимых функций в SQL запросах. Закрепление модулей в разделяемом пуле. Оптимизация. Автономные транзакции. Правила распространения автономных транзакций. Использование функций с автономными транзакциями в SQL запросах. Мутационные таблицы.
Исключительные ситуации. Предопределенные и пользовательские исключительные ситуации. Явное возбуждение исключений. Процедура RAISE_APPLICATION_ERROR. Методика обработки ошибок в PL/SQL.
Триггеры таблиц – как разновидность хранимых процедур. Атрибуты триггеров Oracle. Обработка исключительных ситуаций в триггерах. Триггеры базы данных и схем пользователя. Автономные транзакции в триггерах .
Статический и динамический SQL. Почему “УМЕР” пакет DBMS_SQL. Четыре алгоритма выполнения динамического запроса. Динамическое выполнение DDL операторов. Связывание входных параметров и подготовка выходных переменных для DML операторов.
Объектная опция Oracle. Наследование и полиморфизм, абстрактные классы. Создание собственных классов. Использование классов в PL/SQL. Классы в таблицах базы данных. Объектные таблицы. Ссылки на объекты и таблицы с полями типа REFOBJECT. Зависшие ссылки и их оптимизация. Вложенные таблицы и массивы. Оператор 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 библиотеку.
С помощью БД есть возможность хранить и обрабатывать огромное количество информации, что востребовано в современных компаниях. Правда во многих случаях нужны именно свои решения для этого. Занимаются их созданием разработчики баз данных. Они относятся к числу IT-специалистов, чей труд сейчас...
Крупным компаниям и IT-сектору приходится иметь дело с большими объёмами информации, собранными в базы данных. Вполне очевидно необходимость тех, кто работает с БД и организует доступ к ним. SQL-разработчики этим и занимаются, а значит являются достаточно востребованными специалистами.
Базы данных полезный и удобный инструмент для многих компаний, причём не только в сфере IT. Применяют их достаточно многие, ведь они позволяют хранить, систематизировать и использовать большие объёмы информации. Однако зачастую для целей бизнеса системы БД требуют адаптации под конкретные цели....
Чтобы освоить востребованную профессию IT-специалиста, потребуются знания языков программирования. Мы сделали подборку самых популярных их них, освоив которые вы сможете построить карьеру мечты.