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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 00:43, 27 мая 2019.

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

История

Источником для многомерных баз данных послужили не современные технологии баз данных, а алгебра многомерных матриц, которая использовалась для ручного анализа данных с конца 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]
  • Многомерные СУБД легко справляются с задачами включения в информационную модель разнообразных встроенных функций, тогда как объективно существующие ограничения языка SQL делают выполнение этих задач на основе реляционных СУБД достаточно сложным, а иногда и невозможным.
  • Общая простота системы, что позволяет осуществлять быстрое встраивание технологий многомерных СУБД в приложения. [Источник 2]
  • Относительно низкая общая стоимость владения

Недостатки:

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

Основные понятия

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

Многомерное представление данных разделяется на две группы: факты – численные параметры и измерения – текстовые параметры для предоставления максимально возможного контекста для фактов.

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

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

Таблицы измерений, содержат практически неизменяемые данные.

Измерения

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

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

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

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

Пример

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

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

Факты

Факты (меры) – это данные, которые количественно описывают процесс, они непрерывны, то есть могут принимать бесконечное количество значений.

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

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

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

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

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

Параметры

Параметры - свойства факта.[Источник 4]

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

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

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

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

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

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

Гиперкуб

Гиперкуб (рисунок 2) рассматривают как систему координат, в котором осями являются измерения (теоретически, куб может иметь любое число измерений). По осям будут откладываться значения измерений. В такой системе каждому набору значений измерений будет соответствовать ячейка, в которой можно разместить меры (числовые показатели/факты), связанные с данным набором.

Рисунок 2 - Гиперкуб

Двумерное представление куба

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

Пример

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

Рисунок 3 - Пример куба

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

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

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

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

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

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

Запросы

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

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

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

Многомерные базы данных реализуют в двух основных формах:[Источник 6]

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

Схемы

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

Звезда

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

  • Одна таблица фактов, которая сильно денормализована. Является центральной в схеме, может состоять из миллионов строк и содержит суммируемые или фактические данные, с помощью которых можно ответить на различные вопросы.
  • Несколько денормализованных таблиц измерений. Имеют меньшее количество строк, чем таблицы фактов, и содержат описательную информацию. Эти таблицы позволяют пользователю быстро переходить от таблицы фактов к дополнительной информации.
  • Таблица фактов и таблицы размерности связаны идентифицирующими связями, при этом первичные ключи таблицы размерности мигрируют в таблицу фактов в качестве внешних ключей. Первичный ключ таблицы факта целиком состоит из первичных ключей всех таблиц размерности.
  • Агрегированные данные хранятся совместно с исходными.

Преимущества

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

Недостатки

Денормализация таблиц измерений вносит избыточность данных, возрастает требуемый для их хранения объем памяти.

Снежинка

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

  • Одна таблица фактов, которая сильно денормализована. Является центральной в схеме, может состоять из миллионов строк и содержать суммируемые или фактические данные, с помощью которых можно ответить на различные вопросы.
  • Несколько таблиц измерений, которые нормализованы в отличие от схемы "звезда". Имеют меньшее количество строк, чем таблицы фактов, и содержат описательную информацию. Эти таблицы позволяют пользователю быстро переходить от таблицы фактов к дополнительной информации. Первичные ключи в них состоят из единственного атрибута (соответствуют единственному элементу измерения).
  • Таблица фактов и таблицы размерности связаны идентифицирующими связями, при этом первичные ключи таблицы размерности мигрируют в таблицу фактов в качестве внешних ключей. Первичный ключ таблицы факта целиком состоит из первичных ключей всех таблиц размерности.
  • В схеме "снежинка" агрегированные данные могут храниться отдельно от исходных.

Преимущества

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

Недостатки

За нормализацию таблиц измерений иногда приходится платить временем выполнения запросов.

Условия использования

Использование многомерных СУБД оправдано при следующих условиях: [Источник 8]

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

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

Некоторые примеры многомерных баз данных:[Источник 9]

Источники

  1. MOLAP // Введение в основы OLAP // intuit.ru [2003 — ]. Дата обновления: 29.04.2019. URL: https://www.intuit.ru/studies/courses/568/424/lecture/9641?page=7 (дата обращения: 29.04.2019).
  2. Многомерные базы данных (Multi-value Database) // gazintech.ru [2002 — ]. Дата обновления: 29.04.2019. URL: http://www.gazintech.ru/multivaluedb.php (дата обращения: 29.04.2019).
  3. Многомерные СУБД и практика построения корпоративных информационных систем. // http://old.febras.ru [2010 — ]. Дата обновления: 29.04.2019. URL: http://old.febras.ru/~conf/seminar/mor26.html (дата обращения: 29.04.2019).
  4. Параметры // Технология многомерных баз данных // OLAP.ru [2001 — ]. Дата обновления: 29.04.2019. URL: http://www.olap.ru/basic/multi_dim_DWH.asp (дата обращения: 29.04.2019).
  5. Запросы // Технология многомерных баз данных // OLAP.ru [2001 — ]. Дата обновления: 29.04.2019. URL: http://www.olap.ru/basic/multi_dim_DWH.asp (дата обращения: 29.04.2019).
  6. Реализация // Технология многомерных баз данных // OLAP.ru [2001 — ]. Дата обновления: 29.04.2019. URL: http://www.olap.ru/basic/multi_dim_DWH.asp (дата обращения: 29.04.2019).
  7. Моделирование многомерных кубов на реляционной модели данных. // Многомерное представление данных. Общая схема организации хранилища данных. Характеристики, типы и основные отличия технологий OLAP и OLTP. Схемы звезда и снежинка. Агрегирование. // OLAP // mai.moscow [2013 — ]. Дата обновления: 29.04.2019. URL: https://mai.moscow/display/MSP/2.+OLAP (дата обращения: 29.04.2019).
  8. Подробности организации // Многомерная СУБД [2005 — ]. Дата обновления: 29.04.2019. URL: http://www.tadviser.ru/index.php/Статья:Многомерная_СУБД (дата обращения: 29.04.2019).
  9. TOP 7 Multi-Value Databases [2018 — ]. Дата обновления: 29.04.2019. URL: https://www.predictiveanalyticstoday.com/top-free-commercial-multivalue-database/ (дата обращения: 29.04.2019).

Ссылки

  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