2010-08-24 42 views
6

我需要一个心理过程来设计一个OLAP数据库...你如何设计OLAP数据库?

本质上是标准的关系这将会是(松松):

Identify Entities 
Identify Relationships 
Identify Properties of Entities 

对于每个属性:

Ensure property can be related to only one entity 
Ensure property is directly related to entity 

对于OLAP数据库,我了解术语,动机和结构;但是,我不知道如何将我的关系模型分解为OLAP模型。

回答

8

确定尺寸(或按) 这些是您可能想要分析/分组您的报告的任何内容。源数据库中的每个表都是潜在的维度。尺寸应尽可能分层,例如您的日期维度应该有年,月,日的层次结构,类似的位置应该有例如国家,地区,城市层次结构。这将允许您的OLAP工具更高效地计算聚合。

确定度量值 这些是您的客户希望看到的KPI或实际数值信息,它们通常能够被聚合,因此源数据库中的任何非标志非关键数字字段都是潜在的度量标准。

排列在星型模式中,中心'事实'表中的度量值以及与适用维度表的FK关系。度量值应存储在最低维度层次结构中。

确定事实表中的'粮食',这基本上是'细节水平'举行。它通常由报告要求,报告解决方案的来源和性能要求中提供的数据粒度决定。您可以随时识别谷物,或者一旦确定了所有重要数据,就可以将其作为最后一步。我倾向于采取最后一步确保粮食在我的事实表中保持一致。

最后一步是确定缓慢变化的尺寸和这些要求。例如,如果客户维度包含其地址的一个元素并且它们移动,那么要如何处理。

+0

什么是“By's”? – 2010-12-01 15:58:12

+3

任何你想分组或分析你的数据'BY',俚语真的... – stevenrcfox 2010-12-02 13:36:43

+0

非数字字段也可以聚合计数功能,对吧? – dpp 2014-08-13 06:48:54

3

确定维度和度量的一个重要点是您为模型选择的最终基数。我们假设您的关系数据库数据输入是整天。 也许您不需要按小时即可按天观察或汇总测量结果。您可以选择一周的粒度或每月等。

+1

谢谢,这是一个有用的观点,我没有包括在我的答案中。 – stevenrcfox 2013-04-08 09:53:46