@1312429132

Как правильно составить таблицу фактов и таблицы измерений?

Таблицы исходной БД:
n. Название_таблицы: атрибуты.
1. Должности: ид_сотрудника (FK), должность, занял (дата), покинул (дата);
2. Сотрудники: ид_сотрудника (PK), дата_рождения, имя, фамилия, пол, нанят (дата);
3. Отделы: ид_отдела (PK), название_отдела;
4. Отдел-Сотрудник: ид_сотрудника (FK), ид_отдела (FK), от_дата, до (дата);
5. Выплаты: ид_сотрудника (PK), сумма (год), от_дата, до_дата;

Далее только мои предположения, как это сделать.

Таблица фактов: ид_сотрудника, ид_отдела, ид_должности, дата_выплаты (месяц), сумма_выплаты
Таблицы измерений:
Измерение Должность: ид_должности (PK), название должности...
Измерение Отдел: ид_отдела (PK), название отдела...
Измерение Сотрудник: ?

В измерениях Должность, Отдел атрибуты от_дата (дата вступления) и до_дата (дата ухода) будет излишними (т.к. в таблице фактов есть дата выплаты)?
Сотрудник является измерением? Чем в таком случае будут являться атрибуты пол, дата_рождения, нанят_дата? Отдельными иерархиями?
  • Вопрос задан
  • 1775 просмотров
Решения вопроса 1
@x_shader
Oracle & Coffee
-- Уровень источников --
Таблицы в том виде, в котором уни уже есть в БД источниках.

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

-- Уровень OLAP кубов (денормализованная таблица, храним только ид) --
Здесь вы, на основании своего детального уровня (фактов и измерениий), собираете куб.
(ДатаГод, ДатаМесяц, СуммаВыплаты, Ид_сотрудника, Ид_отдела, Ид_должности, ... )

Это пример варианта. Могут быть варианты без детального уровня. с заливкой из источников прямо в куб. Да и еще много какие варианты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы