Fact表的星型结构

 
传统星型模型是将主数据与维度表放在一起,同一主数据在不同的交易数据维度表中存储多次,达不到复用,不灵活,主数据发生变化后,修改非常不便:
a89c8915-6753-4774-8fe9-36bcedb4a456
 
BW里的星型模型采用的是扩展星型模型:维度表里存储的不是主数据本身,而是主数据的SID,达到了不同交易数据共享同一主数据目的,主数据变化引起的修改也不会太大。下面是成本中心与成本要素主数据的表结构:
d1d9ae9d-3b66-4f89-aa6f-53259c0843ed
BW采用的是扩展星型结构:维度表不直接存储主数据,而是存储主数据的SID,维度表与主数据的SID表通过SID与主数据进行关联:
 
SID技术的好处:
首先第一个优点,因为SID是Int类型的,Int类型的要比Char类型的查询速率快,所以适用SID技术以后报表的查询速率要比以往的快;
其次第二个优点,使用SID技术以后,就把主数据独立出来了,可以使主数据被系统内所有的模型共用,符合软件工程里重复利用的规则。
e03463cd-0a97-4e56-b537-35269b372c76
d312c3de-e469-4a75-91f2-92e82a32c262
 
 
a9902a16-c5c0-4cc4-8a6a-51ee79bb436d
维度表和SID表之间,主数据表和SID表之间,都是虚线关系,虚线关系表示主外键约束关系是由ABAP程序来实现的,由程序来检测数据的一致性,而不是由数据中创建的主外键约束来保证数据的一致性的,原因是Fact表相对于主数据表是从表,在抽数据时,有时我们先抽Fact表,再抽主数据表,如果按照数据库中的主外键约束,则必须先传主数据,再传Fact数据。之所以这种主外键约束不通过数据库来完成,而是通过ABAP程序来保证,使得我们能够加载交易数据,即使数据库中不存在任何主数据也可以
 
不同的Cube 通过SID表共享同一主数据:
d2226f5b-d558-4f79-b16e-63e92a37782f
 
标准表(如OCURRENCY 、0UNIT、0CALDAY等内置标准信息对象),以 “/BI0/+表类型+名称”开头,如果是自定义的信息对象以及Cube维度,都是以“/BIC/+表类型+名称”开头。下面是一个星型结构的示例:
fc632214-f40c-47a6-bea9-bfe2ec42417b
posted @ 2015-02-18 10:36  江正军  阅读(2851)  评论(0编辑  收藏  举报