你如何设计OLAP数据库?

ste*_*fox 6 olap

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

基本上对于标准关系,它(松散地):

Identify Entities
Identify Relationships
Identify Properties of Entities
Run Code Online (Sandbox Code Playgroud)

对于每个属性:

Ensure property can be related to only one entity
Ensure property is directly related to entity
Run Code Online (Sandbox Code Playgroud)

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

ste*_*fox 8

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

识别度量这些是客户希望看到的KPI或实际数字信息,这些信息通常能够被聚合,因此源数据库中的任何非标志非键数字字段都是潜在的度量.

安排在星型模式中,其中Measures在中心'Fact'表中,FK关系到适用的Dimension表.度量应存储在最低维层次结构级别.

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

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