星形模式是在多维数据的关系建模中相当重要的类型,能进行高效的数据查询处理,星形模式在BW建模中也是非常常见的,是由一个或多个事实表中引用任何数量的维表。我们一起来看看它在BW建模中是如何应用的!
从数据模型上看,BI中的数据分析一般不是关系型,而是多维的,数据的多维表示往往会涉及到CUBE(立方体/多维数据集),其中,多维数据的关系建模中有个比较重要的类型——星型模式。接触BW有一段时间,这里按自己的理解,通过Schema的角度,整理下BW建模中的星型结构(Star Schema)。
1、信息对象Schema
Schema是最小建模单位信息对象,在了解BW星形模型前,我们先来看一下Schema。
Schema是用于描述和规范XML文档的逻辑结构的一种语言,它最大的作用就是验证XML文件逻辑结构的正确性。可以理解成与DTD(文档类型定义)功能差不多,但是Schema在当前的Web开发环境下优越很多。
1)以BW HR 0PERS_AREA(人事范围)信息对象为例,SID表为/BI0/SPERS_AREA,表中每个人事范围ID有一个SID对照。每个信息对象至少有张SID表(Surrogate ID: SID)。
2)创建一个信息对象ZPERS_GP(人事范围区域),作为0PERS_AREA(人事范围)的显示属性,0PERS_AREA新增主数据表(Master data tab)。特性0PERS_AREA与其显示属性(ZPERS_GP)通过人事范围ID(主数据ID)关联。
schema用来指定一个目录中所包含的对象(objects)的类型(object Class),以及每一个类型(object Class)中必须提供的属性(Atrribute)和可选的属性。可将schema理解为面向对象程序设计中的类,通过类定义一个具体的对象。LDIF中的数据条目可理解为是一个具体的对象,是通过schema来规划创建的。
3)将0PERS_AREA(人事范围)的显示属性ZPERS_GP更改为导航属性(0PERS_AREA__ZPERS_GP),新增SID属性表(Attribute SID Table),特性0PERS_AREA与其导航属性(ZPERS_GP)通过SID关联。
4)特性0PERS_AREA与其文本表通过人事范围ID(主数据ID)关联。
5)还有特性与其层次结构的关联,在本教程中没有很大
2、信息立方体Schema-星型结构(Star Schema)
以BW HR CUBE 0PA_C01(Headcount and Personnel Actions:人数和人员活动)为例。
星型模式:一种使用关系数据库实现多维分析空间的模式,称为星型模式。星型模式的基本形式必须实现多维空间(常常被称为方块),以使用关系数据库的基本功能。
1)以下是CUBE 0PA_C01的Schema,由1张事实表和10张维度表组成。每个维度表都有一个唯一DIMID(Dimension Table Key)作为主键,事实表的主键由各个维度主键组成。事实表通过DIMID分别与维度表关联。
维度表有两部分组成,一是维度属性;二是对维度属性做描述性和补充性说明的字段,叫描述性属性或非维度性属性。
2)Personnel Area维度有2个特性:0PERS_AREA(人事范围)和0PERS_SAREA(人事子范围),上述维度表的结构(/BI0/D0PA_C013)为DIMID(主键),SID_0PERS_AREA,SID_0PERS_SAREA。维度表中的特性,例如:维度表中0PERS_AREA(人事范围)特性,通过SID与其SID属性表进行导航属性的关联,通过SID与其SID表关联,再由SID表与其主数据表进行显示属性/文本的关联。
例如:
而不管什么原因,当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。
根据我们的项目经验,一般建议使用星型架构。因为我们在实际项目中,往往最关注的是查询性能问题,至于磁盘空间一般都不是问题。当然,在维度表数据量极大,需要节省存储空间的情况下,或者是业务逻辑比较复杂、必须要体现清晰的层次概念情况下,可以使用雪花型维度。
¥86.00
¥398.00
¥699.00
¥129.00
¥188.00