BW建模中的星型结构解析教程

    作者:课课家教育更新于: 2016-05-10 14:40:19

      星形模式是在多维数据的关系建模中相当重要的类型,能进行高效的数据查询处理,星形模式在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)。

    信息对象Schema

      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来规划创建的。

    schema

      3)将0PERS_AREA(人事范围)的显示属性ZPERS_GP更改为导航属性(0PERS_AREA__ZPERS_GP),新增SID属性表(Attribute SID Table),特性0PERS_AREA与其导航属性(ZPERS_GP)通过SID关联。

    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表与其主数据表进行显示属性/文本的关联。

      例如:

    Personnel Area维度

      而不管什么原因,当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。

      根据我们的项目经验,一般建议使用星型架构。因为我们在实际项目中,往往最关注的是查询性能问题,至于磁盘空间一般都不是问题。当然,在维度表数据量极大,需要节省存储空间的情况下,或者是业务逻辑比较复杂、必须要体现清晰的层次概念情况下,可以使用雪花型维度。

课课家教育

未登录