2015-03-04 12 views
1

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

У меня нормализованный дизайн базы данных на месте, и теперь я пытаюсь создать хранилище данных (OLAP).

я придумал следующее:

Star Schema

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

  • Посмотрите на инвестиции по типу проекта
  • Инвестиции по периодам времени, т.е. сумма инвестиций в неделю и т. Д.

Сделав некоторое чтение (The Data Warehouse Toolkit: Ральф Кимбалл) Я чувствую, что моя схема не совсем верно. В книге говорится объявить зерно (в моем случае каждый Investment), а затем добавить факты в контексте объявленного зерна.

Некоторые факты, которые я включил, похоже, не соответствуют зерну: TotalNumberOfInvestors, TotalAmountInvestedInProject, PercentOfProjectTarget.

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

Соответствуют ли эти факты? Наконец, является ли факт, неявно сделанный со ссылкой на измерение Инвестора, TotalNumberOfInvestors?

ответ

3

Я думаю, что «один ряд для каждой инвестиции» является хорошим зерном кандидата.

Проблема с дизайном таблицы фактов заключается в том, что вы включаете столбцы, которые должны фактически быть вычислениями в вашем приложении данных (olap cube).

TotalNumberOfInvestors можно рассчитать, сославшись на большое количество инвесторов.

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

PercentOfProjectTarget рассчитывается, принимая сумму FactInvestment.InvestmentAmount, деленная на сумму DimProject.TargetAmount. Ограничение для выполнения этой расчетной работы состоит в том, что по крайней мере член DimProject в вашем отчете.

Надеюсь, что это поможет,

Mark.

0

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

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