1.2 维度关系设计
再次生成关系架构,将得到一个星型的数据源关系视图如图1-7所示。
图1-7 生成的星型数据源关系
销售历史事实表与客户维度表、产品维度表、销售区域维度表、时间维度表等构成了外键-主键的关系。但产品类别维度表却未能与事实表建立联系,此时就必须通过开发环境中的维度用法(如图4-8)来指定维度关系。下面就简单介绍常见的维度关系以及修改产品类别维度表与销售历史事实表之间的关系。
图1-8 维度关系
通常,维度之间关系有:
1、常规维度关系:当维度的键列与事实数据表直接联接时,多维数据集维度与度量值组之间便会存在常规维度关系。这种直接关系基于基础关系数据库中的主键-外键关系,但是也可以基于数据源视图中定义的逻辑关系。常规维度关系表示传统星型架构设计中维度表与事实数据表之间的关系。当定义多维数据集维度或度量值组时,Analysis Services 将尝试检测是否存在常规关系并将维度用法设置为Regular。如图4-9定义了时间维度表和销售事实表之间的常规关系。但要注意的是,当定义多维数据集维度与度量值组的关系时,也会指定该关系的粒度属性。粒度属性定义了该维度在多维数据集中的最低可用详细级别,此粒度属性通常是指维度的键属性。但在某些情况下,可能希望将特定度量值组中特定多维数据集维度的粒度设置为其他粒度。例如,可能希望针对某度量值组将“时间”维度的粒度属性设置为“月”属性而不是“日”属性。当您将粒度属性指定为键属性以外的属性时,必须确保维度中的所有其他属性都能通过属性关系直接或间接地链接到该属性。如果不能,Analysis Services 将无法正确地聚合属性。
图1-9 时间维度表和销售事实表之间的常规关系
2、引用维度关系
当多维数据集维度的键列通过其他维度表中的键与事实数据表间接联接时,该维度与度量值组之间便会存在引用维度关系,如下图1-10所示。
逻辑关系图,引用维度关系
图1-10 引用维度关系
引用维度关系表示雪花型架构设计中的维度表与事实数据表之间的关系。当雪花型架构中的各维度表进行连接时,可以使用多个表中的列定义一个维度,也可以根据单独的维度表定义单独的维度,然后使用引用维度关系设置定义这些维度之间的链接。下图1-11显示了雪花型架构中销售历史事实表,以及两个名称分别为产品维度表 和产品类别维度表。
图1-11 修改后的引用维度关系雪花型架构
这两个与销售历史事实表度量值组相关的维度:一个维度基于产品维度表,另一个维度产品类别维度表。然后通过使用产品维度表的引用维度关系将产品类别维度表与销售历史事实表度量值组进行关联。在这种情况下,当按产品类别维度表创建销售历史事实表度量值组中事实数据的维度时,也就是按产品和产品类别创建这些数据的维度。其中产品维度表示中间维度,中对应于引用维度产品类别维度表属性的(外键)属性。
修改完维度关系后,再次处理多维数据集,此时数据源视图变为图1-12所示的结果。
图1-12 数据源视图
1.3 维度的层次结构设计
多级别层次结构是在 Microsoft SQL Server 2005 Analysis Services 中用来组织维度成员并在多维数据集中提供导航路径的属性的层次结构。例如,下表1-1定义了时间维度的维度主表。维度主表支持三个属性,即年份、季度和月份。
表1-1 时间维度主表
|
年 |
半年 |
季度 |
月 |
月在年中的位置 |
|
2008 |
1 |
第一季度 |
一月 |
1 |
|
2008 |
1 |
第一季度 |
二月 |
2 |
|
2008 |
1 |
第一季度 |
三月 |
3 |
|
2008 |
1 |
第二季度 |
四月 |
4 |
|
2008 |
1 |
第二季度 |
五月 |
5 |
|
2008 |
1 |
第二季度 |
六月 |
6 |
|
2008 |
2 |
第三季度 |
七月 |
7 |
|
2008 |
2 |
第三季度 |
八月 |
8 |
|
2008 |
2 |
第三季度 |
九月 |
9 |
|
2008 |
2 |
第四季度 |
十月 |
10 |
|
2008 |
2 |
第四季度 |
十一月 |
11 |
|
2008 |
2 |
第四季度 |
十二月 |
12 |
年份、季度和月份属性用于构造时间维度中的层次结构(即日历)。“日历”维度(常规维度)的级别和成员之间的关系如下面的关系图1-13所示:
至此,完成了销售数据仓库的模型设计,接下来就可以向其中填入数据来进行最终的分析了。
浙公网安备 33010602011771号