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

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

Таблицы фактов

Факты в многомерной модели принято представлять в виде таблицы фактов. В логической модели "сущность-связь" таблица фактов представляется сущностью, атрибутами которой являются факты (метрики или описания) и составной ключ, связывающий таблицу фактов с таблицами измерений взаимосвязью "один ко многим".

Таблицы фактов разделяют на три основные категории, в зависимости от уровня детализации фактов ( гранулированности ).

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

Основными характеристиками таблицы фактов являются следующие.

  1. Таблица фактов содержит числовые параметры (метрики).
  2. Каждая таблица фактов имеет составной ключ, состоящий из первичных ключей таблиц измерений. Первичный ключ таблицы измерений является внешним ключом в таблице фактов.
  3. Таблица фактов имеет, как правило, небольшое количество полей, не более 20-ти.
  4. Данные в таблице фактов обладают следующими свойствами:
    • числовые параметры используются для агрегации и суммирования;
    • значения данных должны обладать свойствами аддитивности или полуаддитивности по отношению к измерениям, для того чтобы их можно было суммировать;
    • все данные таблицы фактов должны быть однозначно идентифицированы через ключи таблиц измерений, чтобы обеспечить доступ к ним через таблицы измерений.

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

Пример таблицы фактов приведен на рис. 9.3.

Измерения

Основными характеристиками таблицы измерений являются следующие.

  1. Таблицы измерений содержат данные о детализации фактов.
  2. Таблицы измерений содержат описательную информацию о числовых значениях в таблице фактов, т.е. они содержат атрибуты фактов.
  3. Как правило, денормализованные таблицы измерений содержат большое количество полей.
  4. Таблицы измерений содержат обычно значительно меньше строк, чем таблицы фактов.
  5. Атрибуты таблиц измерений обычно используются при визуализации данных в отчетах и запросах.

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

Таблица измерений

Рис. 9.6. Таблица измерений

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

Основные схемы многомерной модели

Существуют несколько схем для многомерного моделирования данных. Две из них считаются основными: схема "звезда" (star schema) и схема "снежинка" (snowflake schema). В более сложных случаях используются так называемые "многозвездочные" схемы или схема с несколькими таблицами фактов.

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

Схема "снежинка" имеет одну таблицу фактов и несколько нормализованных таблиц измерений.

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

На рис. 9.7 приведен пример схемы "звезда", созданной для учета продажи бакалейных товаров. Таблица фактов "Продажи бакалеи" (учет операций продажи бакалейных товаров торговой компании) имеет один первичный ключ "Номер счета", четыре внешних ключа (по числу измерений ) и два параметра: "Количество" (проданного бакалейного товара) и "Стоимость товара".

Схема "звезда"

Рис. 9.7. Схема "звезда"

Измерение " Время " является одним из критических элементов модели ХД. Если данные в OLTP-системах запросы фокусируются на текущем моменте времени, то в системах поддержки принятия решений (DSS-системах), для которых проектируются и создаются ХД, запросы фокусируются на задачах анализа данных, а именно — как данные изменялись в различные периоды времени. Например, каков был объем продаж торговой компании за последний квартал, месяц или каковы тенденции в покупках товаров в течение последнего квартала.

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

Измерение "Товары" позволяет анализировать типовые схемы закупок товаров и отвечать на вопрос, какие товары, как правило, покупаются одновременно покупателями.

Измерение "Покупатели" позволяет анализировать покупки с учетом их частоты, географического положения и количества.

Таблицы измерений являются своеобразным путеводителем при выборке строк из таблицы фактов.

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

Схема "снежинка" ( рис. 9.8) добавляет иерархию в таблицы измерений. Например, измерение "Регион" группирует магазины по географическим регионам, измерение "Категория товара" группирует товары по категориям, измерение "Категория покупателей" группирует покупателей по категориям, а измерение "Период продаж" группирует продажи по периодам времени.

Схема "снежинка"

увеличить изображение
Рис. 9.8. Схема "снежинка"

Таким образом, использование иерархий превращает схему "звезда" в схему "снежинка". Вы можете расширять схемы "снежинка" за счет добавления в нее новых иерархий, как показано на рис. 9.9.

Добавление в схему "снежинка" новых иерархий

увеличить изображение
Рис. 9.9. Добавление в схему "снежинка" новых иерархий

На рис. 9.10 приведен пример схемы с несколькими таблицами фактов – схемы "созвездие фактов " (Fact Constellation Schema). На схеме имеет три таблицы фактов: "Продажи бакалеи", "Учет_товара" и "Покупка_товара", у которых имеются как общие измерения ("Товары"), так и эксклюзивные (например, измерение "Склады" для таблицы фактов "Учет_товара").

Схема "созвездие фактов"

увеличить изображение
Рис. 9.10. Схема "созвездие фактов"

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

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

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

Спасибо!

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

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

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

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

 

Денис Сафронов
Денис Сафронов
Россия
жылдыз насырбекова
жылдыз насырбекова
Киргизия, бишкек