4.6 指定用户定义层次结构中属性之间的属性关系
您已了解本教程中的内容,现在可以将属性层次结构组织到用户层次结构内的级别中,以便在多维数据集中为用户提供导航路径。用户层次结构可以表示自然层次结构(如市/县、州/省/自治区和国家/地区),或者可以只表示导航路径(如雇员姓名、职务和部门名称)。对于在层次结构中导航的用户而言,这两类用户层次结构是相同的。
使用自然层次结构时,如果您在构成级别的属性之间建立了属性关系,则 Microsoft SQL Server 2005 Analysis Services (SSAS) 可以使用某个属性的聚合来获取相关属性的结果。如果属性之间没有定义的关系,则 Analysis Services 将根据键属性来聚合所有非键属性。此外,您也应该了解,在定义这样一种关系时,可以将关系指定为弹性关系或刚性关系。如果您将关系定义为刚性,则 Analysis Services 会在更新维度时保留聚合。如果定义为刚性的关系在实际过程中发生了更改,那么除非维度得到了完全处理,否则 Analysis Services 将在处理过程中生成错误。指定适当的关系和关系属性,可提高查询和处理性能。有关详细信息,请参阅
在本主题的各个任务中,您将为 Analysis Services Tutorial 项目的自然用户层次结构中的属性定义属性关系。这些层次结构包括“客户”维度中的“客户所在地域”层次结构、“销售区域”维度中的“销售区域”层次结构、Product 维度中的“产品型号系列”层次结构以及“时间”维度中的“会计时间”和“日历时间”层次结构。这些用户层次结构全部都是自然层次结构。
为“客户所在地域”层次结构中的属性定义属性关系
为“客户所在地域”层次结构中的属性定义属性关系
切换到“客户”维度的维度设计器,然后单击“维度结构”选项卡。
在“层次结构和级别”窗格中,请注意“客户所在地域”用户定义层次结构中的级别。此层次结构当前只是用户的向下钻取路径 - 并未在级别或属性之间定义任何关系。
在“属性”窗格中,展开“地域”。
请注意,其中有四个属性关系,用于将 Geography 表的非键属性链接到 Geography 表的键属性。
在“属性”窗格中,展开“全名”。
请注意,“地域”属性与“全名”属性相关。另请注意,“邮政编码”属性是通过“地域”属性间接链接到“全名”属性的,因为“邮政编码”链接到“地域”属性,而“地域”属性链接到“全名”属性。
将“邮政编码”属性关系从“地域”属性拖至“全名”属性的“<新建属性关系>”标记。
“邮政编码”属性现在与“全名”属性直接相关。在“属性”窗口中,请注意,此特性的 RelationshipType 属性设置为 Flexible。这是正确的,因为客户与邮政编码之间的关系可能会随着时间的推移而更改。
在“属性”窗格中,展开“邮政编码”属性。
“市/县”属性当前通过“地域”属性与“邮政编码”属性相关,而不是直接相关。
将“市/县”属性关系从“地域”属性拖到“邮政编码”属性的“<新建属性关系>”标记。
“市/县”属性现在与“邮政编码”属性直接相关。在“属性”窗口中,请注意,此特性的 RelationshipType 属性设置为 Flexible。这是正确的,因为市/县与邮政编码之间的关系可能会随着时间的推移而更改。
在“属性”窗格中,展开“市/县”。
“省/市/自治区”属性当前通过“全名”和“地域”属性与“市/县”属性相关。
将“省/市/自治区名”属性关系从“地域”属性拖至“市/县”属性的“<新建属性关系>”标记,然后将该属性关系的 RelationshipType 属性值更改为 Rigid。
该属性关系的 RelationshipType 属性值应设置为 Rigid,因为市/县与州/省/自治区之间的关系不会随着时间推移而更改。
在“属性”窗格中,展开“省/市/自治区”,将“国家/地区 - 区域”属性关系从“地域”属性拖至“省/市/自治区”属性的“<新建属性关系>”标记,然后将该属性关系的 RelationshipType 属性值更改为 Rigid。
该属性关系的 RelationshipType 属性值应设置为 Rigid,因为州/省/自治区与国家/地区区域之间的关系不会随着时间的推移而更改。
在“属性”窗格中,删除“地域”属性。
该属性已不再需要。
在本任务中,您学习的是将属性关系从“地域”属性移动到其他属性,而不是为每个属性都新建属性关系。定义多余的关系通常没有任何意义,而且会增加不必要的处理时间。
|
为“销售区域”层次结构中的属性定义属性关系
为“销售区域”层次结构中的属性定义属性关系
打开“销售区域”维度的维度设计器,然后单击“维度结构”选项卡。
在“层次结构和级别”窗格中,单击“销售区域”层次结构,然后展开“销售区域所属地区”和“销售区域所属国家”。
请注意,“销售区域组”直接链接到键属性“销售区域所属地区”,而不是链接到“销售区域所属国家”属性。
将“销售区域组”属性关系从“销售区域所属地区”属性拖到“销售区域所属国家”属性的“<新建属性关系>”标记。
“销售区域组”现已链接到“销售区域所属国家”,而“销售区域所属国家”现已链接到“销售区域所属地区”。上述每个关系的 RelationshipType 属性都应设置为 Flexible,因为一个国家/地区内的区域分组可能会随着时间的推移而更改,并且国家/地区的分组可能也会随着时间的推移而更改。
注意 您可以在“属性”窗格或“层次结构和级别”窗格中设置用户定义层次结构的属性关系。
为“产品型号系列”层次结构中的属性定义属性关系
为“产品型号系列”层次结构中的属性定义属性关系
打开 Product 维度的维度设计器,然后单击“维度结构”选项卡。
在“属性”窗格中,展开“型号名称”属性和“产品名称”属性。
将“产品系列”属性关系从“产品名称”属性拖到“型号名称”属性的“<新建属性关系>”标记。
此属性关系的 RelationshipType 属性值应设置为 Flexible,因为产品系列与型号名称之间的关系可能会随着时间的推移而更改。
为“会计时间”层次结构中的属性定义属性关系
为“会计时间”层次结构中的属性定义属性关系
切换到“时间”维度的维度设计器,然后单击“维度结构”选项卡。
在“属性”窗格中,展开下列属性:
- 日期
- 月份名称
- 会计季度
- 会计半期
- 日期
将“会计季度”属性关系从“日期”属性拖到“月份名称”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“会计半期”属性关系从“日期”属性拖到“会计季度”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“会计年度”属性关系从“日期”属性拖到“会计半期”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
为“日历时间”层次结构中的属性定义属性关系
为“日历时间”层次结构中的属性定义属性关系
在“属性”窗格中,展开“月份名称”、“日历季度”和“日历半期”。
将“日历季度”属性关系从“日期”属性拖到“月份名称”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“日历半期”属性关系从“日期”属性拖到“日历季度”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“日历年”属性关系从“日期”属性拖到“日历半期”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
为“地域”层次结构中的属性定义属性关系
为“地域”层次结构中的属性定义属性关系
打开“地域”维度的维度设计器,然后单击“维度结构”选项卡。
在“属性”窗格中,展开下列属性:
- 市/县
- 地域关键字
- 邮政编码
- 省/市/自治区
- 市/县
将“市/县”属性关系从“地域关键字”属性拖到“邮政编码”属性的“<新建属性关系>”标记。
因为市/县内的邮政编码可能会随着时间的推移而更改,所以,该特性的 RelationshipType 相应的属性值为 Flexible。
将“省/市/自治区”属性关系从“地域关键字”属性拖至“市/县”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“国家/地区 - 区域”属性关系从“区域关键字”属性拖到“省/市/自治区”属性的“<新建属性关系>”标记,然后将该特性的 RelationshipType 属性值设置为 Rigid。
将“区域关键字”属性设置为不可见、未优化和未排序。
部署 Analysis Services Tutorial 项目。