Пространственное моделирование предоставляет набор методов и концепций, которые используются в дизайне DW. По словам консультанта DW Ральфа Кимбалла, многомерное моделирование — это метод проектирования баз данных, предназначенный для поддержки запросов конечных пользователей в хранилище данных. Он ориентирован на понятность и производительность. По его словам, хотя ER, ориентированный на транзакции, очень полезен для захвата транзакций, его следует избегать для доставки конечным пользователям.
Моделирование измерений всегда использует факты и таблицы измерений. Факты — это числовые значения, которые можно агрегировать и анализировать по значениям фактов. Измерения определяют иерархии и описание значений фактов.
Таблица размеров
Таблица измерений хранит атрибуты, которые описывают объекты в таблице фактов. Таблица измерений имеет первичный ключ, который однозначно идентифицирует каждую строку измерения. Этот ключ используется для связи таблицы измерений с таблицей фактов.
Таблицы измерений, как правило, не нормализуются, поскольку они не создаются для выполнения транзакций, а используются только для подробного анализа данных.
пример
В следующей таблице измерений измерение клиента обычно включает в себя имя клиента, адрес, идентификатор клиента, пол, группу доходов, уровни образования и т. Д.
Пользовательский ИД | название | Пол | доход | образование | религия |
---|---|---|---|---|---|
1 | Брайан Эдж | M | 2 | 3 | 4 |
2 | Фред Смит | M | 3 | 5 | 1 |
3 | Салли Джонс | F | 1 | 7 | 3 |
Таблицы фактов
Таблица фактов содержит числовые значения, которые называются измерениями. Таблица фактов имеет два типа столбцов — факты и внешний ключ для таблиц измерений.
Меры в таблице фактов бывают трех типов —
-
Добавка — Меры, которые могут быть добавлены в любом измерении.
-
Non-Additive — Меры, которые нельзя добавить ни к одному измерению.
-
Полуаддитивный — меры, которые могут быть добавлены к некоторым измерениям.
Добавка — Меры, которые могут быть добавлены в любом измерении.
Non-Additive — Меры, которые нельзя добавить ни к одному измерению.
Полуаддитивный — меры, которые могут быть добавлены к некоторым измерениям.
пример
ID времени | Код товара | Пользовательский ИД | Единица Продана |
---|---|---|---|
4 | 17 | 2 | 1 |
8 | 21 | 3 | 2 |
8 | 4 | 1 | 1 |
В этих таблицах фактов содержатся внешние ключи для измерения времени, измерения продукта, измерения клиента и проданной единицы измерения.
Предположим, что компания продает продукты клиентам. Каждая продажа — это факт, который происходит внутри компании, и таблица фактов используется для записи этих фактов.
Общими фактами являются — количество проданных единиц, маржа, выручка от продаж и т. Д. В таблице измерений перечислены факторы, такие как клиент, время, продукт и т. Д., По которым мы хотим проанализировать данные.
Теперь, если мы рассмотрим вышеупомянутую таблицу фактов и измерение Customer, тогда также будет измерение Product и time. Учитывая эту таблицу фактов и эти три таблицы измерений, мы можем задать такие вопросы, как: Сколько часов было продано покупателям-мужчинам в 2010 году?
Разница между измерением и таблицей фактов
Функциональное различие между таблицами измерений и таблицами фактов заключается в том, что таблицы фактов содержат данные, которые мы хотим проанализировать, а таблицы измерений содержат информацию, необходимую для того, чтобы мы могли их запрашивать.
Совокупная таблица
Агрегированная таблица содержит агрегированные данные, которые можно рассчитать с использованием различных агрегатных функций.
Агрегатная функция — это функция, в которой значения нескольких строк группируются как входные данные по определенным критериям для формирования единого значения более значимого значения или измерения.
Общие агрегатные функции включают в себя —
- Средний()
- Count ()
- Максимальное ()
- Медиана ()
- Минимальная ()
- Режим()
- Sum ()
Эти сводные таблицы используются для оптимизации производительности для выполнения сложных запросов в хранилище данных.
пример
Вы сохраняете таблицы с агрегированными данными, такими как годовой (1 строка), квартальный (4 строки), ежемесячный (12 строк), и теперь вам нужно сравнить данные, например, будет обрабатываться только 1 строка в год. Однако в неагрегированной таблице все строки будут обработаны.
MIN | Возвращает наименьшее значение в данном столбце |
МАКСИМУМ | Возвращает наибольшее значение в данном столбце |
SUM | Возвращает сумму числовых значений в данном столбце |
AVG | Возвращает среднее значение данного столбца |
COUNT | Возвращает общее количество значений в данном столбце |
COUNT (*) | Возвращает количество строк в таблице |
Выберите Avg (зарплата) от сотрудника, где title = ‘разработчик’. Это утверждение будет возвращать среднюю зарплату для всех сотрудников, чье звание равно «Разработчик».
Агрегации могут применяться на уровне базы данных. Вы можете создавать агрегаты и сохранять их в таблицах агрегатов в базе данных или применять агрегаты на лету на уровне отчета.
Примечание. Если вы сохраняете агрегаты на уровне базы данных, это экономит время и обеспечивает оптимизацию производительности.