Рассматриваются основные технологии СУБД Oracle.
Все курсы учитывают возможности версий Oracle от 8 до 11 (за исключением курса по XML, не применимого к версии 8). Особенности каждой версии оговариваются отдельно.
Материал сопровождается большим количеством поясняющих примеров. Ряд тем не имеет других изложений на русском языке.
Допускается свободная компоновка программы курса по желанию слушателей. Фактическая продолжительность может изменяться в меру необходимого и возможного.
Обратная связь. Замечания по поводу курсов, программ можно отправить по .
На месте студентов | На месте преподавателя | Зато нас мало—это плюс ! | Там, где добывают нефть |
Рекомендуемая продолжительность 5 дней.
Описание курса:
Машина обработки SQL в СУБД Oracle реализует стандарты SQL ANSI/ISO полнее любой другой промышленной системы управления данными. Вдобавок, диалект SQL, реализованный в Oracle, имеет много собственных конструкций, выходящих за рамки стандартов. В результате он оказывается весьма развитым. Хорошее владение им нередко позволяет избежать программирования при обращении к данным базы, и обойтись одним SQL, а это способствует и простоте, и эффективности ИС.
Известно, что разработчики ИС нередко останавливаются на простейших конструкциях SQL, лишая в конечном счете свои прикладные информационные системы компактности, надежности и производительности. Недоиспользованию имеющихся в диалекте SQL фирмы Oracle средств способствует и постоянное его развитие. В очередных версиях СУБД (8, 9, 10, 11) фирма постоянно добавляет в SQL новые функции и операторы, типы данных, конструкции языка а также новую технику употребления.
Курс знакомит слушателя как с основными возможностями SQL в Oracle, так и с относительно нераспространившемися в широкой практике. Систематическое изложение возможностей языка сопровождается примерами и рекомендациями.
Курс расчитан на всех пользователей Oracle, но в первую очередь на разработчиков приложений.
Программа курса:
1. Происхождение и объем диалекта SQL фирмы Oracle
2. Инструменты для общения с базой данных
3. Данные для дальнейших примеров
4. Создание, удаление и изменение структуры таблиц
5. Общие элементы запросов и предложений DML: выражения
6. Выборка данных
7. Обновление данных в таблицах
8. Объявленные ограничения целостности
9. Представления данных, или же виртуальные таблицы (views)
10. Объектные типы данных в Oracle
11. Вспомогательные виды хранимых объектов
12. Некоторые общие свойства объектов хранения разных видов
13. Некоторые замечания по оптимизации выполнения предложений SQL
14. Транзакции и блокировки
15. Таблицы словаря-справочника
16. Встроенный SQL
Некоторые примеры составления запросов
17. Запрос первых N записей
18. Декартово произведение
19. Ловушка условия с отрицанием NOT
20. Ловушка в NOT IN ( S )
21. Типичная ошибка в составлении полуоткрытых соединений
Дополнение
22. Дополнительные сведения об аналитических функциях
Рекомендуемая продолжительность 4 дня.
Описание курса:
PL/SQL—процедурный язык, разработанный фирмой Oracle для создания хранимых в БД программ. PL/SQL обеспечивает общую основу процедурного программирования для клиентских приложений (Oracle Developer) и для СУБД—за счет использования хранимых в БД подпрограмм, пакетов, триггерных процедур и программной логики объектных типов. На этом языке написаны сотни системных пакетов, без которых невозможно обойтись ни разработчику приложений, ни администратору БД.
Синтаксически PL/SQL несложен, но имеются конструкции и возможности, способные ускользнуть от внимания разработчика при поверхностном знакомстве. Вдобавок, язык развивается с каждой новой версией СУБД начиная с Oracle 6, где он впервые появился. Как следствие, полноценное владение языком требует его систематического изучения.
Курс расчитан на разработчиков приложений и на администраторов БД.
Программа курса:
1. Основные понятия
2. Основные типы и структуры данных
3. Выражения
4. Основные управляющие структуры
5. Подпрограммы
6. Взаимодействие с базой данных: статический SQL
7. Использование курсоров
8. Встроенный динамический SQL
9. Обработка исключительных ситуаций
10. Хранимые процедуры и функции
11. Триггерные процедуры
12. Пакеты в PL/SQL
13. Редакции именованных программных единиц
14. Вызов функций PL/SQL в предложениях SQL
15. Более сложные типы данных: коллекции
16. Отладка программ в PL/SQL
17. Системы программирования для PL/SQL
18. Системные пакеты PL/SQL
Дополнительный материал
19. Примеры употребления ссылки на курсор для разделения обработки запроса в программе
20. Атрибуты триггерных процедур уровня схемы БД и событий в СУБД
Рекомендуемая продолжительность 4 дня.
Описание курса:
В версии 8.1 в Oracle появилась возможность сохранять в БД программные элементы на Java и интерпретировать их с помощью JVM, втроенной в СУБД. С этого времени Oracle позволяет создавать хранимую программную логику не только на PL/SQL, но и на Java. Практика создания информационных систем часто требует и того, и другого.
Java дает при работе с Oracle более развитый, чем PL/SQL, языковый аппарат, что для многих приложений критично. Кроме того, Java изначально имеет намного более обширную аудиторию, чем PL/SQL и огромное число сопряженных технологий, которые автоматически становятся доступны разработчику на Oracle. Это касается приложений в web, служб имен/каталогов, служб web, употребления XML и прочего.
Использование Java в Oracle требует большего, чем обычного знакомства с этим языком. Например, для учета особенностей и для повышения производительности фирма Oracle создает много собственных реализаций, расширений и замен стандартных интерфейсов и классов Java. Это касается способов и методов соединения с БД, выдачи запросов, преобразования типов и прочего.
Кроме того фирма Oracle активно разрабатывает на Java программную логику для употребления вне СУБД, но с целью работы с БД, в первую очередь "своего" типа. Основным продуктом этой категории являются контейнеры сервлетов OC4J, GlassFish и WebLogic. OC4J лежит в основе собственного сервера приложений фирмы (AS), а WebLogic—в основе Cloud Control. Но эти продукты можно использовать самостоятельно для построения прикладных систем в web.
Изучение возможностей и методов употребления Java при работе с Oracle необходимо в первую очередь разработчикам приложений.
Программа курса:
1. Основные понятия
2. Особенности Java и среда работы программ на Java
3. Создание самостоятельных программ на Java
4. Создание хранимых процедур на Java в Oracle
5. Элементы программирования на Java
6. Взаимодействие с базой данных через JDBC
7. Дополнительные свойства протокола JDBC
8. Взаимодействие с базой данных через SQLJ
9. Основы построения приложений для web с помощью Java и Oracle
10. Взаимодействие компонентов приложения для web
11. Пример построения приложения для web средствами Java и Oracle
Дополнительные сведения
12. Пример программирования собственной разметки JSP
Рекомендуемая продолжительность 4 дня.
Описание курса:
XML (как язык и как технология) широко используется в современных информационных системах. Для разработчиков на Oracle XML важен в силу нескольких причин:
Подходы к использованию XML в Oracle начали формироваться в версии 8.1, где появилось несколько специальных системных пакетов. Радикальный же шаг в этом направлении был сделан в версии 9.2, где появились: новый тип данных XMLTYPE (вместе с некоторыми его дополняющими); ряд специальных функций для XML (в том числе из стандарта SQL:2003); особое расширение традиционной БД, известное под названием XML DB.
XML DB дала по сути новое "измерение" организации данных в БД Oracle. Она не только расширила ранее имевшуюся функциональность типа XMLTYPE (например, позволила формулировать для данных ограничения целостности естественным для этого типа механизмом "схемы XML"), но и привнесла в БД "репозитарий", по сути—внутреннюю файловую систему, с возможностью обращаться к ней как обычным данным базы, так и извне (WebDAV, FTP, HTTP).
Кроме этого, инфраструктура XML DB включает в себя сервер HTTP, позволяющий без привлечения внешнего ПО организовать внутри СУБД приложение для web, осуществляющее обращение к данным в базе из сети.
В версиях СУБД 10, 11 и 12 XML DB получила дальнейшее развитие.
Курс расчитан на разработчиков приложений, но некоторые работы по поддержке XML DB требуют вмешательства администратора. Желательно знание PL/SQL, основ Java, HTML и XML.
Программа курса:
1. Основные понятия XML
2. Тип XMLTYPE
3. Типы DBURITYPE и HTTPURITYPE
4. Программное извлечение содержимого таблиц БД в форме XML
5. Программное изменение содержимого таблиц БД данными в формате XML
6. Примеры внесения изменений в таблицы БД по данным XML из внешних источников
7. Установка базы XML в Oracle (XML DB)
8. Работа с XML DB
9. Управление хранением и доступом к данным типа XMLTYPE
10. XML и сервлетные технологии в работе с OC4J
11. Использование сервлета XSQL для построения приложения web
Рекомендуемая продолжительность 2 дня.
Описание курса:
Существующие в Oracle средства SQL позволяют строить не только фактографические запросы справочного характера, но и аналитические, позволяющие эффективно обнаруживать в больших массивах данных закономерности, зависимости или общность; строить обобщения, проверять гипотезы.
Во-первых, это средства традиционного SQL: группировки с подсчетом обобщений (агрегатов), получившие в Oracle важные развития в версиях 8.1 и 9.
Во-вторых, это аппарат материализованных виртуальных таблиц, дополненный в версии 8.1 возможностью СУБД автоматической подмены запроса, что позволило приложениям намного быстрее получать ответы на агрегирующие запросы к большим объемам данных.
В-третьих, это набор "аналитических функций", специально разработанных для эффективного выполнения аналитических расчетов, и составляющий основу для построения служб OLAP на составе Oracle.
Результаты аналитических запросов можно использовать не только в логике приложения, но и в качестве исходных данных для систем графического представления информации, в системах принятия решений, бизнес-аналитики.
Программа курса:
1. Общие положения
2. Основные технические особенности
3. Виды агрегирующих и аналических функций
4. Функции ранжирования
5. Функция подсчета долей
6. Обратные процентили
7. Предположительные ранг и распределение
8. Функции линейной регрессии
9. Гистограммы "равной ширины"
10. Прочие аналитические функции
11. Программирование собственных агрегирующих функций
Дополнительные возможности SQL для построения аналитических запросов
12. Построение аналитических запросов с помощью группировки и агрегирования
13. Повышение эффективности выполнения запросов с группировкой
14. Употребление аналитических функций в запросах с группировкой
Рекомендуемая продолжительность 4 дня.
Описание курса:
В версии 8.0 в Oracle стало возможным хранить в таблице неатомарные (нескалярные) значения с заданной структурой. В полной же мере объектные возможности данных были реализованы в Oracle версии 9.
Объекты в Oracle существенно пополняют арсенал моделирования данных. Особенно они полезны, когда целые комплексы данных приложения желательно иметь в БД как единые сущности.
Есть и другая причина, по которой объектные возможности важны разработчику: они служат основой для ряда встроенных в Oracle "сложно устроенных данных". Это графические данные, данные XML, данные для очередей сообщений и для "потоков" (Oracle Streams) и некоторые другие. Таким образом, знакомство с объектными возможностями Oracle требуется не только для моделирования данных предметной области, но и, например, для администратора Oracle Streams.
Курс сопровождается упражнениями, позволяющими закрепить понимание и освоить технические приемы работы с хранимыми объектами на языках SQL, PL/SQL и Java.
Программа курса:
1. Основные понятия в реализации объектного подхода фирмой Oracle
1.1. Хранимые объекты
1.2. Виртуальные (синтезированые) объекты
1.3. Ограничения целостности
1.4. Работа с объектами БД в PL/SQL
1.5. Коллекции
2. Дополнительные понятия и возможности
2.1. Наследование типов
2.2. Хранение объектов, идентификатор объекта и ссылка на объект
2.3. Работа с объектами БД в Java
3. Дополнительные сведения об объектных свойствах
3.1. Определение и виды методов
3.2. Использование коллекций и их хранение
3.3. Взаимозависимость типов, замещаемость и их развитие
4. Встроенные объектные решения в Oracle
4.1. Тип XMLTYPE
4.2. Тип ANYDATA
4.3. Тип URITYPE и подтипы
4.4. Другие примеры типов для администратора и разработчика
Дополнение
5. Комментарии к примерам в документации по Oracle
5.1. Глава Applying an Object Model to Relational Data
5.2. Глава Design Considerations for Oracle Objects
5.3. Глава Sample Application Using Object-Relational Features
Рекомендуемая продолжительность 1 день.
Описание курса:
СУБД Oracle известна в первую очередь как система управления "фактографическими" данными, но с первой половины 90-х годов в ней стали появляться возможности хранить и обрабатывать "сложно устроенные" данные. Одной из первых в этом роде стала возможность версии 7.3 работы с частично структурированными данными: текстовыми документами. Возможность работы с полностью структурированными данными—объектные типы, и возможность хранить неструктурированные "большие объекты"—типы LOB, появились позже, в версии 8.
Нынешнее название для возможностей СУБД Oracle по работе с текстовыми документами—Oracle Text.
Текстовые возможности СУБД Oracle основаны на использовании специального вида индекса, являющегося одним из встроенных в систему вариантов "предметного" индекса (domain index), используемого для организации работы со сложно устроенными данными вообще. Oracle Text имеет в готовом виде три разновидности текстового индекса: полнотекстовый, для поиска в картотеках и для классификаций.
В курсе рассматривается создание текстовых индексов и употребление их для поиска в текстовых документах.
Программа курса:
1. Работа в Oracle с текстовыми документами
2. Использование полнотекстового индекса
2.1. Простой пример
2.2. Текстовый индекс
2.3. Планы выполнения запросов
2.4. Другие источники документов
2.5. Другие форматы документов
2.6. Параметры индекса
2.7. Поддержка текстовым индексом документов на русском языке
3. Использование индекса для каталогов и картотек
3.1. Исходные данные и план действий
3.2. Загрузка данных в БД
3.3. Создание индекса
3.4. Запросы
3.5. Индекс по нескольким полям
4. Использование индекса—классификатора документов
4.1. Простой пример
4.2. Пример с реальными документами
4.3. В жизни может оказаться сложнее
Рекомендуемая продолжительность 7 дней.
Описание курса:
Рассматриваются основные вопросы администрирования Oracle: установка ПО и заведение БД пользователя, конфигурирование системы; слежение за работой и управление системой; основы администрирования доступа и аудита; организация сетевого взаимодействия с БД; основы физического и логического резервного копирования и восстановления данных; загрузка данных в БД.
Основы администрирования Oracle мало зависят от операционной системы, однако особенности, касающиеся Unix/Linux и Windows существуют и оговариваются отдельно.
Устройство Oracle претерпевает изменения от версии к версии. Одни элементы администрирования в новых версиях пропадают за ненадобностью или видоизменяются, другие появляются. Особенности версий 8, 9, 10 и 11 оговариваются отдельно.
Курс расчитан на администраторов БД и на их непосредственных руководителей.
Программа курса:
1. Общая информация о СУБД Oracle
2. Установка Oracle
3. Использование SQL*Plus в администрировании
4. Средства слежения за работой Oracle
5. Конфигурирование, настройка и поддержка
6. Администрирование доступа в Oracle
7. Аудит
8. Администрирование работы в сети
9. Экземпляр СУБД Oracle
10. Настройка экземпляра СУБД Oracle
11. Организация хранения данных в Oracle
12. Настройки операций ввода/вывода
13. Резервное копирование и восстановление
14. Дополнительные базовые программные средства для администрирования
Дополнительный материал
15. Объекты словаря-справочника
16. Внутренние структуры общего употребления в СУБД
17. Внутренние ожидания СУБД
18. Реализация механизмов доступа к базе данных
Некоторые практические сценарии
19. Пример использования динамических таблиц для контроля и настройки участков кода программы
20. Основные задачи администрирования
21. Планирование автоматического выполнения заданий
Рекомендуемая продолжительность 3 дня.
Описание курса:
Оптимизация запросов в СУБД вообще, и в Oracle в частности, тема особая: в идеале для пользователя СУБД она не должна существовать (по крайней мере так об этом думали 40 лет назад). Беда в том, что все существующие СУБД неидеальны, и потребитель часто вынужден заниматься такой оптимизацией.
Oracle дает разные средства для влияния на эффективность выполнения запросов, поступающих из приложений к БД. Это настройка СУБД и среды сеансов с СУБД; применение вспомогательных структур хранения (индексы, materialized views, LOB) и специальных схем организации (кластеры, раздельное хранение строк, хранение данных таблицы в структуре индекса и др.); выбор наиболее выгодной формулировки запроса. Большинство из имеющихся средств имеет в Oracle глубокую степень проработки и требует специального изучения, способного однако во многих случаях дать радикальное повышение производительности.
Отдельно рассматриваются средства автоматизации оптимизации запросов, появившиеся в версии 9, и особенно в версиях 10 и 11. Так, режим углубленного анализа запроса, появившийся в оптимизаторе версии 10, способен улучшить производительность запросов даже для готового приложения, код которого потребитель не имеет возможности вмешаться. В этой же версии появились "советники", по сути—встроенная в СУБД экспертная система для настройки запросов. Верия 11 ввела средства обнаружения возможного снижения производительности обработки запросов при изменении условий их работы (изменения в схеме, в параметрах СУБД, аппататной платформы или ОС, наконец версии СУБД). Для предотвращения непредусмотренного падения производительности при обработке повторяющихся запросов введен новый механизм управления планами, не требующий вмешательства в тексты запросов.
Курс сопровождается примерами.
Программа курса:
1. Общие положения
2. Основная схема отработки запросов в СУБД Oracle
3. Структуры хранения данных
4. Основные методы доступа
5. Выявление проблемных запросов
6. Как узнать подробности обработки конкретного запроса
Возможности влиять на выполнение запросов
7. Конфигурирование хранимых объектов БД в Oracle (общие возможности)
8. Некоторые специальные возможности конфигурирования объектов БД («особые случаи»)
9. Настройка запросов
10. Возможности автоматизации настройки запросов в версиях 10+
11. Средства автоматизации настройки запросов в версиях 11+
12. Выполнение SQL-запросов в сети
13. Способ хранения данных в табличных пространствах
Дополнительный материал
14. Операции массового добавления данных
15. Параметры СУБД, влияющие на работу оптимизатора запросов
16. Подсказки оптимизатору запросов
17. Выполнение анализа групп объектов
Некоторые практические сценарии
18. Возможный подход к оптимизации сложных запросов
19. Пример использования динамических таблиц для контроля и настройки участков кода программы
Рекомендуемая продолжительность 4 дня.
Описание курса:
Курс является более полной и подробной проработкой обозначеных тем, нежели это сделано в общем курсе по администрированию Oracle.
Рассмартиваются возможности Oracle по обеспечению безопасной работы пользователей с данными и с общими ресурсами СУБД. Изучается разграничение доступа и противодействие несанкционированному доступу; в частности такие понятия, как пользователи, привилегии, роли, профили, контекст сеанса, выборочный доступ к данным таблиц (виртуальные частные базы данных, меточный доступ к строкам), распределение общих ресурсов СУБД между сеансами, разные способы аудита и другие.
Отдельно рассматривается организация избирательного доступа к данным таблиц на основе меточного механизма (label security), отталкивающегося от понятий "уровень секретности", "метка доступа", "группы приложений" и других, известных по документу "Общие критерии оценки безопасности ИТ" (Common Criteria). Эта возможность защиты данных мало освещена в общей литературе.
Также отдельно рассмотрено администрирование доступа задач к ресурсам СУБД с помощью специального диспетчера ресурсов (resource manager). Эта тема также мало освещена в общей литературе; в то же время без настроенного диспетчера ресурсов СУБД врядли возможна грамотная эксплуатация БД при большом количестве одновременно работающих разнохарактерных приложений.
Программа курса:
1. Понятие безопасности данных
2. Администрирование доступа в Oracle
3. Аудит
4. Безопасность сообщения с БД по сети
Дополнительные главы
5. Контекст сеанса и контекст приложения
6. Регулируемое предоставление ресурсов СУБД и БД группам сеансов
7. Примеры и возможности мандатного (меточного) метода доступа к строкам таблицы
Рекомендуемая продолжительность 4 дня.
Описание курса:
Курс является более полной и подробной проработкой обозначеных тем, чем это сделано в базовом курсе по администрированию Oracle.
Рассматриваются возможности Oracle по предотвращению потерь данных и их восстановлению после потерь; возможности организации постоянной доступности средствами горячего резерва. Рассматривается физическое и логическое резервирования/восстановления данных с остановом и без останова работы БД, выполняемой в базовом варианте и с помощью программы RMAN; быстрое восстановление; возможность предупреждения и раннего обнаружения внутренних разрушений в БД, рассогласования данных; восстановление после физических разрушений при отсутствии резервных копий и другие.
Существенная часть материала посвящена программе RMAN как единого для всех платформ инструмента выполнения физического резервирования и восстановления данных. Несмотря на не самый элегантный командный язык, принятый в RMAN, функциональность этой программы настолько развита, что без ее использования едва ли мыслима надежная эксплуатация ответственной, или же попросту особенно большой, БД. В то же время практика показывает, что богатый функционал, заложенный в эту программу, не всегда хорошо знаком администраторам.
Курс завершается построением примера резервной БД, способной в случае серьезного отказа основной, быстро взять на себя ее функции. Такая возможность появилась впервые в версии 7, и далее развивалась во всех последующих, вплоть до 12.
Программа курса:
1. Понятие безопасности данных
2. Резервное копирование и восстановление
3. Физическое копирование и восстановление с помощью RMAN
4. Логическое копирование и восстановление данных
5. Логическое восстановление недавних данных
6. Выявление внутренних нарушений БД
7. Организация физического горячего резерва БД
Рекомендуемая продолжительность 4 дня.
Описание курса:
В Oracle существует целый спектр возможностей по распространению данных из одной базы в другие. Можно осуществлять перенос данных на логическом уровне (уровне объектов, хранимых в БД) и на физическом (на уровне файлов). Перенос может быть разовым, или же планово-автоматическим. Перенос может быть однонаправленым либо же допускающим встречные изменения данных. Перенос может быть между разными БД Oracle, работающими быть может на разных платформах, и в инородную БД.
Oracle предлагает две идеологии автоматического распространения данных: репликацию (replication) и потоки (streams). Первая оформилась к версии 9 (после которой существенного развития не получила, но продолжает оставаться в арсенале возможностей), а вторая в версии 9 появилась. Тем не менее для практического использования техника потоков данных созрела только в версии 10. В версии 11 она получила дальнейшее развитие.
С версии 12 основной упор в автоматическом распространении данных сделан (помимо expdp и impdp) на GoldenGate.
Освещение техники потоков распространения данных в курсе восполняет пробелы освещения практики и методики в общей литературе по Oracle.
Разные виды переноса имеют свои области применения, возможности и ограничения. В то же время распределение данных требует соблюдения правил безопасности данных с помощью имеющихся в Oracle средств. Тема безопасного переноса в Oracle данных между базами также составляет предмет курса.
Программа курса:
Разовый перенос
1. Физическое копирование БД
2. Физический пренос табличного пространства из базы в базу
Автоматическое распространение
3. Построение простого тиражирования данных («однонаправленная репликация»)
4. Построение сложного тиражирования («двунаправленная репликация»)
5. Многосторонняя репликация
6. Настройка и отладка репликации
7. Потоки данных (Oracle Streams)
8. Использование GoldenGate
Справочная часть
9. Некоторые общие свойства объектов вида materialized view