Опубликован: 20.12.2010 | Доступ: свободный | Студентов: 2413 / 166 | Оценка: 4.27 / 3.91 | Длительность: 39:39:00
ISBN: 978-5-9963-0353-3
Лекция 8:

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

Моделирование таблиц измерений

Медленно меняющиеся измерения

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

Медленно меняющимися измерениями (Slowly Changing Dimensions) называются таблицы измерений, в которых некоторые атрибуты могут изменить свои значения по истечении некоторого периода времени, причем частота таких изменений является небольшой.

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

  • Тип 1. Изменить значение атрибута таблицы измерений на новое значение. При этом будет потеряна хронология.
  • Тип 2. Создать новую строку в таблице измерений с новым значением суррогатного ключа.
  • Тип 3. Создать дополнительный атрибут таблицы измерений с новым значением.

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

Пример 9.3. Медленно меняющиеся измерения. Тип 1


Во втором случае создается новая запись в таблице измерения с новым суррогатным ключом (пример 9.4). С точки зрения бизнес-операций организации у женщины, изменившей семейное положение, меняется табельный номер. При этом строки таблицы фактов "до замужества" будут относиться к строке таблицы измерения с табельным номером 332201, а "после замужества" – к строке таблицы измерения с табельным номером 332209.

Пример 9.4. Медленно меняющиеся измерения. Тип 2

Табельный номер Фамилия Имя Семейное положение
332201 Иванова Анна Не замужем
332209 Иванова Анна Замужем

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

Пример 9.5. Медленно меняющиеся измерения. Тип 3

Табельный номер Фамилия Имя Предыдущее семейное положение Текущее семейное положение Дата изменений
332201 Иванова Анна Не замужем Замужем 02.05.2009

Обратимся к схеме на рис. 9.8. Рассмотрим измерение "Покупатели". Покупатель может изменить район проживания, и следовательно, изменятся атрибуты "Город", "Адрес" и "Почтовый индекс". Допустим, что организация анализирует факты продаж по регионам. Тогда измерение "Покупатели" может быть отнесено к типу 3. В этом случае необходимо изменить модель измерения "Покупатели", как показано на рис. 9.14.

Пример медленно меняющегося измерения типа 3

Рис. 9.14. Пример медленно меняющегося измерения типа 3

Измерение "Товары" на схеме рис. 9.8 может быть отнесено к медленно меняющимся измерениям типа 2. Организация может перевести товар в другую категорию (при создании, например, новой категории товаров) и при этом хранить историю изменений, т.е. требуется изменить значение атрибута описание товара. В этом случае, как описано выше, создается новая запись. Обратим внимание на то, что если при этом номер товара не меняется, то нужно ввести в измерение суррогатный ключ, как показано на рис. 9.15.

Пример медленно меняющегося измерения типа 2

Рис. 9.15. Пример медленно меняющегося измерения типа 2

Измерение "Категория товара" на схеме рис. 9.8 может быть отнесено к медленно меняющимся измерениям типа 1. Маркетологи торговой организации могут уточнить описание категории товара и новое описание должно фигурировать во всех отчетах.

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

При выборе типа медленно меняющихся измерений проектировщику ХД следует придерживаться следующей схемы принятия решений:

ЕСЛИ требуется сохранять историю измерения, ТО следует выбрать
тип 2.
В ПРОТИВНОМ СЛУЧАЕ
ЕСЛИ необходимо сравнивать текущее значение атрибута с перво-
начальным или предыдущим, ТО следует выбрать тип 3
В ПРОТИВНОМ СЛУЧАЕ
следует выбрать тип 1.

Суррогатные ключи предпочтительнее естественных ключей (бизнес-ключей), особенно в случае использования типа 2.

Быстро меняющиеся измерения

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

Быстро меняющимися измерениями (Rapidly Changing Dimensions) называются таблицы измерений, в которых некоторые атрибуты могут часто менять свои значения в короткие периоды времени.

Модели для управления такими измерениями зависят от кардинальности таблиц измерений. Если кардинальность таблиц измерений является небольшой (до 10000 записей), то может быть использован такой же подход, как в случае медленно меняющихся измерений. В случае очень больших таблиц измерений (до миллиона записей) следует избегать дублирования записей и не создавать новые дополнительные записи. Поскольку необходимо помнить о производительности выполнения запросов с такими измерениями, подходы к моделированию таких измерений являются важными.

В качестве примера быстро меняющихся измерений рассмотрим измерение "Покупатели" ( рис. 9.16). Для больших торговых компаний это измерение содержит значительное число записей и включает в себя большое количество атрибутов, в том числе демографических. Демографические атрибуты часто используются в исследовании предпочтений различных социальных групп, причем покупатели часто мигрируют между социальными группами.

Пример быстро меняющегося измерения

Рис. 9.16. Пример быстро меняющегося измерения

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

Суть приема логического разбиения состоит в следующем: создаются две сущности, одна из которых содержит атрибуты, которые меняются медленно, а другая сущность включает в себя атрибуты, которые меняются быстро. Для измерения "Покупатели", рассмотренного на рис. 9.16, это может быть сделано, как показано на рис. 9.17 ниже.

Пример разбиения быстро меняющегося измерения

Рис. 9.17. Пример разбиения быстро меняющегося измерения

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

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

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

Заметим также, что если соединение между измерениями "Покупатели" и "Демография" будет иметь невысокую кардинальность, то придется либо разбивать таблицу фактов, чтобы обеспечить более эффективное соединение, либо вводить в измерение "Демография" внешний ключ, указывающий на измерение "Покупатели", как сделано в нашем примере выше.

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

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

Спасибо!

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

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

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

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