Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бд / Лекция 12 - OLTP, OLAP.docx
Скачиваний:
81
Добавлен:
14.05.2015
Размер:
1.03 Mб
Скачать

Операции, выполняемые над гиперкубом

Над гиперкубом могут выполняться следующие операции:

  1. Срез (рисунок 1.7) - формируется подмножество многомерного массива данных, соответствующее единственному значению одного или нескольких элементов измерений, не входящих в это подмножество.

Рис. 1.7.  Срез

На рис. 7 схематично представлены сечения гиперкуба. Слева сечение выполнено при некотором фиксированном значении измерения Дата. Полученный срез (светло-серая область) содержит информацию обо всех товарах и всех покупателях на определенную дату. На правом фрагменте рисунка получено два среза, пересечение которых будет содержать информацию обо всех покупателях, но на определенный товар и на определенную дату.

  Рис. 7. Сечения гиперкуба

  1. Вращение (рисунок 1.8) - изменение расположения измерений, представленных в отчете или на отображаемой странице. Например, операция вращения может заключаться в перестановке местами строк и столбцов таблицы. Кроме того, вращением куба данных является перемещение внетабличных измерений на место измерений, представленных на отображаемой странице, и наоборот.

Рис. 1.8.  Вращение

Консолидация (свертка) (рисунок 1.9) и детализация (рисунок 1.10) - операции, которые определяют переход вверх по направлению от детального представления данных к агрегированному и наоборот, соответственно. Направление детализации (обобщения) может быть задано как по иерархии отдельных измерений, так и согласно прочим отношениям, установленным в рамках измерений или между измерениями.

Рис. 1.9.  Консолидация

Рис. 1.10.  Детализация

Например, если при анализе данных о продажах в Северной Америке выполнить операцию детализации для измерения "Регион", то будут отображены такие элементы, как "Канада", "Восточные штаты США" и "Западные штаты США". В результате дальнейшей детализации элемента "Канада" будут отображены элементы "Торонто", "Ванкувер" и т.д.

. Проиллюстрируем результаты свертки: в табл. 2 представлена исходная таблица, а в табл. 3 — результат ее свертки по измерению Товар.

Таблица 2. Исходная таблица

Группа

Товар

Сумма

Стройматериалы

Кирпич

22 000

Цемент

12 000

Керамзит

4500

Доска

7400

Инструмент

Отвертка

1200

Электропила

7600

Дрель

2450

Шпатель

780

Таблица 3. Результат свертки исходной таблицы по измерению «Товар»

Группа

Сумма

Стройматериалы

45 900

Инструмент

12 030

Таблица фактов

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

  1. факты, связанные с транзакциями (Transaction facts). Они основаны на отдельных событиях (типичными примерами которых являются телефонный звонок или снятие денег со счета с помощью банкомата);

  2. факты, связанные с "моментальными снимками" (Snapshot facts). Основаны на состоянии объекта (например, банковского счета) в определенные моменты времени, например на конец дня или месяца. Типичными примерами таких фактов являются объем продаж за день или дневная выручка;

  3. факты, связанные с элементами документа (Line-item facts). Основаны на том или ином документе (например, счете за товар или услуги) и содержат подробную информацию об элементах этого документа (например, количестве, цене, проценте скидки);

  4. факты, связанные с событиями или состоянием объекта (Event or state facts). Представляют возникновение события без подробностей о нем (например, просто факт продажи или факт отсутствия таковой без иных подробностей).

Таблица фактов, как правило, содержит уникальный составной ключ, объединяющий первичные ключи таблиц измерений. Чаще всего это целочисленные значения либо значения типа "дата/время" - ведь таблица фактов может содержать сотни тысяч или даже миллионы записей, и хранить в ней повторяющиеся текстовые описания, как правило, невыгодно - лучше поместить их в меньшие по объему таблицы измерений. При этом как ключевые, так и некоторые неключевые поля должны соответствовать будущим измерениям OLAP-куба. Помимо этого таблица фактов содержит одно или несколько числовых полей, на основании которых в дальнейшем будут получены агрегатные данные.

Для многомерного анализа пригодны таблицы фактов, содержащие как можно более подробные данные (то есть соответствующие членам нижних уровней иерархии соответствующих измерений). В данном случае предпочтительнее взять за основу факты продажи товаров отдельным заказчикам, а не суммы продаж для разных стран - последние все равно будут вычислены OLAP-средством.

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

Пример фрагмента схемы данных хранилища данных AdventureWorks приведен на рисунок 1.11.

Рис. 1.11.  Фрагмент схемы данных хранилища данных AdventureWorks

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

Рис. 1.12.  Столбцы таблицы FactInternetSales и их типы данных