目的
通过创建属性关系来优化维度设计,并理清维度之间的关系。
内容
上一节中我们创建了自定义层次结构,但是系统给我们提出了设计警告,虽然对维度进行了修改,但波浪线依然出现在“属性”窗格的Product维度下面,而且在这个两个定义层次结构的名称下也出现了波浪线。下面我们练习查看这些警告,基于其中的某些警告并修改设计,并忽略其余警告。BIDS甚至允许移除那些希望忽略的设计警告,这样他们就永远不会出现在设计器中。
1、查看Product维度设计警告
在“属性”窗格中指向Product维度,将出现工具提示“避免将属性的可见属性层次结构用作用户自定义的层次结构中的级别”。
这个提示说的有点含糊,其实意思就是:由于我们创建饿了自定义的层次结构,Product维度中的一些属性层次结构和自定义层次结构中同时出现。这样造成的结果就是,当我们在浏览多维数据集时,可能会使一些用户造成语义模糊,他们可能不知道如何使用该层次结构,层次结构间的交互使人困惑。例如,Category属性同时出现在Category属性层次结构和Product By Category自定义层次结构中。如果用户在行和列同时以Category属性结束,除了网格对角线(这些地方行和列相同)以外,所有的数字数值都是空的。
提示:我们可以通过隐藏属性层次结构,这样他就不会在浏览器中显示,但是要知道属性层次的结构是依然存在的,这很重要,就是我们在书写Mdx查询时不应该忽略掉它,而且能从该层次结构中取得成员
2、隐藏属性层次结构
<1>在“属性”窗格中,右击Category并选择“属性”
<2>在“属性”窗口中,滚动到“高级”组并选择AttributeHierarchyVisible属性,将其属性设置为False
<3>按上面的步骤,对Subcaetgory和Product属性做相同改动。
这样就可以避免上述警告所带来多维问题。
2、创建属性关系
这里我们解决第二个设计警告,我们将鼠标执行任何一个自定义的层次结构,同样也会出现同样的警告:此层次结构的一个或多个级别之间不存在属性关系,这可能导致性能下降。
我们通过修改Product维度之间的属性来解决此警告。这些聚合值可以使分析服务更快的查询性能。
<1>选择“属性关系”选项卡。从下图可以看出属性关系图中已经存在一些属性关系,每个属性都必须和关键属性(Product ID)相联系的,维度向导可以根据维度表中外键关系在Product和Category之间创建间接联系。
该图显示了分析服务通过聚合所有与某个Category相关的Subcategory值来得到该Category的值。但分析服务不能从Product中得到Subcategory的值,因为Product和Subcatgory没有关系,我们现在来创建他们的关系。
<2>在“维度”菜单中选择“新建属性关系”
<3>在“源属性”选项区的“名称”下拉列表中选择Product,在“相关属性”选项去的“名称”下拉列表中选择Subcategory
<4>单击“确定”。这时候关系图窗格显示了Category、subcategory、product和Product ID的自然层次结构
<5>选择“维度结构”选项卡。这时候Product by Category层次结构不再显示设计警告了。其他一些设计警告依然存在,我们在后文中,将解除设计警告联系中,我们将消除“避免将属性的可见属性层次结构用作用户定义的层次结构中的级别”警告。