理解BW数据模型 - 主数据模型

原址: http://space.itpub.net/119153/viewspace-660614


SAP BW把主数据分为了三类:属性,文本,层级。每一类都存放在了一个与IO关联的数据库表中。下图是一个简单主数据模型的数据库表结构。

SAP BW 数据模型,特别是主数据模型大量使用了代键(SORROGATE KEY)的概念。一般代键都是由系统自动产生的,而且是唯一的一个数字的组合。作为数据上传或者维护过程的一部分,系统会自动为每一个新的主数据产生一个代键,并且在一个称作SID表(图中,#1)的数据库表维护代键和主数据之间的关系。
 
属性值存放在属性表(图中,#2)中。属性表一共有两张:存放时间相关属性的Q表和存放时间无关属性的P表。与P表相比,Q表多出来两个字段DATAFROM 和DATETO,它们用来确定任意属性组合的有效时间段。另外属性表中还维护了的数据版本信息(活动数据和修改数据)。除了这两张属性表外,系统还将它们包含的所有字段组合成一个数据库试图,也就是所谓的M表。
 
如果一个属性被指定为导航属性,那么跟它有关的数据存放在导航属性SID表中。与属性表不同,导航属性SID表中存放的不是属性的实际值,而是属性的代键。这样可以提高查询访问导航属性的速度。
 
文本表(图中,#3)用来存放文本主数据,包括名称和文本描述。将文本属性和一般属性分开的方式一方面可以提高数据的访问性能,另一方面可以支持多语言。而且文本表也支持时间相关的文本属性。时间相关的文本表多出来两个字段用来确定文本的有效期DateFrom和DateTo。
 
层级(Hierarchy)表(图中,#4)用来存放主数据的层级结构数据。这种建模的层级一般称为外部层级。而通过属性定义的层级结构称为内部层级。层级表包括四张数据库表,分别称为H表,K表,I表和J表。
 
上述所有的这些数据表都是在激活IO的时候,系统按照它的命名规则自动生成的:
 
/BI<C 或者数字>/<表代码><信息对象>
<C 或者数字>:        C = 客户定义IO
                                 Digit = SAP定义IO
<表代码>:               S = SID 表
                                 T = 文本表
                                 P = 时间无关属性表
                                 Q = 时间相关属性表
                                 M = 属性试图,包括P表和Q表的内容
                                 X = 时间无关导航属性SID表
                                 Y = 时间相关导航属性SID表
                                 H = 层级表
                                 K = 层级SID表
                                 I = 层级SID结构表
                                 J = 层级内表
<信息对象>:          信息对象的名字 (如果以数字开头,去掉数字)
 






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
传统的Cube:星型结构,由事实表和维度表组成,事实表存放的是业务数据以及它本身独有的信息和指向周围维表的外键,事实表的键由维度键值组成;维表中存放的是特性值,由一个维度键值和多个维度属性组成. 改进的Cube:星型结构,由事实表、SID表(存放的是由系统自动为每个特性生成的SID码(4位整型值)和维度键值(4位整型值),其中SID码是数据表中的键)和数据表组成;SID表中存放的不再是特性值,它存放的是SID码和维度键值(由系统自动生成),特性值存放在数据表中.此时的维表包含SID表和数据表,其中SID表中只存放了该维表的维度键值和它包含的特性的SID. 改进的Cube相比传统的Cube的优点: 1、数据跨信息立方体的使用(共享维度) 2、可以对关键值进行聚集 3、查询性能更高 DSO:简单的二维表结构,有关键字字段和数据字段组成,可分为3种类型: :标准数据存储对象 由有效数据(已激活数据)、更改记录和新数据(待激活数据)3张二维数据表组成.数据通过DTP进入到DSO中,新数据在激活之前存放在新数据表中,此时报表层面是看不见数据的,只有在激活后才能看见。更改记录表记录了数据激活前后的变化,为从DSO向其他信息提供者更新数据提供了增量机制. :写优化的数据存储对象(通过DTP抽取数据)(1张表) :直接更新的数据存储对象(不是通过DTP抽取数据,而是通过API函数直接写入DSO中)(1张表) ----------------- :同一键的数据在DSO中是独立存放的,但在Cube中是要计算的(其实这些是在DSO中可设置的). :SID的数据,可能包含属性、文本和层级结构三个部分,不同的部分由不同的数据表存放.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值