Вопросы и задания по OLAP и хранилищам данных

OLAP

  1. OLAP и хранилища данных. Назначение. Основные характеристики.
  2. OLAP и OLTP системы. Характеристики и основные отличия.
  3. Правила Кодда для OLAP систем.
  4. Многомерное представление данных как основной способ логического представления данных. Назначение, классы задач, преимущества и недостатки в сравнении с реляционной моделью. Срезы многомерных кубов и их визуальное представление.
  5. Типы OLAP. Преимущества и недостатки.
  6. Многомерный OLAP - MOLAP. Основные преимущества. Представление данных. Основные операции над данными. Преимущества и недостатки.
  7. Реляционный OLAP - ROLAP. Основные преимущества. Представление данных. Основные операции над данными. Преимущества и недостатки.
  8. Гибридный OLAP - HOLAP. Основные преимущества. Представление данных. Основные операции над данными. Преимущества и недостатки.
  9. Общая схема организации хранилища данных.
  10. Структура хранилища данных в ORACLE. CWM модель и ROLAP
  11. Структура хранилища данных в ORACLE. CWM модель и MOLAP
  12. Моделирование многомерных кубов на реляционной модели данных. Схема звезда. Преимущества и недостатки.
  13. Моделирование многомерных кубов на реляционной модели данных. Схема снежинка. Преимущества и недостатки.
  14. Моделирование многомерных кубов на реляционной модели данных. Подходы к хранению агрегатов.
  15. Технологии Oracle для организации хранилищ данных. Материализованные VIEW
  16. Технологии Oracle для организации хранилищ данных. Секционированные таблицы

Расширения SQL для OLAP

  1. Расширения SQL для организации OLAP запросов. Обзор.
  2. ROLLUP - расширение к GROUP BY.
  3. CUBE - расширение к GROUP BY.
  4. GROUPING SETS - расширение к GROUP BY.
  5. Составные столбцы в GROUP BY.
  6. Конкатенация групп в GROUP BY.
  7. Вспомогательные функции - GROUPING, GROUPING_ID, GROUP_ID
  8. "Оконные" агрегирующие функции в SQL. Синтаксис, отличие от классических функций агрегирования, основные возможности.
  9. Конструкция MODEL. Синтаксис, варианты использования

Задачи

Группа 1

Краткое описание предметной области.

Продажа билетов на авиарейсы.

Сущности - номер рейса, время рейса, класс билета, аэропорт вылета, аэропорт прибытия.

Характеристики аэропорта - название, город, страна

  1. Требуется построить OLAP схему с нормализованными измерениями.
  2. Требуется построить OLAP схему с ненормализованными измерениями.
  3. Требуется построить OLAP схему с нормализованными измерениями и хранением агрегатов (1-2 для примера) в отдельных таблицах.

Группа 2

Есть таблицы:

  • товар(номер, название)
  • покупатель(номер, имя)
  • продажа(номер_товар, номер_покупатель, дата, кол-во проданного товара, цена за единицу товара)
  1. Построить запрос, выбирающий покупателя из числа купивших максимальное кол-во телевизоров, который заплатил за них самую дешевую цену. Указать необходимые индексы для оптимального выполнения запроса.
  2. Построить запрос, выбирающий товар, не купленный за последний месяц ни одним покупателем. Указать необходимые индексы для оптимального выполнения запроса.
  3. Построить запрос, выбирающий общее количество денег, потраченное каждым первым покупателем года. Указать необходимые индексы для оптимального выполнения запроса.

Группа 3

Есть таблица test(i number, j number, s varchar2(100))

На таблице созданы индексы:

i1(i, j)i2(i)
i3(j)
i4(i, s)
i5(j, s)
i6(s, i)
i7(s, j)

Необходимо указать, какие индексы могут быть использованы в следующих запросах

  1. select * from test where i > 10 and j < 100
  2. select * from test where i = 10
  3. select * from test where j between 10 and 20 and s like '%data'
  4. select * from test where i is null and j > 100 and j < 300
  5. select * from test where i is null
  6. select * from test where j-100 = 50
  7. select * from test where j*2 > 50
  8. select * from test where s = '%data'
  9. select * from test where s like '%data' and i = 30
  10. select * from test where s like 'data%' and i*j = 30
  11. select * from test where i*j = 30
  12. select * from test where to_char(i) = '111'
  13. select * from test where to_char(i) = '111' and to_number(s) > 0
  14. select * from test where to_number(s) > 0
  15. select * from test where i = to_number('123')
  16. select * from test where s = to_char(sysdate)
  17. select * from test where i is null or j > 100 and j < 300
  18. select * from test where s like '%data' or i = 30
  19. select * from test where s like 'data%' or i*j = 30
  20. select * from test where s like 'data%' order by i, j
  21. select * from test where s like '%data%' order by j
  22. select * from test where i*j = 10 order by i

Группа 4

Eсть таблица student(id number not null primary key, family varchar2(100), grp number check (grp between 1 and 10))

В таблице содержатся данные о студентах 8 факультета 1-6 курсов.
Необходимо создать индексы нужного типа для эффективного выполнения запросов

  1. select * from student where id > 100
  2. select * from student where id = and grp = 3
  3. select * from student where family like 'ИВАНОВ%'
  4. select * from student where family like '%ОВА'
  5. select * from student where family like 'ИВАНОВ%' and grp in (1, 6)
  6. select * from student where family like '%ОВА' and grp in (1, 6)
  7. select * from student where family = 'ИВАНОВ' and grp = 1
  8. select * from student where id = 12 and grp = 4
  9. select * from student where grp = 4
  10. select * from student where grp > 0
  11. select * from student where family = 'ИВАНОВ' and grp = 4
  12. select * from student where id between 1 and 30 and grp = 4
  • Нет меток