没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
中国国际展览中心(老馆)2-7 号馆举行
MDX
维度建模术语和概念
多维数据集是基于度量值、维度和维度属性来组织的。下表
说明了使用 表达式语言所需了解的维度建模术语和概念。
数据库维度
(Database dimension)
数据库维度”是与某个键属性相关的维度属性的集合,而该键属性又与度量值维度中的事实数据
相关。
维度属性
(Dimension attribute)
维度属性”被绑定到维度表中的一个或多个列并包含成员。维度属性可以包含客户名称、月份名
称和产品名称。
成员
(Member)
成员”是维度属性(包括度量值维度)的值。层次结构中的成员可以是叶成员、父成员、数据成
员或“全部成员。
度量值
(Measure)
度量值”是来自事实数据表的值,也称为“事实数据”。度量值维度的值有时也通称为“成员”。度
量值通常是数值,但也可以是字符串值。
Measures
维度
(Measures dimension)
度量值维度”是包含多维数据集中所有度量值的维度。度量值维度是一种特殊的维度,其中的成
员通常是根据各个维度属性(存在指定的度量值)的当前成员(通常采用求和或计数方式)进行
聚合。
度量值组
度量值组”是 中一个多维数据集的相关度量值集合(通常是来
自同一事实数据表的度量值)。在 中,一个多维数据集可包
含多个度量值组。
“(
全部
)”
成员
((All) member)
全部成员是属性层次结构或用户定义的层次结构中的所有成员的计算值。
计算成员
(Calculated member)
计算成员”是在查询时定义和计算的维度成员。可以在用户查询或 计算脚本中定义计算成
员,并将其存储在服务器上。一个计算成员对应于定义它们的维度中的多个维度表行。
数据成员
(Data member)
数据成员”是在父子层次结构中与父成员相关联的子成员。数据成员包含其父成员的数据值,而
不是该父成员的子级的聚合值。
父成员
(Parent member)
父成员”是父子层次结构中的成员,包含其子级的聚合值。
叶成员
(leaf member)
叶成员”是层次结构中不包含子级的成员。
子成员
(Child member)
子成员”是层次结构中位于顶层下面的成员。
键属性
(Key attribute)
数据库维度的“键属性”是维度中的所有非键属性(以直接或间接方式)所链接到的属性。键属性
通常也是粒度属性。
粒度属性
(Granularity attribute)
多维数据集维度的属性,它将维度链接到度量值维度内度量值组中的事实数据。如果粒度属性和
键属性为不同的属性,则非键属性必须直接或间接地链接到粒度属性。在多维数据集中,粒度属
性定义维度的粒度。
多维数据集维度
(Cube dimension)
多维数据集维度”是多维数据集中的数据库维度实例。
属性层次结构
(Attribute hierarchy)
属性层次结构”是包含以下级别的属性成员层次结构:
包含所有非重复属性成员的叶级别,叶级别的各个成员也称为“叶成员”。
中间级别(如果属性层次结构为父子层次结构)。
可选的“全部级别 IsAggregatable=True,它包含属性层次结构的叶成员的聚合值。
“全部级别的成员也称为“全部成员。
默认情况下,将为每个维度属性定义属性层次结构
AttributeHierarchyEnabled=True。属性层次结构默认为可见
AttributeHierarchyVisible=True。
均衡层次结构
(Balanced hierarchy)
均衡层次结构”是顶级成员与任何叶成员之间存在相同级别数的层次结构。
不齐整层次结构
(Ragged hierarchy)
请参见“非均衡层次结构 。
非均衡层次结构
(Unbalanced hierarchy)
非均衡层次结构”是顶级与叶级之间存在不同级别数的层次结构。父子层次结构即是不齐整层次
结构的一个例子。非均衡层次结构也称为“不齐整层次结构”。
父子层次结构
(Parent-child hierarchy)
父子层次结构”是一种将维度属性设置为 parent类型的特殊的属性层次结构。父子层次结构
是由子成员和父成员构成的非均衡层次结构。父子层次结构包含以下级别:
包含父成员子级的子级别。父成员的子级包含聚合到父成员的属性成员(包括数据成员)。
包含父成员的中间级别。
可选的“全部级别 IsAggregatable=True,它包含父子层次结构叶成员的聚合值,
“全部级别的成员也称为“全部成员。
每个维度中只能存在一个父子层次结构,并且必须与键属性相关。
用户定义的层次结构
(User-de#ned hierarchy)
用户定义的层次结构”是属性层次结构的均衡层次结构,旨在帮助用户浏览多维数据集数据。用
户定义的层次结构不添加到多维数据集空间。在某些情况下可以隐藏用户定义的层次结构中的级
别并使其以非均衡的形式显示。
属性关系
(Attribute relationship)
属性关系”是属性间的一对多关系,例如州省市自治区和城市维度属性间的关系。
成员属性
(Member property)
成员属性”是特性成员的属性,例如客户的性别或产品的颜色。
单元
(Cell)
多维数据集中的“单元”是度量值维度成员的成员与多维数据集中各个属性层次结构的成员相交处
所在的空间。
度量值维度的成员可以是叶成员(单个事实数据)或聚合成员(例如,特定年份聚合的销售
额)。
维度的成员可以是叶成员、数据成员、父成员或“全部成员。
多维数据集空间
(Cube space)
多维数据集空间”是多维数据集属性层次结构的成员与多维数据集的度量值的交集。
子多维数据集
(Subcube)
子多维数据集”是表示多维数据集的筛选视图的多维数据集子集。可以使用 计算脚本中的
语句或 查询中的嵌套 语句定义子多维数据集。
带有嵌套
select
语句的子多维数据集
(Subcube with Subselect)
用 查询中的嵌套 语句定义的子多维数据集包含符合子多维数据集定义的所有成员,
其结果如下:
包含层次结构的“全部成员与包含层次结构的每个叶成员的结果是相同的。
包含任何成员将包括其祖先和后代。
包含用户定义的层次结构中某级别的每个成员将包含该用户定义的层次结构中的所有成员,
但可排除不与此级别成员共存的其他层次结构的成员(例如不包含客户的城市)。
多维数据集中的每个“全部成员始终存在于从该多维数据集创建的子多维数据集中。
子多维数据集中的聚合值将进行直接求和。
元组
元组”根据包含多维数据集各属性层次结构中某个属性的属性成员的组合对单元进行唯一标识。在
查询或表达式中定义元组时,不必显式包含每个属性层次结构中的属性成员。如果属性层次结构中的成员
未显式包含在查询或表达式中,则该属性层次结构的默认成员为隐式包含在元组中的属性成员。除非在多
维数据集中进行显式定义,否则每个属性层次结构的默认成员均为“全部成员(如果存在“全部成
员)。如果属性层次结构中不存在“全部成员,则默认成员为属性层次结构中的顶级成员。除非显式定
义了默认度量值,否则默认度量值为多维数据集中指定的第一个度量值。有关详细信息,请参阅定义默认
成员和 !。
例如,以下元组通过仅显式定义 维度的一个成员来标识 "#数据库中的一个
单元。
$%&!'
上面的示例唯一标识了由 Measures 维度的 Reseller Sales Amount 成员和多维数据集各属性
层次结构的默认成员组成的单元。默认成员为除 Destination Currency 属性层次结构之外的
各个属性层次结构的“(全部)”成员。Destination Currency 层次结构的默认成员为 US Dollar
成员(此默认成员是在 MDX 脚本中为 Adventure Works 多维数据集定义的)。
重要提示:
元组中属性层次结构的成员还受维度中定义的属性之间的关系影响。有关详细信息,请参阅下面的属性
关系和多维数据集空间。
以下查询将返回前面示例指定元组所引用的单元的值 ()*+,-*$-./$.)。
0012
$%&!'34134
5&3%"#'
注意:
为查询中的集(此处由单个元组构成)指定轴时,必须在为行轴指定集之前先为列轴指定集。列轴也可
称为“6*或简称“*。有关 查询的详细信息,请参阅基本 查询 。
如前面的示例所示,您可以在查询中使用元组返回该元组所引用的单元的值。或者您也可以在表达式中使
用元组显式引用该元组中指定的成员。查询或表达式可使用返回元组或获取元组的函数。元组可用来引用
它所指定的单元的值,或者用来指定成员组合(当元组用在函数中时)。
元组的“维数”指元组中成员的序列或顺序。由于隐式成员总是以相同的顺序出现,因此维数通常是针对元
组的显式定义成员而言。定义元组集时,元组成员的顺序非常重要。以下示例在列轴上的一个元组中包含
了两个成员。
0012
%'$%&!'+%'$%17'$%178**,'34134
5&3%"#'
注意:
从多个维度显式指定元组中的成员时,必须将整个元组包含在括号中。如果仅指定元组中的一个成员,
则括号是可选的。
在前面的示例中,查询中的元组指定返回位于 Measures 维度的 Reseller Sales Amount
Measure 与 Date 维度中 Calendar Year 属性层次结构的 CY 2004 成员相交处的多维数据集单
元。
注意:
属性成员可以按成员名称或成员键引用。在前面的示例中,您可以将对 %178**,'的引用替换为对
9%8**,'的引用。
集 (Sets)
集是具有相同维数的有序元组集。以下是集的一个示例。
0012
:
%'$%&!'+
%'$%17'$%178**;'+
%'$%&!'+
%'$%17'$%178**,'
<34134
5&3%"#'
注意:
用大括号 :<指定元组集。
在前面的示例中,集中的每个元组均具有相同的维数,因为每个元组的第一个成员都是
Measures 维度中的成员,并且每个元组的第二个成员都是 Calendar Year 属性层次结构中的
成员。如果这两个元组中任意一个元组的第二个成员来自 Date 维度(例如 Calendar
Month)中的不同属性层次结构,您将收到维数不同的错误消息。
提示:
您可以用别名创建集(称为“命名集”)。处理复杂的 表达式时,使用命名集可使 查询更易
于理解或重用。若要使用命名集,请在集标识符的后面使用“,并在该词之后跟随所需别名。
多维数据集空间和自动共存
前面,我们将“多维数据集空间”定义为其属性层次结构的成员的交集。“自动共存”的概念将此多维数据集
空间限制为那些实际存在的单元。维度中属性层次结构的成员可能不与相同维度中其他属性层次结构的成
员共存。
例如,某多维数据集具有 1属性层次结构、1属性层次结构和 =!度量
值,则此多维数据集的空间仅包含那些共存的成员。例如,如果 1属性层次结构包含城市 4>
7#、、?、2#和 ,而 1属性层次结构包含国家(地区)
、@A!、5、B和 ,则该多维数据集的空间不包含 ?和
相交处的空间(单元)。
当查询单元不存在时,不存在的单元返回空,即它们无法包含计算结果,并且您不能定义写入此空间的计
算。例如,下面的语句包含不存在的单元。
0012%1!'$%'$%'$!34134+
:%1!'$%1!'$%$'
+%1!'$%1!'$%A1#'<34&3"
5&3%"#'
"C0&0$%=!'
注意:
此查询使用 !函数返回列轴上 属性层次结构的成员集,并将此集与行
轴上 1!属性层次结构的指定成员集相交。
执行前面的查询时,$与 5!相交处的单元将显示空。同样,A1#与
相交处的单元也将显示空。这些单元不存在并且不能包含值,但不存在的单元可出现在查询返回的结果中。
如果使用 1D函数返回同一维度属性层次结构中的属性层次结构成员的叉积,自动共存将
限制只返回那些实际存在的元组集,而不是返回整个笛卡尔积。例如,运行以下查询并检查其结果。
00121&3B3=4
:%1!'$%1'$%'<+
%1!'$%E?'$!
34*
5&3%"#'
"C0&0$%=!'
注意:
请注意 *用于表示列轴的名称,它是列轴“6*的简称。
前面的查询仅为查询中每个属性层次结构的共存成员返回单元。前面的查询还可以使用 F1D
函数中新的 F变量来编写。
0012
%1!'$%1'$%'F
%1!'$%E?'$!
34*
5&3%"#'
"C0&0$%=!'
前面的查询还可以通过以下方式来编写:
0012%1!'$%E?'$!
34*
5&3%"#'
"C0&0$%=!'+
%1!'$%1'$%'
虽然结果集中的元数据将不同,但返回的单元值将是相同的。例如,在前面的查询中,1层次结
构已移到切片器轴(在 "C0&0子句中),因此没有显式显示在结果集中。
前面的这三个查询均阐释了 中自动共存行为所带来的影响。
剩余63页未读,继续阅读
资源评论
raofeng2008
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功