- •Добряк Павел Вадимович управление данными
- •Управление данными
- • Угту-упи, 2012
- •Введение
- •1. Основные определения
- •1.1. Элементы баз данных
- •1.2. Технологии управления данными
- •1.3. Модели данных
- •2. Реляционная модель
- •2.1. Основные понятия реляционной модели
- •2.2. Нормализация
- •2.3. Проблемы проектирования реляционных баз данных
- •Задачи для самостоятельного решения
- •3. Реляционные алгебра и исчисления
- •3.1. Реляционная алгебра
- •3.2. Реляционное исчисление на кортежах
- •3.3. Реляционное исчисление на доменах
- •4.1. Введение в sql
- •4.2. Пример реляционной базы данных
- •4.3. Запросы к одной таблице
- •4.4. Запросы к нескольким таблицам
- •4.5. Вложенные запросы
- •4.6. Вложенные подзапросы и кванторы
- •4.7. Объединение однотипных запросов
- •4.8. Рекурсивные запросы
- •Объединение однотипных запросов.
- •Запросы для самостоятельного программирования
- •5. Olap и хранилища данных
- •5.1. Архитектура хранилищ данных
- •5.2. Аналитические запросы
- •6. Триггеры, хранимые процедуры, события
- •7. Транзакции
- •7.1. Функции транзакций
- •7.2. Уровни изолированности
- •7.3. Сериализация транзакций
- •7.4. Синхронизационный захват
- •7.5. Метод временных меток
- •8. Обзор перспективных направлений баз данных
- •9. Объектные технологии в субд
- •9.1. Три манифеста баз данных
- •9.2. Объектная модель sql
- •9.3. Модель данных odmg и язык oql
- •10. Запросы к интернет-страницам
- •10.1. Теговая парадигма
- •10.2. Язык запросов xQuery
- •11. Пространственные базы данных
- •12. Лабораторные работы
- •13. Курсовая работа
- •13.1. Концептуальное проектирование
- •13.2. Семантическое проектирование
- •13.3. Физическое проектирование. Реляционная модель данных
- •13.4. Запросы
- •Объединение однотипных запросов.
- •13.5. Интеллектуализация базы данных.
- •13.6. Клиентская часть информационной системы
- •13.7. Дополнительные элементы базы данных
- •Вопросы к экзамену
- •1. Основные определения.
- •2. Реляционная модель
- •3. Реляционные алгебра и исчисления
- •10. Запросы к интернет-страницам
- •11. Пространственные базы данных
- •Литература
- •Список иллюстраций список таблиц
- •Список листингов
- •Алфавитный указатель
- •Список сокращений
5. Olap и хранилища данных
В главе «1.2. Технологии управления данными» OLAP рассматривалась в сравнении с другими технологиями управления данными. Было дано определение OLAP и хранилищ данных, приведены примеры задач и многомерный куб (см. Рис. 4). Рассмотрим эту технологию подробнее.
5.1. Архитектура хранилищ данных
Хранилище данных (англ. Data Warehouse) — очень большая предметно-ориентированная информационная корпоративная БД, специально разработанная и предназначенная для подготовки отчётов, анализа бизнес-процессов с целью поддержки принятия решений в организации. Строится на базе клиент-серверной архитектуры, СУБД и утилит поддержки принятия решений. Данные, поступающие в хранилище данных, становятся доступны только для чтения. Данные из OLTP-системы копируются в хранилище данных таким образом, чтобы построение отчётов и OLAP-анализ не использовал ресурсы промышленной системы и не нарушал её стабильность. Данные загружаются в хранилище с определённой периодичностью, поэтому их актуальность несколько отстает от OLTP-системы.
Свойства хранилищ данных:
Проблемно-предметная ориентация: данные объединяются в категории и хранятся в соответствии с областями, которые они описывают, а не с приложениями, которые используют данные.
Интегрированность: объединяет данные таким образом, чтобы они удовлетворяли всем требованиям всего предприятия, а не единственной функции бизнеса.
Некорректируемость: данные в хранилище не создаются, а поступают из внешних источников, не корректируются и не удаляются.
Зависимость от времени: данные в хранилище точны и корректны только в том случае, когда они привязаны к некоторому промежутку или моменту времени.
Хранилище данных обычно содержит очень большой массив данных и зачастую разделяется на подмножества, называемые витрины данных (англ. Data Mart; другие варианты перевода: хранилище данных специализированное, киоск данных, рынок данных) — подмножества хранилища данных, представляющие собой массив тематической, узконаправленной информации, ориентированный, например, на пользователей одной рабочей группы или отдела.
Примером витрины данных является трехмерный куб, приведенный на Рис. 4, содержащий три измерения: продавцов, товаров и времени, в ячейках которого хранится информация о суммарном количестве товара, который продавец продал в единицу времени. Этот куб может быть построен над РБД (OLTP-система) и не требует специализированного хранилища. В принципе, он может быть реализован (по крайней мере, для выборки данных) на клиентском компьютере. Это пример настольного OLAP. Представителями настольного OLAP являются продукты, необязательно соединяющиеся с сервером. Они могут запускаться на клиентской части, хотя данные в форме куба могут загружаться и с сервера. Тот факт, что куб данных строится и хранится на машине пользователя, позволяет рекомендовать технологию тем, кто часто использует портативные компьютеры или кто редко запускает сложные отчеты. Архитектура настольного OLAP изображена на Рис. 16.
Рис. 16. Архитектура настольного OLAP
Во многих случаях вариант настольного OLAP может быть неэффективен. Данных может быть много и клиентский компьютер не справится с таким объемом данным. А перенос формирования куба на сервер OLTP может затормозить текущие транзакции. Кроме того, не всегда БД OLTP спроектирована подходящим образом для OLAP. Например, в таблице «Товары» на Рис. 3 есть атрибут –количество товара на складе (в текущий момент времени). Данные OLTP могут изменяться. Для анализа нам необходимы неизменяемые данные. Нужно, чтобы ИС делала с определенной периодичностью, например, раз в день, «снимки» БД OLTP и помещала нужную информацию в хранилище данных. Таким образом, для нашего примера нужно создать в хранилище данных витрину для отдела логистики, представляющую собой двумерный куб с измерениями «Даты» и «Товары». Архитектура информационной системы представлена на Рис. 17.
Рис. 17. Информационная система с OLTP и OLAP
Есть три архитектуры хранилища данных:
MOLAP (Multidimensional OLAP) - и детальные данные, и агрегаты хранятся в многомерной БД. В этом случае получается наибольшая избыточность, так как многомерные данные полностью содержат реляционные.
ROLAP (Relational OLAP) - детальные данные остаются там, где они “жили” изначально - в реляционной БД; агрегаты хранятся в той же БД в специально созданных служебных таблицах.
HOLAP (Hybrid OLAP) - детальные данные остаются на месте (в реляционной БД), а агрегаты хранятся в многомерной БД.
Если мы проектируем витрину логистики по архитектуре ROLAP, то она имеет структуру, изображенную на Рис. 18. Такой вариант построения схемы данных называется «звезда». Она состоит из таблицы фактов, обрамленной таблицами измерений. Таблица фактов имеет следующие атрибуты: суррогатный ключ, внешние ключи измерений и фактические данные (в нашем случае – атрибут «количество»). Таблицы измерений состоят из суррогатных ключей, возможно - названий и атрибутов агрегации, например, в таблице «даты» N – суррогатный ключ, остальные - атрибуты агрегации.
Рис. 18. Топология «звезда»
Иногда в БД в нормализованном виде некоторые атрибуты агрегации вынесены в отдельные таблицы, например – атрибут «Категория» из таблицы «Товары» (см. Рис. 19). Такая схема данных называется «снежинкой». В случае сложных схем БД для ускорения запросов их могут денормализовывать до схемы «звезда».
Рис. 19. Топология «снежинка»
Создание витрины отдела продаж по технологии ROLAP на основе таблицы «Сделки» из БД на Рис. 3 связано со следующей проблемой: при снимке таблицы «сделки» раз в сутки может оказаться, что данный продавец продал один и тот же товар одному и тому же покупателю несколько раз. В таком случае мы должны помещать в хранилище агрегированные данные (таблица «Сделки» отображается в таблицу «Продажи»). Наряду с суммами в ячейках OLAP-куба могут содержаться результаты выполнения иных агрегатных функций языка SQL, таких как MIN, MAX, AVG, COUNT, а в некоторых случаях — и других (дисперсии, среднеквадратичного отклонения и т.д.). Для описания значений данных в ячейках используется термин summary (в общем случае в одном кубе их может быть несколько), для обозначения исходных данных, на основе которых они вычисляются, — термин measure, а для обозначения параметров запросов — термин dimension (переводимый на русский язык обычно как "измерение", когда речь идет об OLAP-кубах, и как "размерность", когда речь идет о хранилищах данных). Значения, откладываемые на осях, называются членами измерений (members). Видно, что для полной витрины отдела продаж на Рис. 4 не хватает измерения «покупатели». На Рис. 20 показана схема хранилища ROLAP, соответствующая двум витринам – логистической и отдела продаж. У этих двух витрин есть два общих измерения – Товары и Даты. Такие измерения называются коллективными.
Рис. 20. Схема ROLAP
В отличие от ROLAP в MOLAP резервируется ячейка памяти для продавца, товара и даты, даже если продавец не продал данный товар в заданную дату (модель MOLAP), что требует избыточного объема памяти. Если посмотреть на БД Рис. 3, то в таблице «Продавцы» есть еще атрибут «Зарплата». Для представления зарплаты в хранилище требуется создать еще одну витрину – «отдел катров».
Говоря об измерениях, следует упомянуть о том, что значения, наносимые на оси, могут иметь различные уровни детализации. Например, нас могут интересовать продажи по городу, по отделу или даже продажи, выполненные отдельным продавцом. Эта иерархия представлена на Рис. 21, такие иерархии называются сбалансированными. Возможность получения агрегатных данных с различной степенью детализации соответствует одному из требований, предъявляемых к хранилищам данных, — требованию доступности различных срезов данных для сравнения и анализа.
Рис. 21. Сбалансированная иерархия
Если в иерархии уровни выделяются, но в конкретных случаях представители некоторых слоев могут отсутствовать, то такие иерархии называются неровными. Пример неровной иерархии – измерение «адрес», см. Рис. 22.
Рис. 22. Неровная иерархия
В несбалансированных иерархиях в каждой веточке может быть разное число уровней. Типичный пример несбалансированной иерархии — иерархия типа "начальник-подчиненный" (см. Рис. 23). Обычно такие иерархии возникают при рекурсивных связях. Иногда для таких иерархий используется термин Parent-child hierarchy (Иерархия «родитель-потомок»).
Рис. 23. Несбалансированная иерархия
Некоторые измерения могут иметь альтернативные иерархии. Например, измерение «Даты» могут группироваться следующим образом: число, месяц, год или день недели, номер недели, год.
Витрина отдела продаж представляет собой четырехмерный куб. даже трехмерные кубы представлять непросто. Разработчиками предложено много инструментов для создания различных отчетов, кросс-таблиц и диаграмм, представляющих собой срезы многомерных кубов. Схема работы OLAP приведена на Рис. 24.
Рис. 24. Схема работы OLAP-системы
|
Продукты питания |
Бытовая химия |
|||
Москва |
Екатеринбург |
Москва |
Екатеринбург |
||
Январь |
Опт |
|
|
|
|
Розница |
|
|
|
|
|
Февраль |
Опт |
|
|
|
|
Розница |
|
|
|
|
|
Рис. 25. Кросс-таблица
Подробнее об OLAP см. [5, 6, 7]
Д/З . Для примера из Д/З увеличьте хранилище данных двумя витринами данных. Для одной витрины используйте топологию «звезды», для другой – «снежинки» В примерах используйте измерения разного вида: коллективные, сбалансированные, неполные, несбалансированные. Приведите пример кросс-таблицы.
Вопросы для самопроверки:
Обязательно ли для OLAP хранилище данных?
Чем ROLAP отличается от HOLAP?
Чем топология «звезда» отличается от «снежинки»?
Нужна ли нормализация БД для ROLAP?
Чем несбалансированная иерархия отличается от неполной?
