|
Страница 1 из 3 
Статья посвящена формализации механизма агрегации данных OLAP-куба с использованием теории множеств и теории графов. В ходе изложения выводятся формулы количества агрегатов при полной и частичной агрегации, а также на основании полученной сетевой модели рассматриваются вопросы оптимальности процедур предварительного и оперативного формирования агрегатов.
Содержание 1. Введение 2. Основные понятия многомерной модели данных -
3. Частичная и полная агрегация 4. Оператор агрегирования 5. Вычислительные затраты на агрегирование 6. Процедуры формирования агрегатов 7. Заключение 1. Введение Нет необходимости говорить об актуальности систем поддержки многомерного оперативного анализа данных или OLAP-систем. Об этом на данный момент существует уже и так достаточно много публикаций. В основном, доступная литература, касающаяся данной тематики, посвящена концепции, технологиям OLAP, а также вопросам практического характера. Вот чём действительно мало материала, так это о теоретических основах OLAP. Возможно, из-за этого достаточно широко распространено мнение о том, что OLAP-системы не представляют интереса с математической точки зрения. Статья посвящена формальному представлению механизма агрегации данных OLAP- куба, а, следовательно, большинство фактов изложено математическим языком, поэтому материал статьи рассчитан в первую очередь на круг читателей, глубоко интересующихся проблемами OLAP-систем. 2. Основные понятия многомерной модели данных Прежде, чем мы перейдем непосредственно к вопросам агрегации данных, напомним основные понятия многомерной модели данных, характерной для OLAP- систем. Дело в том что, на данный момент нет общепризнанной точки зрения на многомерную модель представления данных. Конечно, принципиальных различий в существующих взглядах нет, однако с точки зрения, например, терминологии некоторые разногласия имеются. Мы в данной статье будем ориентироваться на вариант, предлагаемый компанией “Microsoft”. Итак, основными понятиями многомерной модели данных являются: Показатель - это величина (обычно числового типа), которая собственно и является предметом анализа. Это, например, объём продаж некоторого товара, или выручка от продаж товара. Один OLAP-куб может обладать одним или несколькими показателями. -
Измерение (dimension) - это множество объектов одного или нескольких типов, организованных в виде иерархической структуры и обеспечивающих информационный контекст числового показателя. Измерение принято визуализировать в виде ребра многомерного куба. Объекты, совокупность которых и образует измерение, называются членами измерений (members). Члены измерений визуализируют как точки или участи, откладываемые на осях гиперкуба. Например, временное измерение: Дни, Месяцы, Кварталы, Годы - наиболее часто используемые в анализе, могут содержать следующие члены: 8 мая 2002 года, май 2002 года, 2-ой квартал 2002 года и 2002 год. Как уже было сказано, объекты в измерениях могут быть различного типа, например “производители” – “марки автомобиля” или “годы” - “кварталы”. Эти объекты должны быть организованы в иерархическую структуру так, чтобы объекты одного типа принадлежали только одному уровню иерархии. Но об этом чуть позже. -
Ячейка (cell) - атомарная структура куба, соответствующая конкретному значению некоторого показателя. Ячейки при визуализации располагаются внутри куба и здесь же принято отображать соответствующее значение показателя. Измерения играют роль индексов, используемых для идентификации значений показателей, находящихся в ячейках гиперкуба. Комбинация членов различных измерений играют роль координат, которые определяют значение определенного показателя (рис.2). Поскольку для куба может быть определено несколько показателей, то комбинация членов всех измерения будет определять несколько ячеек со значениями каждого из показателей. Поэтому для однозначной идентификации ячейки необходимо указать комбинацию членов всех измерений и показатель. 
Рис. 1 Куб c тремя измерениями Заметим, что, в отличие от измерений, не все значения показателей должны иметь и имеют реальные значения. Например, Менеджер Петров в 1994 г. мог еще не работать в фирме, и в этом случае все значения Показателя Объем продаж за этот год будут иметь неопределенные, “пустые” значения. Иерархии в измерениях необходимы для возможности агрегации и детализации значений показателей согласно иерархической структуре. Существуют следующие типы иерархий: Сбалансированные (balanced) – иерархии, в которых число уровней определено её структурой и неизменно, и каждая ветвь иерархического дерева содержит объекты каждого из уровней. Каждому производителю автомобилей может соответствовать несколько марок автомобилей, а каждой марке — несколько моделей автомобилей, поэтому можно говорить о трёхуровневой иерархии этих объектов. В этом случае на первом уровне иерархии располагаются производители, на втором — марки, а на третьем — модели. Как нетрудно понять, что для формирования сбалансированной иерархии необходимо наличие связи “один-ко-многим” между объектами менее детального уровня по отношению к объектам более детального уровня. В принципе каждый уровень сбалансированной иерархии можно представить как отдельное простое измерение, но тогда эти измерения окажутся зависимыми, в значит неизбежно повышение разреженности куба. -
Несбалансированные (unbalanced) – иерархии, в которых число уровней может быть изменено, и каждая ветвь иерархического дерева может содержать объекты, принадлежащие не всем уровням, только нескольким первым. Необходимо заметить, что все объекты несбалансированной иерархии принадлежат одному типу. Типичный пример несбалансированной иерархии — иерархия типа "начальник—подчиненный", где все объекты имеют один и тот же тип – “Сотрудник”. -
Неровные (balanced) – иерархии, в которых число уровней определено её структурой и постоянно, однако в отличие от сбалансированной иерархии некоторые ветви иерархического дерева могут не содержать объекты какого-либо уровня. Иерархии такого вида содержат такие члены, логические "родители" которых не находятся на непосредственно вышестоящем уровне. Типичным примером является географическая иерархия, в которой есть уровни “Страны”, “Штаты ” и “Города”, но при этом в наборе данных имеются страны, не имеющие штатов или регионов между уровнями “Страны” и “Города”. Описанная в данном документе модель агрегации данных предназначена только для сбалансированных иерархий, однако это не является существенным ограничением, поскольку несбалансированные и неровные иерархии встречаются достаточно редко по сравнению со сбалансированными. Агрегатами называют агрегированные по определенным условиям исходные значения показателей. Обычно под агрегацией понимается любая процедура формирования меньшего количества значений (агрегатов) на основании большего количества исходных значений. В дальнейшем под терминами агрегирование и агрегация будем понимать исключительно процесс суммирования данных. Заблаговременное формирование и сохранение агрегатов с целью уменьшения времени отклика на пользовательский запрос является основным свойством систем поддержки оперативного анализа. В последующих главах данной статьи более подробно описываются механизмы агрегации данных. 3. Частичная и полная агрегация Степень агрегации куба вычисляется как: (1) где a – реальное количество агрегированных значений показателей, a* - максимально возможное количество агрегатных значений исходных данных куба. При выводе формул для a и a* сначала будем разбирать простые случаи с двумя-тремя измерениями, а затем перейдём к обобщённому варианту. То же самое касается и уровней иерархии в измерениях: сначала рассматриваются случаи простых измерений (с одним уровнем), а затем на примере измерений с несколькими уровнями выводится обобщённая формула. Такой подход позволяет легче понять процесс получения агрегатных значений показателей, поскольку читателю легче представить себе двух и трёхмерное пространство, сем пространства большей размерности.
|