Многомерные базы данных

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 14:22, 8 ноября 2017.

Многомерные базы данных – разновидность реляционной модели, которая использует многомерные структуры для организации данных и выражают отношения между данными [1]. Поддерживают неограниченное число значений в поле, и находят свое применение там, где необходима эффективная и простая работа с большими массивами символьной информации.

История

Источником для многомерных баз данных послужили не современные технологии баз данных, а алгебра многомерных матриц, которая использовалась для ручного анализа данных с конца XIX столетия.

В конце 60-х годов компании IRI Software и Comshare независимо друг от друга начали разрабатывать то, что позднее стали называть системами управления многомерными базами данных. IRI Express, популярный в конце 70-х и начале 80-х годов инструментарий маркетингового анализа, стал лидером рынка средств оперативной аналитической обработки и был куплен корпорацией Oracle. На базе системы Comshare был создан инструментарий System W, в 80-х годах активно применявшийся для финансового планирования, анализа и формирования отчетов.

Образованная в 1991 году компания Arbor Software (теперь Hyperion Solutions) в качестве своей специализации выбрала создание многопользовательских серверов многомерных баз данных; результатом этих работ стала система Essbase. Позже Arbor лицензировала базовую версию Essbase корпорации IBM, которая интегрировала ее в DB2.

В 1993 году Э.Ф. Кодд ввел термин OLAP. В начале 90-х сложилась еще одна важная концепция — крупные хранилища данных, которые, как правило, базируются на схемах «звезда» и «снежинка». При таком подходе для реализации многомерных баз удается использовать технологию реляционных баз данных.

В 1998 году корпорация Microsoft выпустила OLAP Server, первую многомерную систему, предназначенную для массового рынка, и теперь такие системы становятся распространенными продуктами и предлагаются без дополнительной оплаты вместе с популярными системами управления реляционными базами данных.

Общие сведения

Если целью является именно анализ данных, а не выполнение транзакций, используется многомерная модель данных. Технология многомерных баз данных — ключевой фактор интерактивного анализа больших массивов данных с целью поддержки принятия решения. Подобные базы данных трактуют данные как многомерные кубы, что очень удобно именно для их анализа[2].

Многомерные модели рассматривают данные либо как факты с соответствующими численными параметрами, либо как текстовые измерения, которые характеризуют эти факты.

Многомерные модели данных имеют три важных области применения, связанных с проблематикой анализа данных.

  1. Хранилища данных интегрируют для анализа информации из нескольких источников.
  2. Системы оперативной аналитической обработки (online analytical processing — OLAP) позволяют оперативно получить ответы на запросы, охватывающие большие объемы данных в поисках общих тенденций.
  3. Приложения добычи данных служат для выявления знаний за счет полуавтоматического поиска ранее неизвестных шаблонов и связей в базах данных.

Представление данных

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

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

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

Измерения

Измерения — ключевая концепция многомерных баз данных. Многомерное моделирование предусматривает использование измерений для предоставления максимально возможного контекста для фактов.

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

В отличие от линейных пространств, с которыми имеет дело алгебра матриц, многомерные модели, как правило, не предусматривают функций упорядочивания или расстояния для значений измерения. Единственное «упорядочивание» состоит в том, что значения более высокого уровня содержат значения более низких уровней. Однако для некоторых измерений, таких как время, упорядоченность значений размерности может использоваться для вычисления совокупной информации, такой как общий объем продаж за определенный период. Большинство моделей требуют определения иерархии измерений для формирования сбалансированных деревьев — иерархии должны иметь одинаковую высоту по всем ветвям, а каждое значение не корневого уровня — только одного родителя.

Пример

На рис. 1 показана схема «Местоположение» для данных продаж. Из трех уровней измерений местоположения самый низкий — «Город». Значения уровня «Город» группируются в значения на уровне «Страна», к примеру, Аалборг и Копенгаген находятся в Дании. Уровень T представляет все измерения.

Рис. 1. Пример схемы измерений местоположения. Каждое значение размерности является частью значения T

Факты

Факты представляют субъект — некий шаблон или событие, которые необходимо проанализировать. В большинстве многомерных моделей данных факты однозначно определяются комбинацией значений измерений; факт существует только тогда, когда ячейка для конкретной комбинации значений не пуста.

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

Хранилища данных, как правило, содержат следующие три типа фактов.

  1. События (event), по крайней мере, на уровне самой большой гранулярности, как правило, моделируют события реального мира, при этом каждый факт представляет определенный экземпляр изучаемого явления. Примерами могут служить продажи, щелчки мышью на Web-странице или движение товаров на складе.
  2. Мгновенные снимки (snapshot) моделируют состояние объекта в данный момент времени, такие как уровни наличия товаров в магазине или на складе и число пользователей Web-сайта. Один и тот же экземпляр явления реального мира, например, конкретная банка бобов, может возникать в нескольких фактах.
  3. Совокупные мгновенные снимки (cumulative snapshot) содержат информацию о деятельности организации за определенный отрезок времени. Например, совокупный объем продаж за предыдущий период, включая текущий месяц, можно легко сравнить с показателями за соответствующие месяцы прошлого года.

Хранилище данных часто содержит все три типа фактов. Одни и те же исходные данные, например, движение товаров на складе, могут содержаться в трех различных типах кубов: поток товаров на складе, список товаров и поток за год к текущей дате.

Параметры

Параметры состоят из двух компонентов:

  1. Численная характеристика факта, например, цена или доход от продаж;
  2. Формула, обычно простая агрегативная функция, скажем, сумма, которая может объединять несколько значений параметров в одно.

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

Классы параметров:

  1. Аддитивные параметры могут содержательным образом комбинироваться в любом измерении. Например, имеет смысл суммировать общий объем продаж для продукта, местоположения и времени, поскольку это не вызывает наложения среди явлений реального мира, которые генерируют каждое из этих значений.
  2. Полуаддитивные параметры, которые не могут комбинироваться в одном или нескольких измерениях. Например, суммирование запасов по разным товарам и складам имеет смысл, но суммирование запасов товаров в разное время бессмысленно, поскольку одно и то же физическое явление может учитываться несколько раз.
  3. Неаддитивные параметры не комбинируются в любом измерении, обычно потому, что выбранная формула не позволяет объединить средние значения низкого уровня в среднем значении более высокого уровня.

Аддитивные и неаддитивные параметры могут описывать факты любого рода, в то время как полуаддитивные параметры, как правило, используются с мгновенными снимками или совокупными мгновенными снимками.

"Разрезание" куба

Двумерное представление куба можно получить, "разрезав" его поперек одной или нескольких осей (измерений): мы фиксируем значения всех измерений, кроме двух, - и получаем обычную двумерную таблицу. В горизонтальной оси таблицы (заголовки столбцов) представлено одно измерение, в вертикальной (заголовки строк) - другое, а в ячейках таблицы - значения мер. При этом набор мер фактически рассматривается как одно из измерений - мы либо выбираем для показа одну меру (и тогда можем разместить в заголовках строк и столбцов два измерения), либо показываем несколько мер (и тогда одну из осей таблицы займут названия мер, а другую - значения единственного "неразрезанного" измерения)[3].

Пример

Общий вид куба - рисунок 2.

Рис. 2. Пример куба

Взгляните на рис. 3 - здесь изображен двумерный срез куба для одной меры - Unit Sales (продано штук) и двух "неразрезанных" измерений - Store (Магазин) и Время (Time).

Рис. 3. Двумерный срез куба для одной меры

На рис. 4 представлено лишь одно "неразрезанное" измерение - Store, но зато здесь отображаются значения нескольких мер - Unit Sales (продано штук), Store Sales (сумма продажи) и Store Cost (расходы магазина).

Рис. 4. Двумерный срез куба для нескольких мер

Двумерное представление куба возможно и тогда, когда "неразрезанными" остаются и более двух измерений. При этом на осях среза (строках и столбцах) будут размещены два или более измерений "разрезаемого" куба - см. рис. 5.

Рис. 5. Двумерный срез куба с несколькими измерениями на одной оси

Запросы

Многомерная база данных естественным образом предназначена для определенных типов запросов.

  1. Запросы вида slice-and-dice осуществляют выбор, сокращающий куб.
  2. Запросы вида drill-down и roll-up — взаимообратные операции, которые используют иерархию измерений и параметры для агрегирования. Обобщение до высших значений соответствует исключению размерности.
  3. Запросы вида drill-across комбинируют кубы, которые имеют одно или несколько общих измерений. С точки зрения реляционной алгебры такая операция выполняет слияние (join).
  4. Запросы вида ranking возвращает только те ячейки, которые появляются в верхней или нижней части упорядоченного определенным образом списка.
  5. Поворот (rotating) куба дает пользователям возможность увидеть данные, сгруппированные по другим измерениям.

Формы многомерных БД

Многомерные базы данных реализуют в двух основных формах:

  1. Системы многомерной оперативной аналитической обработки (MOLAP) хранят данные в специализированных многомерных структурах. Системы MOLAP, как правило, содержат средства для обработки разреженных массивов и применяют усовершенствованную индексацию и хеширование для поиска данных при выполнении запросов.
  2. Реляционные системы OLAP (ROLAP) для хранения данных используют реляционные базы данных, а также применяют специализированные индексные структуры, такие как битовые карты, чтобы добиться высокой скорости выполнения запросов.

Ссылки

  1. Online analytical processing. Multidimensional databases // Wikipedia. [2017—2017]. Дата обновления: 07.09.2017. URL:https://en.wikipedia.org/wiki/Online_analytical_processing#cite_ref-8 (дата обращения: 29.10.2017).
  2. Технология многомерных баз данных - OLAP.ru [Электронный ресурс] / Дата обращения: 29.10.2017. — Режим доступа: http://www.olap.ru/basic/multi_dim_DWH.asp
  3. Введение в OLAP и многомерные базы данных - Боровское исследовательское учреждение [Электронный ресурс] / Дата обращения: 29.10.2017. — http://www.bourabai.kz/tpoi/olap06.htm