Системы оперативного анализа данных (online analytical processing, OLAP) обычно используют одну из следующих трех различных архитектур для хранения многомерных данных:
♦ реляционные OLAP (ROLAP);
♦ многомерные OLAP (MOLAP);
♦ гибридные OLAP (HOLAP).
Обычно эти три архитектуры отличаются по тому способу, в котором они хранятся в данных на уровне листьев, и наличием предварительно рассчитанных агрегатов. (Данные на уровне листьев являются наилучшей частицей данных, которая определена в группе измерения куба. Поэтому данные на уровне листьев соответствуют данным таблицы фактов куба.)
В ROLAP предварительно вычисленные данные не сохраняются. Вместо этого запросы обращаются к данным в реляционной базе данных и ее таблицам, чтобы получить данные, требуемые в качестве ответа на вопрос. MOLAP является типом хранения, при котором данные на уровне листьев и их агрегатов хранятся с использованием многомерных кубов.
Хотя логическое содержание этих двух типов хранения данных одинаково для одного и того же хранилища данных, а оба аналитических инструмента ROLAP и MOLAP спроектированы так, чтобы позволить выполнение анализа через использование пространственной модели данных, между ними существуют значительные различия. Преимуществами типа хранения ROLAP являются следующие:
♦ данные не требуют дублирования;
♦ материализованные (т. е. индексированные) представления могут быть использованы для получения итоговых данных.
Если данные должны быть также сохранены и в многомерной базе данных, то некоторый объем данных должен быть дублирован. Поэтому тип хранения ROLAP не требует дополнительной памяти для копирования данных на уровне листьев. Также подведение итогов может быть выполнено в ROLAP очень быстро, если соответствующие итоговые таблицы были сгенерированы с использованием материализованных представлений.
С другой стороны, MOLAP также имеет некоторые преимущества по сравнению с ROLAP:
♦ агрегаты сохраняются в многомерной форме;
♦ запросы выполняются обычно быстрее.
При использовании MOLAP многие агрегаты предварительно вычисляются и сохраняются в многомерном кубе. Этот способ не требует от системы вычислять результаты подобных агрегатов каждый раз, когда они нужны. В случае MOLAP ядро системы управления базой данных и сама база данных обычно оптимизированы для совместной работы, так что ответ на запрос может быть быстрее, чем в случае ROLAP.
Хранение HOLAP является комбинацией типов хранения MOLAP и ROLAP. Предварительно вычисленные данные сохраняются, как и в случае хранения MOLAP, в то время как данные на уровне листьев остаются в реляционной базе данных. (Поэтому в случае запросов, использующих подведение итогов, HOLAP идентичен MOLAP.) Преимуществом хранения HOLAP является то, что данные на уровне листьев не дублируются.