Опубликован: 20.12.2010 | Уровень: специалист | Доступ: свободно
Лекция 8:

Метод многомерного моделирования

Аннотация: В настоящей лекции рассматриваются основы метода многомерного моделирования данных для ХД, вводятся и обсуждаются основные элементы многомерной модели и понятия метода. Приведены примеры моделирования для основных схем.
Ключевые слова: многомерная модель, атрибуты, измерения, факты, гранулированность, аддитивные факты, полуаддитивные факты, неаддитивные факты, медленно меняющиеся измерения, быстро меняющиеся измерения, вырожденные измерения, иерархии измерений, схема "звезда", схема "снежинка", транзакционные таблицы фактов, таблицы фактов периодических моментальных снимков, таблицы фактов кумулятивных моментальных снимков, многомерное моделирование, two-dimensional, modeling, моделирование, прибыль, вес, сущность-связь, model, очередь, БД, fact, элемент данных, деятельность, стоимость, значение, dimension, лингвистическая переменная, время, место, иерархия, hierarchy, разбиение, метрика, численное выражение, granularity, гиперкуб, функция, куб данных, drilling, пользователь, путь, приложение, операции, intensive, Произведение, числитель, ключи, идентификатор, таблица, множества, продажа, поле, star schema, snowflake schema, принятия решений, производительность, СУБД, schema, транзакция, запрос, производные, произвольное, цели проекта, резюме, менеджер, разбиение таблиц, отгрузка товара, ETL, unbalanced, rag, таблицы-мосты, таблицы фактов без метрик

Цель лекции

Изучив материал настоящей лекции, вы будете знать:

  • основные элементы многомерной модели: атрибуты, измерения, факты, гранулированность ;
  • основные схемы данных многомерной модели;
  • что такое аддитивные, полуаддитивные и неаддитивные факты ;
  • что такое медленно меняющиеся измерения, быстро меняющиеся измерения, вырожденные измерения ;
  • что такое иерархия измерений ;
  • что такое схема "звезда" ;
  • что такое схема "снежинка" ;

и научитесь:

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

Литература: [2], [3], [29], [30], [37].

Основные понятия метода многомерного моделирования

Многомерное моделирование (Dimensional modeling) проще для понимания, чем ER-моделирование. Многомерное моделирование является методом моделирования и визуализации данных как множества числовых или лингвистических показателей или параметров (measures), которые описывают общие аспекты деятельности организации. Как правило, при многомерном моделировании основное внимание фокусируется на числовых данных, таких как число продаж, баланс, прибыль, вес, или на объектах, которые можно пересчитать, таких как статьи, патенты, книги.

Многомерное моделирование имеет много общего с моделированием методом "сущность-связь" для реляционной модели, но отличается целями. Реляционная модель акцентируется на целостности и эффективности ввода данных. Многомерная модель (Dimensional model) ориентирована в первую очередь на выполнение сложных запросов к БД.

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

Факт (fact) — это набор связанных элементов данных, содержащих метрики и описательные данные. Каждый факт обычно представляет элемент данных, численно описывающий деятельность организации, бизнес-операцию или событие, которое может быть использовано для анализа деятельности организации или бизнес-процессов. В ХД факты сохраняются в базовых таблицах реляционной БД. Например, стоимость товара, количество единиц товара и т.д.

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

Измерение (dimension) — это интерпретация факта с некоторой точки зрения в реальном мире. Измерения, подобно атрибутам, содержат текстовые значения, которые сильно связаны по смыслу между собой. Обычно измерения представляются как оси многомерного пространства, точками которого являются связанные с ними факты. В многомерной модели каждый факт связан с одной или несколькими осями. Измерения обычно представляют нечисловые, лингвистические переменные, такие как филиалы организации, сотрудники организации, покупатели и т.д.

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

Измерения задаются перечислением своих элементов (members). Элемент измерения (dimensional member) — уникальное имя или идентификатор (лингвистическая переменная), используемая для определения позиции элемента. Например, измерение " Время " может содержать следующие элементы: "все месяцы", "кварталы", "годы".

Часто элементы измерения находятся в отношении "часть-целое" или "родитель-потомок", что позволяет ввести на измерении одну или несколько иерархий. Каждая иерархия может иметь несколько уровней иерархии (hierarchy levels). Каждый элемент измерения должен принадлежать только одному уровню иерархии, порождая таким образом разбиение на непересекающиеся подмножества. Примером может служить иерархия на измерении " Время ": год, полугодия, кварталы, месяцы и дни. Элемент измерения "неделя" может принадлежать двум месяцам, поэтому для него следует определить другую иерархию.

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

Гранулированность (Granularity) – это уровень детализации данных, сохраняемых в ХД. Например, ежедневные объемы продаж.

Многомерная модель

Многомерная модель визуально представляется с помощью куба (или в случае более трех измеренийгиперкуба). Рассмотрим пример. Пусть объем продаж торговой организации есть функция от переменных "Товары", "Месяц" и "Регион продаж". Тогда в качестве измерений будут выступать "Товары", " Время " и "Месторасположение". На рис. 9.1 приведен многомерный куб данных для представления данной функции.

Куб данных

Рис. 9.1. Куб данных

На этих измерениях могут быть заданы следующие иерархии:

  • измерение "Товары" — "Производитель-Категория-Товар";
  • измерение "Месторасположение" — "Федеральный округ-Город-Магазин";
  • измерение " Время " — "Год-Квартал-Месяц" или "Неделя-День".

Многомерное моделирование является основным методом логического проектирования ХД для OLAP-приложений. Для таких приложений типично выполнение операций свертывания и развертывания данных.

Развертка (drill down) и свертка (drill up) являются операциями перемещения вниз и вверх по уровням иерархии измерения. При выполнении развертки пользователь перемещается от верхних уровней к нижним уровням, которые содержат обычно более подробные данные. При выполнении свертки пользователь перемещается от нижних уровней иерархии к верхним, тем самым обобщая информацию на каждом уровне. При выполнении этих операций путь навигации определяется иерархиями измерений.

Операции свертки и развертки на кубе данных

увеличить изображение
Рис. 9.2. Операции свертки и развертки на кубе данных

Таким образом, иерархии задают пути суммирования объема продаж. Например, какой объем продаж товара HP LaserJet 1010 категории "Принтеры" производителя HP был на 3 неделе ноября в городе Брянске в магазине "Вычислительная техника".

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

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?