Курсы High Tech

Системы управления базами данных

Oracle. Программирование на SQL, PL/SQL и Java - дистанционно!


Продолжительность: 56 ч    

Описание курса

Курс предназначен для разработчиков, программистов и администраторов баз данных. Слушатели должны обладать хорошим уровнем компьютерной грамотности, и иметь опыт программирования. Обучение рассчитано на 7 полных дней (56 часов) обучения с инструктором онлайн.

Знания даются по следующим версиям:

Oracle Database 8i
Oracle Database 9i
Oracle Database 10g
Oracle Database 11g
Oracle Database 12c

Для грамотного использования Oracle необходимо иметь хорошее понимания языка SQL. Данный курс раскрывает полный спектр возможностей языка SQL в Oracle и ряд аспектов неочевидных особенностей построения типовых конструкций БД.

PL/SQL - процедурный язык, разработанный фирмой Oracle для написания хранимых в БД подпрограмм. PL/SQL обеспечивает общую основу процедурного программирования как в клиентских приложениях, так и на стороне сервера, в том числе хранимых на сервере подпрограмм, пакетов и триггеров базы данных.

Java - объектный язык, который может использоваться для работы с Oracle в самых разных конфигурациях, в том числе, благодаря встроенной в Oracle Java-машине, в качестве второго языка для хранимых процедур. Java не зависит от конкретных платформ и может служить эффективным средством интеграции БД Oracle с другими приложениями, в том числе в Internet.

Курс сопровождается практическими упражнениями, позволяющими закрепить понимание базовых понятий и освоить основные технические приемы программирования на языках SQL, PL/SQL и Java.

По окончании курса слушатели получают возможность самостоятельного программирования Oracle на этих трех языках для решения задач разработки приложений в архитектуре клиент-сервер и в трехзвенной архитектуре, а также задач администрирования БД.

Основное отличие этого курса от ряда других со схожей тематикой в том, что целью ставится научить конкретных слушателей реальной работе с Oracle на этих языках, а не прочитать формально программу, подготовленную третьей стороной.

ДИСТАНЦИОННОЕ обучение проводится по скайпу (не бизнес-версия), с подключением к vpn – серверу учебного центра с очным участием тренера (слушателям курса направляется инструкция по подключению).
Работа ведется в активном режиме с выполнением лабораторных работ согласно программе курса.

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

Введение в Oracle SQL
1. Основные понятия

Базы данных и реляционная модель
Базы данных
СУБД
Реляционный подход к моделированию данных
Реализация реляционной СУБД
Другие подходы к моделированию данных и другие типы СУБД
Что такое SQL ?
История и стандарты
Oracle-диалект SQL
PL/SQL

2. SQL*Plus и ввод предложений на SQL

3. Пример "схемы" базы данных

4. Создание, удаление таблиц и изменение структуры

Предложение CREATE TABLE
Типы данных в столбцах
Уточнения в описаниях столбцов
Указание NOT NULL
Значения по умолчанию
Проверка CHECK поступающих в таблицу значений
Создание таблиц по результатам запроса к БД
Именование таблиц и столбцов
Виртуальные столбцы
Удаление таблиц
Изменение структуры таблиц
Логические и технические особенности удаления столбца
Использование синонимов для именования таблиц
Переименования
Справочная информация о таблицах в БД

5. Основные элементы предложений DML: выражения

Непосредственные значения данных (литералы)
Числовые значения
Строки текста
Моменты и интервалы времени
"Системные переменные"
Числовые выражения
Выражения над строками текста
Выражения над типом "момент времени"
Функции
Скалярные функции
CASE-выражения
Скалярный запрос
Условные выражения
Отдельные замечания по поводу отсутствия значения в выражениях

6. Выборка данных

Фразы предложения SELECT
Общие правила построения предложения SELECT
Порядок обработки предложения SELECT
Пример 1 предложения SELECT
Пример 2 предложения SELECT
Логическая целостность обработки предложения SELECT
Фраза FROM предложения SELECT
Варианты указания столбца
Столбцы из разных таблиц
Использование псевдонимов в запросе
Подзапрос в качестве источника данных
Специальный случай для запроса-соединения
Фраза WHERE предложения SELECT
Общий алгоритм отработки фразы WHERE
Операторы сравнения для получения условного выражения
Связки AND, OR и NOT для комбинирования условных выражений
Условный оператор IS
Условный оператор LIKE
Условный оператор BETWEEN
Условный оператор IN с явно перечисляемым множеством
Условный оператор IN с множеством, получаемым из БД
Условия сравнения с подзапросом
Указание ANY и ALL для сравнения с элементами множества значений
Условный оператор EXISTS
Фраза SELECT и функции в предложении SELECT
Сокращенная запись для группового отбора столбцов
Выражения во фразе SELECT
Подзапросы во фразе SELECT
Уточнение DISTINCT
Особенности поведения стандартных агрегатных функций в предложении SELECT
Именование столбцов в результате запроса
Системная функция ("переменная") ROWNUM и особенности ее использования
Аналитические функции
Выражение типа ссылка на курсор
Фраза ORDER BY предложения SELECT
Простейшая сортировка
Упорядочение по значению выражения
Указание номера столбца
Двоичное и "языковое" упорядочение строк
Особенности обработки отсутствующих значений (NULL)
Фразы GROUP BY и HAVING предложения SELECT
Пример отработки фразы GROUP BY … HAVING
Отсутствие значения в выражении для группировки
Другие примеры
Указание ROLLUP, CUBE и GROUPING SETS в во фразе GROUP BY
Фраза CONNECT BY предложения SELECT
Специальные системные функции в предложениях с CONNECT BY
Упорядочение результата
Фраза WITH предварительной формулировки подзапросов
Комбинирование предложений SELECT
Комбинирование оператором UNION
Комбинирование оператором INTERSECT
Комбинирование оператором MINUS
Подзапросы
Операция соединения в предложении SELECT
Виды соединений
Новый синтаксис в версии 9
Особенности выполнения операции соединения

7. Обновление данных в таблицах

Добавление новых строк
Явное добавление строки
Добавление строк, полученных подзапросом
Добавление в несколько таблиц одним оператором
Изменение существующих значений полей
Использование умолчательных значений в INSERT и UPDATE
Удаление строк из таблицы
Выборочное удаление
Вариант полного удаления
Комбинирование UPDATE, INSERT и DELETE в одном операторе
Логическая целостность операторов обновления данных таблиц и реакция на ошибки
Реакция на ошибки в процессе исполнения
Фиксация изменений в БД
Данные о системном номере изменения для строки
Ускорение выполнения COMMIT

8. Быстрое обращение к прошлым значениям данных

Чтение старых значений строк таблицы
Восстановление таблиц и данных ранее удаленных таблиц

9. Схемные ограничения целостности

Разновидности схемных ограничений целостности
Ограничение NOT NULL
Первичные ключи
Уникальность значений в столбцах
Внешние ключи
Дополнительное условие для значения в поле строки
Дополнительное условие, связывающее значения в нескольких полях строки
Добавление ограничения при наличии нарушений
Приостановка проверки схемных ограничений в пределах транзакции
Отключение и включение схемных ограничений целостности
Технология включения и выключения схемных ограничений целостности
Более сложные правила целостности

10. Виртуальные таблицы (производные, выводимые: views)

Основные ("базовые") и виртуальные таблицы
Обновление виртуальных таблиц
Ограничения прямой модификации данных через виртуальные таблицы
Запрет непосредственных обновлений
Сужение возможности непосредственных обновлений
Виртуальные таблицы с хранием данных
Особенности именованых виртуальных таблиц
Неименованые виртуальные таблицы без хранения данных

11. Нескалярные типы для "сложно устроенных" данных в Oracle

Хранимые объекты
Простой пример
Использование свойств и методов объектов
Использование ссылок на объект
Коллекции
Вложенные таблицы
Массивы VARRAY
Тип XMLTYPE
Простой пример
Таблицы данных XMLTYPE
Преобразование табличных данных в тип XMLTYPE
Тип ANYDATA

12. Вспомогательные виды хранимых объектов

Генератор уникальных номеров
Каталог операционной системы
Таблицы с данными временного хранения
Ссылка на другую БД
Подпрограммы
Индексы
Индексы для проверки схемных ограничений целостности
Таблицы с внешним хранением данных

13. Некоторые замечания по оптимизации SQL-предложений

14. Транзакции и блокировки

Транзакции в Oracle
Примеры блокировок данных транзакциями
Разновидности блокировок
Неявные блокировки при операциях DML
Влияние внешних ключей
Явная блокировка таблиц (тип TM) командой LOCK
Явная блокировка отдельных строк таблиц
Недокументированная разновидность групповой блокировки
Блокировки предложениями DDL

15. Пользователи (схемы) и дополнительные средства разграничения доступа к данным

16. Таблицы системного каталога (словаря-справочника)

18. Встроенный SQL

Некоторые примеры составления запросов

19. Выдать сотрудников в соответствии с большим (меньшим) окладом

Вопрос к БД
"Очевидное", но неправильное решение
Правильные решения
Решение типа top-N (начиная с версии 8.1.5)
Решение с использованием аналитических функций ранжирования

20. Переформулировка запроса с HAVING

21. Декартово произведение

22. Ловушка условия с отрицанием NOT

23. Ловушка в NOT IN (S)

Введение в PL/SQL
1. Основные понятия

Место PL/SQL в архитектуре Oracle
Общая структура программы на PL/SQL

2. Основные типы и структуры данных

Скалярные переменные
Числовые типы
Строковые типы
Моменты времени и интервалы
Булевы переменные
LOB-типы
Объявление переменных и постоянных
Записи
Объявление записей в программе
Присвоения
Ссылка на типы уже имеющихся данных
Пользовательские подтипы

3. Выражения

4. Основные управляющие структуры

Ветвление программы
Предложение IF-THEN
Предложение IF-THEN-ELSE
Предложение IF-THEN-ELSIF
Предложения CASE
Безусловная передача управления
Циклы
Простой цикл
Счетный цикл (FOR)
Цикл по курсору (FOR)
Цикл WHILE
Имитация цикла REPEAT UNTIL
Метки в циклах и в блоках

5. Подпрограммы

Локальные подпрограммы
Переопределение "внешних" имен
Предваряющие (forward) объявления
Повторение имен на одном уровне (overloading)

6. Взаимодействие с базой данных: статический SQL
Использование записей вместо (списка) скаляров

7. Регулирование изменений в БД

Управление транзакциями
Блокировки
Автономные транзакции

8. Встроенный динамический SQL

Операторы встроенного динамического SQL
Сравнительный пример двух способов работы с динамическим SQL

9. Использование курсоров

Явные курсоры
Объявление явных курсоров
Открытие явных курсоров
Извлечение результата через явный курсор
Закрытие явного курсора
Отсутствие запрета изменений таблиц при открытом курсоре
Атрибуты для явных курсоров
Несколько примеров использования циклов и курсоров
Курсоры с блокировкой строк таблицы
Предложение SELECT … FOR UPDATE
Предосторожности употребления курсоров с блокировкой
Возможность изменять строки, выбираемые курсором
Ссылки на курсор
Общие сведения
Пример употребления для структуризации программы
Неявные курсоры

10. Обработка исключительных ситуаций

Объявление исключительных ситуаций
Примеры обработки
Порождение исключительных ситуаций
Зона действия и распространение
"Внутренние" исключительные ситуации блока
Использование функций SQLCODE и SQLERRM

11. Хранимые процедуры и функции

Общий синтаксис
Параметры
Тип параметра
Режим использования параметра
Значения по умолчанию
Способы указать фактические значения параметрам
Обращение к параметрам и к локальным переменным в теле подпрограммы
Взаимные вызовы и повторения имен
Указания компилятору при создании подпрограмм
Хранимые подпрограммы и привилегии доступа к данным в БД
Две логики реализации привилегий доступа к данным БД
Особенности передачи привилегий через роли

12. Триггерные процедуры

Создание триггерной процедуры
Отключение триггерных процедур
Триггерные процедуры для событий категории DML
Комбинированные триггерные процедуры
Управление транзакциями в теле триггерной процедуры
Последовательность срабатывания триггерных процедур, когда их несколько
Триггерные процедуры INSTEAD OF для выводимых таблиц
Триггерные процедуры для событий категории DDL
Триггерные процедуры для событий уровня схемы и БД

13. Пакеты в PL/SQL

Общая структура пакета
Обращение к элементами пакета
(Глобальные) данные пакета
Взаимные вызовы и повторения имен
Инициализация пакета
Прагма SERIALLY_REUSABLE

14. Вызов функций PL/SQL в предложениях SQL

Требования и ограничения на применение функций пользователей в SQL
Обращение в SQL к функциям из состава пакетов
Разрешение конфликта имен столбцов и функций
Табличные функции в SQL

15. Более сложные типы данных: коллекции

Синтаксис объявления типов для коллекций
Работа с ассоциативными массивами
Создание вложенной таблицы и массива VARRAY в программе
Добавление и убирание элементов в коллекциях
Множественные действия с коллекциями
Преобразования коллекций
Методы для работы с коллекциями в программе
Примеры использования коллекций в программе
Привилегии
Серийное выполнение и привязывание запросов к массивам
Серийное выполнение однотипных операций: конструкция FORALL
Привязка массивами: конструкция BULK COLLECT INTO
Пример для схемы SCOTT
Использование коллекций в табличных функциях (потоковой реализации)
Простой пример
Использование для преобразования данных

16. Отладка процедур в PL/SQL

Таблицы словаря-справочника
Зависимости подпрограмм
Системные пакеты
Пакет DBMS_PROFILER
Пакет DBMS_TRACE
Функции пакета DBMS_UTILITY
Пакет DBMS_DEBUG
Пример построения профиля работы программы

17. Системы программирования для PL/SQL

18. Системные пакеты PL/SQL

Пакеты STANDARD и DBMS_STANDARD
Прочие системные пакеты
Запись данных из программы в файл и обратно
Шифрование данных
Автоматический запуск заданий в Oracle
Управление динамическим размещением объектов в библиотечном буфере
Манипулирование большими неструктурированными объектами NULL
Доступ к старым значениям данных
Рассылка сообщений из программы на PL/SQL
Возможности работы в PL/SQL с COM Automation
Дополнительные сведения

19. Примеры употребления ссылки на курсор для разделения обработки запроса

Простой пример разделения открытия курсора и обработки
Более сложный пример разделения работы
20. Атрибуты триггерных процедур уровня схемы БД и событий в СУБД

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ ORACLE НА JAVA

1. Основные понятия

Место Java в архитектуре Oracle
Соотношение и взаимосвязь PL/SQL и Java в Oracle

2. Особенности Java и среда работы программ на Java

Архитектура Java
Программные компоненты в среде разработки на Java
Установка среды разработки для Java
Среда окружения OC

3. Создание самостоятельных программ на Java

Пример транслирования и выполнения программы

4. Создание хранимых программ на Java в Oracle

Дополнительные компоненты СУБД Oracle для работы с хранимыми программами на Java
Ограничения на хранимые программы на Java
Установка, удаление и обновление JServer/OJVM
Пример создания хранимой Java-программы
Создание с помощью loadjava
Создание SQL-предложением
Обращение к загруженному классу
Работа со словарем-справочником
Организация справочной информации
Просмотр Java-элементов
Просмотр исходных текстов
Преобразование имен
Особенности встроенной JVM
Интерпретатор ojvmjava

5. Элементы программирования на Java

Основы языка
Базовые конструкции языка
Переменные
Операторы
Выражения, предложения и блоки
Передача управления
Объекты и простые структуры
Классы и наследование
Создание классов
Механика использования класса в программе
Наследование
Интерфейсы
Обработка исключительных ситуаций
Некоторые приемы программирования на Java
Графический интерфейс
Группы объектов (коллекции)
Потоковый ввод и вывод
Параметризация работы программы с помощью наборов свойств
Сериализуемость объектов

6. Взаимодействие с базой данных через JDBC

Использование JDBC
JDBC и JDBC-драйверы
JDBC-драйверы в Oracle
Установка JDBC-драйверов для работы с Oracle
Программа на Java для проверки связи через JDBC
Работа с данными Oracle из внешних программ на Java
Обращение к БД через тонкий драйвер
Обращение к БД через толстый OCI-драйвер
Работа с данными Oracle из хранимых программ на Java
Обращение к БД через толстый драйвер ("родной", kprb)
Обращение к БД через тонкий драйвер
Обращение к данным из триггерных процедур Oracle

7. Дополнительные свойства протокола JDBC

Соединение с СУБД с помощью техники DataSource
Простой пример соединения техникой DataSource
Пример соединения с использованием службы JNDI
Пример кеширования соединений
Примеры организации логических соединений
Изменение данных в БД и обращение ко хранимым подпрограммам
Изменение данных
Управление транзакциями
Обращение к хранимым программам
Параметризация запросов
Использование типов данных Oracle
Повышение эффективности обращений к БД
Повторяющиеся запросы
Пакетное выполнение
Ссылка из программы на курсор в СУБД

8. Взаимодействие с базой данных через SQLJ

Простой пример программы
Транслирование и выполнение программы с SQLJ
Более сложный пример: множественная выборка из БД
Использование SQLJ в хранимых процедурах на Java
Пример с загрузкой извне
Пример с внутренней трансляцией

9. Основы построения приложений для web с помощью Java и Oracle

Клиентская часть: работа с аплетами
Пример транслирования и выполнения аплета
Web-сервер Apache
Общение с web-сервером по протоколу HTTP
Общие понятия обмене сообщениями в HTTP
Организация диалога в HTML
Работа с сервлетами Java
Общие сведения о сервлетах Java и о контейнерах сервлетов
Устройство сервлета Java
Пример составления сервлета на Java
Пример обращения к сервлету
Пример сервлета с обращением к базе данных
Использование класса HttpServlet
Работа с JavaServer Pages
Пример составления страницы JSP
Пример обращения к странице JSP
Некоторые возможности построения страниц JSP
Способы обращение к БД из страницы JSP
Модель MVC организации приложения для web

10. Взаимодействие компонентов приложения для web

Передача управления компонентов приложения web друг другу
Обращение на страницах HTML к страницам JavaServer и сервлетам
Передача управления со страниц JavaServer
Передача управления компонентам web из сервлетов
Абстракции Java для построения приложения web
Запрос и ответ
Область действия (scope)
Контекст сервлета
Предопределенные объекты страницы JavaServer
Передача данных компонентов приложения web друг другу
Передача данных через параметры запроса
Передача данных через контекст и компоненты JavaBeans

11. Пример построения приложения для web средствами Java и Oracle

Страница Logon.html
Сервлет Logon
Страница LogonError.html
Страница Main.jsp
Страница CompanyData.jsp и класс orajava.demos.StuffData
Сервлет Logout
Транслирование классов, размещение файлов и проверка приложения
Дополнительные сведения

12. Пример программирования собственной разметки JSP

Пример использования готовой разметки
Пример программирования собственной разметки
В конце обучения на курсе проводится итоговая аттестация в виде теста или на основании оценок за практические работы, выполненных в процессе обучения.