МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
__________________________________________________________________________
«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)»
Согласовано ______________________ «___» _______________ 20__ г. | Утверждаю Директор ИПКП ____________________ «___» _______________ 20__ г. учреждения |
ПРОГРАММА ПОВЫШЕНИЯ КВАЛИФИКАЦИИ
СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях
Москва, 2016 г.
Цель реализации программыИзучение специализированных средств администрирования, управле-ния и информационной поддержки инфраструктуры приложений и приемов работы в среде профессиональной СУБД Oracle.
Требования к результатам обучения
В результате освоения программы слушатель должен приобрести следующие знания и умения, необходимые для качественного изменения компетенций, указанных в п.1:
слушатель должен:
1. Уметь строить модели баз и хранилищ данных
2. Знать языковые средства описания и манипулирования данными
3. Знать языковые средства индексирования
4. Знать языковые средства оптимизации запросов(SQL, PL/SQL)
5. Знать языковые средства аналитической обработки данных для принятия обоснованных управленческих и производственных решений
Содержание программы
Учебный план
программы повышения квалификации
«СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях»
Категория слушателей - лица, имеющие высшее или среднетехническое образование.
Срок обучения - 72 часа(ов)
Форма обучения - c частичным отрывом от работы
№ п/п | Наименование разделов | Всего, час. | В том числе | |
лекции | практич. занятия | |||
1 | СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях | 70 | 32 | 38 |
2 | Итоговый контроль | 2 | 0 | 2 |
Итоговая аттестация |
Учебно-тематический план
программы повышения квалификации
«СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях»
№ п/п | Наименование разделов и тем | Всего, час. | В том числе | |
лекции | практич. занятия | |||
1 | СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях | 70 | 32 | 38 |
1.1 | Знакомство с архитектурой СУБД ORACLE | 4 | 2 | 2 |
1.2 | Понятие транзакции | 2 | 2 | 0 |
1.3 | Уровни изолированности транзакций в ORACLE | 4 | 2 | 2 |
1.4 | Понятие блокировок в ORACLE | 2 | 2 | 0 |
1.5 | Многомерное представление данных | 2 | 2 | 0 |
1.6 | Схемы баз и хранилищ данных | 2 | 2 | 0 |
1.7 | Срезы многомерных кубов и их визуальное представление | 6 | 2 | 4 |
1.8 | Моделирование многомерных кубов на реляционной модели данных | 6 | 2 | 4 |
1.9 | Расширения SQL для организации OLAP запросов | 2 | 2 | 0 |
1.10 | Агрегирование данных | 5 | 2 | 3 |
1.11 | Иерархические запросы | 5 | 2 | 3 |
1.12 | План выполнения запросов | 6 | 2 | 4 |
1.13 | Оптимизация выполнения запросов | 6 | 2 | 4 |
1.14 | Представления в ORACLE | 6 | 2 | 4 |
1.15 | Сложные типы данных в PL/SQL | 6 | 2 | 4 |
1.16 | Исключения в PL/SQL | 6 | 2 | 4 |
2 | Итоговый контроль | 2 | 0 | 2 |
2.1 | Итоговый контроль | 2 | 0 | 2 |
Итого | 72 | 32 | 40 |
Учебная программа
повышения квалификации
«СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях»
1.1. Знакомство с архитектурой СУБД ORACLE (4ч.)
Сервер, экземпляр ORACLE.
Архитектура базы данных.
SGA и PGA. Фоновые процессы.
Отличия между SHARED и DEDICATED экземплярами.
Структура табличных пространств.
1.2. Понятие транзакции (2ч.)
Основные свойства транзакций.
Неявные и явные транзакции.
Механизмы обозначения транзакции в ORACLE, сравнение с MSSQL.
1.3. Уровни изолированности транзакций в ORACLE (4ч.)
Операторы поддержки транзакций в ORACLE, сравнение с MSSQL
Реализация уровней изолированностей транзакции в ORACLE, сравнение с MSSQL.
1.4. Понятие блокировок в ORACLE (2ч.)
Основные типы блокировок, сравнение механизмов блокировок с MSSQL
Блокировки как ресурс.
Возможные проблемы и способы их решения.
Взаимоблокировки.
1.5. Многомерное представление данных (2ч.)
Основной способ логического представления данных.
Назначение, классы прикладных задач.
Преимущества и недостатки в сравнении с реляционной моделью.
1.6. Схемы баз и хранилищ данных (2ч.)
Технологии проектирования OLAP и OLTP систем.
Характеристики и основные отличия.
Правила Кодда для OLAP систем
1.7. Срезы многомерных кубов и их визуальное представление (6ч.)
Типы OLAP: MOLAP, ROLAP, HOLAP.
Преимущества и недостатки.
Представление данных.
Основные операции над данными.
1.8. Моделирование многомерных кубов на реляционной модели данных (6ч.)
Схема звезда, снежинка.
Преимущества и недостатки.
Подходы к хранению агрегатов.
1.9. Расширения SQL для организации OLAP запросов (2ч.)
ROLLUP и CUBE - расширение к GROUP BY.
Комбинации столбцов в GROUP BY.
1.10. Агрегирование данных (5ч.)
Классические и “оконные” функции агрегирования в SQL.
Синтаксис, отличие от классических функций агрегирования, основные возможности.
Способы формирования “окна” для “оконных” агрегирующих функций.
1.11. Иерархические запросы (5ч.)
Конструкции CONNECT BY PRIOR.
1.12. План выполнения запросов (6ч.)
Пути доступа.
Оценки производительности по плану выполнения запросов.
Схема работы оптимизатора ORACLE
Режимы оптимизатора.
1.13. Оптимизация выполнения запросов (6ч.)
Простые индексы
Составные индексы
Функциональные индексы
Битовые индексы (bitmap).
1.14. Представления в ORACLE (6ч.)
VIEW
MATERIALIZE VIEW
1.15. Сложные типы данных в PL/SQL (6ч.)
Записи
Массивы
Индексируемые массивы, атрибуты массивов.
Массивы переменной длины
Таблицы в PL/SQL.
1.16. Исключения в PL/SQL (6ч.)
Семантика и синтаксис обработки, генерации и повторной генерации исключений.
Порядок обработки исключений для вложенных блоков PL/SQL.
Предопределенные исключения Oracle. 16.4.Именованные и неименованные исключения.
Исключения NO_DATA_FOUND, TOO_MANY_ROWS
Определенные пользователем исключения.
Генерация неименованных пользовательских исключений.
Определение синонимов для неименованных исключений Oracle
Недостатки использования стандартного исключения OTHER в PL/SQL
2.1. Итоговый контроль (2ч.)
Перечень практических занятий
Номер темы (раздела) | Наименование практического занятия |
1.1 | Знакомство с архитектурой СУБД ORACLE (2ч.) |
1.3 | Уровни изолированности транзакций в ORACLE (2ч.) |
1.7 | Срезы многомерных кубов и их визуальное представление (4ч.) |
1.8 | Моделирование многомерных кубов на реляционной модели данных (4ч.) |
1.10 | Агрегирование данных (3ч.) |
1.11 | Иерархические запросы (3ч.) |
1.12 | План выполнения запросов (4ч.) |
1.13 | Оптимизация выполнения запросов (4ч.) |
1.14 | Представления в ORACLE (4ч.) |
1.15 | Сложные типы данных в PL/SQL (4ч.) |
1.16 | Исключения в PL/SQL (4ч.) |
2.1 | Итоговый контроль (2ч.) |
4. Материально-технические условия реализации программы
Лекционные занятия проводятся в аудиториях, оснащенных компьюте-ром, мультимедийным проектором, экраном, доской.
Практические занятия со слушателями проводятся в специализирован-ном классе на компьютерах с предустановленным лицензионным программ-ным обеспечением.
Учебно-методическое обеспечение программы
1. онструкторские базы данных. - М.: Машиностроение, 1990. - 224 c.
2. ж. Введение в системы баз данных, 8-е издание.: Пер. с англ. - М.: Издательский дом "Вильямс", 2005. - 1328 с.
3. Основы баз данных: курс лекций: учеб. пособие / . - М.:Интернет-Ун-т Информ. Технологий, 2005. - 488 с.
4. Ульман Дж. Основы систем баз данных. - М.: Финансы и статистика, 1983. 334 c.
5. одели данных.- М.: Финансы и статистика, 1985. 168 c.
6. , , Максименко данных. От концепции до внедрения. - М.: Диалог-МИФИ, 2002. - 528 с.
7. ашины баз данных и управление базами данных. - М.: Мир, 1989. 696 c.
8. еория реляционных баз данных. - М.: Мир, 1987. 608 c.
9. , , Габзовский в ORACLE PL/SQL. Внутренний мир. - Киев: Диасофт-Киев, 1998. 400 c.
10. рхитектура корпоративных программных приложений. - М.: «Вильямс», 2004. 544 с.
Оценка качества освоения программы
Оценка качества освоения программы осуществляется путем проверки выполенния слушателем итогового задания, включающего в себя шесть задач, отражающих различные аспекты работы с СУБД ORACLE.
Составители программы
Заведующий кафедрой 806
“Вычислительная математика и программирование”
к. ф.-м. н., доцент
к. ф.-м. н., доцент
Приложение А
к программе повышения квалификации
«СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях»
КОНТРОЛЬНЫЕ ЗАДАНИЯ
Дана ER-схема транзакционной (OLTP) базы данных

Разработайте OLAP-схему с нормализованными (“снежинка”) измерениями: пользователь, тип документа, папка, год, месяц, день изменения документа.
Разработайте OLAP-схему с ненормализованными (“звезда”) измерениями: пользователь, тип документа, папка, год, месяц, день изменения документа.
Разработайте OLAP-схему с нормализованными (“снежинка”) измерениями и хранением агрегатов в отдельных таблицах (1-2 для примера): пользователь, тип документа, папка, год, месяц, день изменения документа.
Создана таблица:
CREATE TABLE PERSON (
ID INTEGER PRIMARY KEY,
FIRST_NAME VARCHAR2(100), NULL
LAST_NAME VARCHAR2(100) NOT NULL,
AGE INTEGER NULL,
IS_CLIENT CHAR(1) CHECK IS_CLIENT IN (‘Y’, ‘N’)) NOT NULL DEFAULT ‘N’
);
Дополнительно, на таблицу созданы индексы: I1(FIRST_NAME), I2(FIRST_NAME, LAST_NAME), I3(AGE), I4(IS_CLIENT)
Укажите, какие индексы и почему могут использоваться при выполнении SQL запроса и в каких случаях индекс наиболее вероятно будет использоваться и почему?
Select * from PERSON where ID = 5;
Select * from PERSON where AGE > 18;
Select * from PERSON where AGE > 18 and AGE < 65;
Select * from PERSON where AGE = 21 AND LAST_NAME = ‘Иванов’;
Select * from PERSON where FIRST_NAME IS NULL
Select * from PERSON where FIRST_NAME LIKE ‘%ов’
Select * from PERSON where FIRST_NAME LIKE ‘Ив%’
Select * from PERSON where AGE*2 > 50
Select * from PERSON where FIRST_NAME || LAST_NAME = ‘ИванФедоров’
Select * from PERSON where UPPER(FIRST_NAME) = ‘ИВАН’
Select * from PERSON where AGE < 50 order by LAST_NAME
Select * from PERSON where AGE > 50 order by FIRST_NAME
Есть таблица:
CREATE TABLE PERSON (
ID INTEGER PRIMARY KEY,
FIRST_NAME VARCHAR2(100), NULL
LAST_NAME VARCHAR2(100) NOT NULL,
AGE INTEGER NULL,
IS_CLIENT CHAR(1) CHECK IS_CLIENT IN (‘Y’, ‘N’)) NOT NULL DEFAULT ‘N’
);
Необходимо создать индексы нужного типа для эффективного выполнения следующего запроса. В каком случае предложенные индексы наиболее вероятно будут использоваться и почему?
Select * from PERSON where ID = 5
Select * from PERSON where AGE > 18
Select * from PERSON where AGE > 18 and AGE < 65
Select * from PERSON where AGE = 21 AND LAST_NAME = ‘Иванов’
Select * from PERSON where FIRST_NAME IS NULL
Select * from PERSON where FIRST_NAME LIKE ‘%ов’
Select * from PERSON where FIRST_NAME LIKE ‘Ив%’
Select * from PERSON where AGE*2 > 50
Select * from PERSON where FIRST_NAME || LAST_NAME = ‘ИванФедоров’
Select * from PERSON where UPPER(FIRST_NAME) = ‘ИВАН’
Select * from PERSON where AGE < 50 order by LAST_NAME
Select * from PERSON where AGE > 50 order by FIRST_NAME
Постройте запрос, выбирающий товары, не купленные за последний месяц ни одним покупателем из тех, кто покупал этот товар ранее.
Укажите индексы, необходимые для оптимального выполнения запроса.


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

Приложение Б
к программе повышения квалификации
«СУБД ORACLE как инструмент компьютерной инженерии в информационных приложениях»
ТЕСТОВЫЕ ВОПРОСЫ И ОТВЕТЫ



