- 29 сентября 2026
- 8 минут
- 3
Статью подготовили специалисты образовательного сервиса Zaochnik.
Многомерная модель данных: гиперкубы, измерения и аналитическая обработкаф
Гиперкубы, измерения и аналитическая обработка
Когда данных становится много и они тесно связаны со временем, обычной таблицы для анализа уже мало. Здесь на первый план выходит многомерная модель — способ представления сведений, заточенный под быстрый разбор больших массивов и поддержку управленческих решений.
Как появилась многомерная модель
Многомерный подход к представлению данных зародился почти одновременно с реляционным. Однако реально работающих многомерных СУБД (МСУБД) долгое время было крайне мало, и массовый интерес к ним пробудился лишь с середины 1990-х годов.
Толчком послужила статья 1993 года, которую написал один из основоположников реляционного подхода Э. Кодд. В ней он сформулировал основные требования к системам оперативной аналитической обработки. Главные из этих требований касались как раз возможностей концептуального представления и обработки многомерных данных. Такие системы дают возможность оперативно обрабатывать информацию ради анализа и принятия решений.
Информационные системы (ИС) развивались по двум направлениям:
- системы аналитической обработки — иначе говоря, поддержки принятия решений;
- системы оперативной (транзакционной) обработки.
Для оперативной обработки реляционные СУБД подходили отлично и работали в этой области весьма эффективно. А вот в аналитических задачах им не хватало гибкости. Здесь заметно выигрывали многомерные системы управления базами данных.
Многомерные СУБД — это узкоспециализированные системы, предназначенные для интерактивной аналитической обработки информации.
Ключевые понятия: агрегируемость, историчность и прогнозируемость
В основе МСУБД лежат три важных свойства данных. Разберём каждое по отдельности.
Агрегируемость данных — это возможность работать с информацией на разных уровнях её обобщения.
Насколько детально показывать сведения, зависит от того, кто с ними работает: рядовому оператору, аналитику, управляющему и руководителю нужна разная степень подробности.
Историчность данных — это обеспечение высокой неизменности (статичности) самих данных и их связей с обязательной привязкой ко времени.
Статичность данных даёт возможность применять при их обработке специализированные методы загрузки, индексации, хранения и выборки.
Привязка ко времени нужна потому, что запросы часто включают в выборку значения даты и времени. Раз данные приходится упорядочивать по временному показателю и при обработке, и при показе пользователю, к механизмам хранения и доступа предъявляются особые требования. Например, чтобы сократить время выполнения запросов, данные стоит держать заранее отсортированными в том порядке, в каком их запрашивают чаще всего.
Прогнозируемость данных — это применение функций прогнозирования для разных временных интервалов.
Многомерность модели позволяет представлять логическую структуру информации в многомерном виде — как при её описании, так и при операциях манипулирования данными. По сравнению с реляционной такая модель заметно выигрывает в наглядности и информативности: одни и те же сведения об объёмах продаж автомобилей в многомерном виде читаются куда легче, чем в наборе плоских таблиц.
Из чего состоит многомерная модель
Стоит уточнить один практический момент. Когда мерность модели больше двух, для визуализации далеко не всегда используют сами многомерные объекты — трёх-, четырёх- и более мерные гиперкубы. Пользователю удобнее работать с двумерными таблицами или графиками. Поэтому данные показывают в виде «срезов» из многомерной базы, причём такой срез можно выполнить с любой нужной степенью детализации.
В многомерных моделях опираются на несколько базовых понятий.
Измерение — это множество однотипных данных, образующих одну грань гиперкуба.
Чаще всего в роли измерений выступают:
- временные — Год, Квартал, Месяц, День;
- географические — Город, Район, Регион, Страна и так далее.
По сути, измерения играют роль индексов: именно по ним отыскиваются конкретные значения в ячейках гиперкуба.
Ячейка — это поле, значение которого однозначно определяется фиксированным набором измерений.
Обычно ячейка имеет цифровой тип. В качестве значений она может содержать переменные (их разрешается менять, а также загружать из внешнего источника или формировать программно) либо формулы (значения, которые вычисляются по заданным правилам).
Например, если взять два измерения — Месяц и Модель, — то каждая ячейка с показателем «Объём продаж» однозначно определяется их сочетанием. На практике измерений нередко требуется больше. Наглядный пример трёхмерной модели выглядит так:
- Время (год): 2014, 2015, 2016;
- Менеджер: Иванов, Петров, Сидоров;
- Модель: Honda, Volvo, Audi;
- Показатель: объём продаж.
Здесь каждое значение объёма продаж определяется уже тремя координатами — годом, менеджером и моделью автомобиля.
Две схемы организации данных
В МСУБД применяют две основные схемы хранения — гиперкубическую и поликубическую.
Гиперкубическая схема предполагает, что все показатели описываются одним и тем же набором измерений.
Иначе говоря, если база содержит несколько гиперкубов, все они одинаковой размерности и с совпадающими измерениями. Отсюда вытекает очевидный минус: при обязательном заполнении ячеек база порой хранит избыточную информацию.
Поликубическая схема допускает наличие в базе нескольких гиперкубов с разной размерностью и разными измерениями в качестве граней.
Пример системы, поддерживающей поликубическую схему, — сервер Oracle Express Server.
Преимущества и недостатки модели
Главное достоинство многомерной модели — удобство и эффективность аналитической обработки больших массивов данных, связанных со временем. Именно ради таких задач она и создавалась.
Но есть и обратная сторона. Для простейших операций обычной оперативной обработки многомерная модель оказывается слишком громоздкой, и применять её здесь попросту нерационально.
Среди систем, которые поддерживают многомерные модели данных, можно назвать Cache, Oracle Express Server, Media Multi-matrix и Essbase.
Выбирать модель стоит по характеру задачи. Многомерная модель раскрывается там, где нужен глубокий анализ больших объёмов данных с привязкой ко времени — прогнозы, отчётность разной степени обобщения, поддержка решений. Для повседневных транзакционных операций разумнее оставить реляционную модель, а гиперкубическую и поликубическую схемы выбирать исходя из того, одинаков ли набор измерений у ваших показателей: единый набор — гиперкубическая, разнородные кубы — поликубическая.