Обзор алгоритмов MOLAP

       

Требования к многомерным моделям данных


Многомерные модели, предлагаемые алгоритмами, должны, в идеале, удовлетворять перечисленным ниже требованиям, сформулированным в работе [16].

  • Иерархии в измерениях. Иерархии должны естественным образом описываться и поддерживаться моделью данных. Иерархии определяют поведение roll-up/drill-down.
  • Многочисленные иерархии в измерениях. В одном измерении может существовать несколько путей агрегирования данных, например, календарный и финансовый год в измерении Время.
  • Поддержка семантики агрегирования. Модель данных должна позволять задавать различные методы агрегирования, и на основе семантики агрегируемых данных ограничивать "неправильные" запросы, которые могут привести к учету одного факта два раза, суммированию неаддитивных показателей. Например, представляется неразумным суммировать балансовую сумму счета по измерению Время, однако вычисление среднегодового баланса или баланса на последнюю дату представляется логичным. В области статистических баз данных существует понятие "суммируемости" (англ. summarizability), которое означает, что агрегированный результат, например, продажи, может быть получен прямым агрегированием результатов более низкого уровня, например продаж по каждому из магазинов.
  • Нестрогие иерархии. Иерархии в измерениях могут быть нестрогими, т.е. могут существовать отношения "многие-к-многим" между разными уровнями иерархии. Для примера можно взять почти любую организационную иерархию.
  • Несбалансированные (non-onto) иерархии. Иерархии в изменениях могут быть несбалансированными, т.е. иметь разной длины пути от вершины к листьям.
  • Непокрывающие иерархии. Еще одно часто встречающееся на практике условие: узлы иерархии связаны, 'минуя' несколько уровней, например, адрес в пригороде может быть отнесен сразу на уровень "Регион", минуя "Город". Работа [15] посвящена сведению всех подобных иерархий к нормальным, сбалансированным и покрывающим, за счет добавления новых узлов.
  • Симметричная обработка мер и измерений.
    Модель должна позволять использовать измерения, как меры, и, наоборот, меры, как измерения. Например, возраст пациента служит мерой, но для анализа полезно создать разные группы пациентов по возрасту.


  • Отношения многие-к-многим между фактами и измерениями. Отношение между фактами и измерениями может быть нестрогим. К примеру, у одного пациента может быть несколько диагнозов.


  • Поддержка изменений и времени. Несмотря на то, что данные меняются с течением времени, должно быть возможно анализировать данные на временном горизонте, включающем эти изменения. Концепция "медленно меняющихся измерений" (Slowly Changing Dimensions, SCD) является частью этой проблемы. Эта же проблема касается "темпоральных баз данных" в более широком смысле. Подобные исследования обычно посвящены подержке временных срезов в контексте реляционных моделей данных.


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


  • Обработка неточных значений. Необходимо иметь возможность вводить данные с некоторым уровнем точности (часто точное число неизвестно) и на основе этих данных получать корректные результаты запросов. Этой теме посвящены работы [14] и [6].


  • Вперед: Синтаксические алгоритмы

    Выше: Введение. Анализ задачи

    Назад: OLAP и статистические базы данных

     


    Содержание раздела