每个星型模式中都包含一个与日期信息相关的维度。
在一个典型的设计良好的星形模式中,任何维度表中的记录数都小于事实表中的纪录数。
创建代理主码 —— 可以处理所谓的缓慢变化的维度。
事实表 = 将表连接到维度表的外码 + 分析主题相关的度量 + (其他非度量的属性)
其他非度量的属性,有2种典型的:事物标识码和事物时间。
· 事物标识码举例:哪些产品在相同的交易事务中被出售
· 这种事物标识码的分析一般称为“购物篮数据分析”,也叫做“关联规则挖掘”/“关联性分组”
· 让事实表包含事物标识码的过程,叫做“退化维度”
有多个事实表的维度模型,又称为星座/星系。
事实表分为2中,细节事实表and聚集事实表。
事实表的粒度刻画的是事实表中每一行描述的信息。因此,细节事实表具有较好的粒度。但粗糙粒度聚集的事实表查询起来更快。我们可以让两种表并存于同一星座模型中。
细节事实表又可以分为条目级细节事实表和事务级细节事实表。
· 条目级细节事实表:每行表示一个事务中的一个条目行
· 事务级细节事实表:每行表示一个事务
缓慢变化维度 —— 包含可变属性的维度。处理方法:Type1,Type2,Type3.
· Type1: 最简单的,常用于维度中由于错误而造成的属性值变化
简单改变 - 用新值取代旧值(不保存历史信息)
· Type2: 常用于需要保留历史信息的情况
使用新值为代理码创建一个额外的维度记录(产生新的代理码!也就是新的一行!)
Type2是最常用的处理缓慢变化维度的办法,可以直接处理维度属性改变较多的情况
Type2通常与时间戳and行指示符(指示该行是否是current)结合使用
· Type3: 可用于如下情况:
(1)维度中每列可能发生改变的数量确定
(2)只对有限历史进行记录
Type3会为维度中每个发生改变的列创建一个“历史值”列以及一个“当前值列”(via 添加列),Type3也可以和时间戳结合。
n/a 指的是 not applicable。
其他维度建模:雪花模型、立方体。