ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:24.33KB ,
资源ID:5011233      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5011233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MDX中的重要概念 文档.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MDX中的重要概念 文档.docx

1、MDX中的重要概念 文档SQL Server 2005 联机丛书(2007 年 9 月)MDX 中的重要概念 (MDX)更新日期: 2006 年 7 月 17 日 您可以使用多维表达式 (MDX) 查询多维数据或创建用于多维数据集的 MDX 表达式,但是需要先了解一下 Microsoft SQL Server 2005 Analysis Services (SSAS) 维度概念和术语。下面一节简要介绍了您需要了解的基本维度建模概念和术语。随后各节说明了如何应用这些概念。 有关详细信息,请参阅 Microsoft TechNet 网站 SQL Server 2005 Analysis Servi

2、ces 页面中的“其他资源”部分。有关与 MDX 查询和计算相关的性能问题的详细信息,请参阅 SQL Server 2005 Analysis Services 性能指南中的“编写有效的 MDX”部分。维度建模术语和概念 Microsoft SQL Server 2005 Analysis Services (SSAS) 多维数据集是根据度量值、维度和维度属性来组织的。下表说明了使用 MDX 表达式语言所需了解的维度建模术语和概念。数据库维度 (Database dimension) “数据库维度”是与某个键属性相关的维度属性的集合,而该键属性又与度量值维度中的事实数据相关。 维度属性 (Di

3、mension attribute) “维度属性”被绑定到维度表中的一个或多个列并包含成员。维度属性可以包含客户名称、月份名称和产品名称。 成员 (Member) “成员”是维度属性(包括度量值维度)的值。层次结构中的成员可以是叶成员、父成员、数据成员或“(全部)”成员。度量值 (Measure) “度量值”是来自事实数据表的值,也称为“事实数据”。度量值维度的值有时也通称为“成员”。度量值通常是数值,但也可以是字符串值。 Measures 维度 (Measures dimension) “度量值维度”是包含多维数据集中所有度量值的维度。度量值维度是一种特殊的维度,其中的成员通常是根据各个维度

4、属性(存在指定的度量值)的当前成员(通常采用求和或计数方式)进行聚合。度量值组 (Measure Group) “度量值组”是 SQL Server 2005 Analysis Services 多维数据集中的相关度量值集合(通常是来自同一事实数据表的度量值)。在 SQL Server 2005 Analysis Services 中,一个多维数据集可包含多个度量值组。 “(全部)”成员 (All) member) “(全部)”成员是属性层次结构或用户定义的层次结构中的所有成员的计算值。计算成员 (Calculated member) “计算成员”是在查询时定义和计算的维度成员。可以在用户查询

5、或 MDX 计算脚本中定义计算成员,并将其存储在服务器上。 一个计算成员对应于定义它们的维度中的多个维度表行。数据成员 (Data member) “数据成员”是在父子层次结构中与父成员相关联的子成员。数据成员包含其父成员的数据值,而不是该父成员的子级的聚合值。父成员 (Parent member) “父成员”是父子层次结构中的成员,包含其子级的聚合值。 叶成员 (leaf member) “叶成员”是层次结构中不包含子级的成员。子成员 (Child member) “子成员”是层次结构中位于顶层下面的成员。键属性 (Key attribute) 数据库维度的“键属性”是维度中的所有非键属性(

6、以直接或间接方式)所链接到的属性。键属性通常也是粒度属性。粒度属性 (Granularity attribute) 多维数据集维度的属性,它将维度链接到度量值维度内度量值组中的事实数据。如果粒度属性和键属性为不同的属性,则非键属性必须直接或间接地链接到粒度属性。在多维数据集中,粒度属性定义维度的粒度。多维数据集维度 (Cube dimension) “多维数据集维度”是多维数据集中的数据库维度实例。属性层次结构 (Attribute hierarchy) “属性层次结构”是包含以下级别的属性成员层次结构: 包含所有非重复属性成员的叶级别,叶级别的各个成员也称为“叶成员”。 中间级别(如果属性层

7、次结构为父子层次结构)。 可选的“(全部)”级别 (IsAggregatable=True),它包含属性层次结构的叶成员的聚合值。“(全部)”级别的成员也称为“(全部)”成员。默认情况下,将为每个维度属性定义属性层次结构 (AttributeHierarchyEnabled=True)。属性层次结构默认为可见 (AttributeHierarchyVisible=True)。 均衡层次结构 (Balanced hierarchy) “均衡层次结构”是顶级成员与任何叶成员之间存在相同级别数的层次结构。不齐整层次结构 (Ragged hierarchy) 请参见“非均衡层次结构 (Unbalanc

8、ed hierarchy)”。非均衡层次结构 (Unbalanced hierarchy) “非均衡层次结构”是顶级与叶级之间存在不同级别数的层次结构。父子层次结构即是不齐整层次结构的一个例子。非均衡层次结构也称为“不齐整层次结构”。父子层次结构 (Parent-child hierarchy) “父子层次结构”是一种将维度属性设置为 parent 类型的特殊的属性层次结构。父子层次结构是由子成员和父成员构成的非均衡层次结构。父子层次结构包含以下级别: 包含父成员子级的子级别。父成员的子级包含聚合到父成员的属性成员(包括数据成员)。 包含父成员的中间级别。 可选的“(全部)”级别 (IsAgg

9、regatable=True),它包含父子层次结构叶成员的聚合值,“(全部)”级别的成员也称为“(全部)”成员。 每个维度中只能存在一个父子层次结构,并且必须与键属性相关。用户定义的层次结构 (User-defined hierarchy) “用户定义的层次结构”是属性层次结构的均衡层次结构,旨在帮助用户浏览多维数据集数据。用户定义的层次结构不添加到多维数据集空间。在某些情况下可以隐藏用户定义的层次结构中的级别并使其以非均衡的形式显示。属性关系 (Attribute relationship) “属性关系”是属性间的一对多关系,例如州省市自治区和城市维度属性间的关系。成员属性 (Member

10、property) 成员属性 是特性成员的属性,例如客户的性别或产品的颜色。 单元 (Cell) 多维数据集中的“单元”是度量值维度成员的成员与多维数据集中各个属性层次结构的成员相交处所在的空间。 度量值维度的成员可以是叶成员(单个事实数据)或聚合成员(例如,特定年份聚合的销售额)。 维度的成员可以是叶成员、数据成员、父成员或“(全部)”成员。多维数据集空间 (Cube space) “多维数据集空间”是多维数据集属性层次结构的成员与多维数据集的度量值的交集。子多维数据集 (Subcube) “子多维数据集”是表示多维数据集的筛选视图的多维数据集子集。可以使用 MDX 计算脚本中的 Scope

11、 语句或 MDX 查询中的嵌套 select 语句定义子多维数据集。带有嵌套 select 语句的子多维数据集 (Subcube with Subselect) 用 MDX 查询中的嵌套 select 语句定义的子多维数据集包含符合子多维数据集定义的所有成员,其结果如下: 包含层次结构的“(全部)”成员与包含层次结构的每个叶成员的结果是相同的。 包含任何成员将包括其祖先和后代。 包含用户定义的层次结构中某级别的每个成员将包含该用户定义的层次结构中的所有成员,但可排除不与此级别成员共存的其他层次结构的成员(例如不包含客户的城市)。 多维数据集中的每个“(全部)”成员始终存在于从该多维数据集创建的

12、子多维数据集中。 子多维数据集中的聚合值将进行直接求和。元组 “元组”根据包含多维数据集各属性层次结构中某个属性的属性成员的组合对单元进行唯一标识。在 MDX 查询或表达式中定义元组时,不必显式包含每个属性层次结构中的属性成员。如果属性层次结构中的成员未显式包含在查询或表达式中,则该属性层次结构的默认成员为隐式包含在元组中的属性成员。除非在多维数据集中进行显式定义,否则每个属性层次结构的默认成员均为“(全部)”成员(如果存在“(全部)”成员)。如果属性层次结构中不存在“(全部)”成员,则默认成员为属性层次结构中的顶级成员。除非显式定义了默认度量值,否则默认度量值为多维数据集中指定的第一个度量值

13、。有关详细信息,请参阅定义默认成员和 DefaultMember (MDX)。 例如,以下元组通过仅显式定义 Measures 维度的一个成员来标识 Adventure Works 数据库中的一个单元。 复制代码(Measures.Reseller Sales Amount)上面的示例唯一标识了由 Measures 维度的 Reseller Sales Amount 成员和多维数据集各属性层次结构的默认成员组成的单元。默认成员为除 Destination Currency 属性层次结构之外的各个属性层次结构的“(全部)”成员。Destination Currency 层次结构的默认成员为 US

14、 Dollar 成员(此默认成员是在 MDX 脚本中为 Adventure Works 多维数据集定义的)。重要提示:元组中属性层次结构的成员还受维度中定义的属性之间的关系影响。有关详细信息,请参阅下面的属性关系和多维数据集空间。 以下查询将返回前面示例指定元组所引用的单元的值 ($80,450.596.98)。复制代码SELECT Measures.Reseller Sales Amount ON COLUMNS FROM Adventure Works注意:为查询中的集(此处由单个元组构成)指定轴时,必须在为行轴指定集之前先为列轴指定集。列轴也可称为“axis(0)”或简称“0”。有关 M

15、DX 查询的详细信息,请参阅基本 MDX 查询 (MDX)。 如前面的示例所示,您可以在查询中使用元组返回该元组所引用的单元的值。或者您也可以在表达式中使用元组显式引用该元组中指定的成员。查询或表达式可使用返回元组或获取元组的函数。元组可用来引用它所指定的单元的值,或者用来指定成员组合(当元组用在函数中时)。元组的“维数”指元组中成员的序列或顺序。由于隐式成员总是以相同的顺序出现,因此维数通常是针对元组的显式定义成员而言。定义元组集时,元组成员的顺序非常重要。以下示例在列轴上的一个元组中包含了两个成员。复制代码SELECT (Measures.Reseller Sales Amount,Dat

16、e.Calendar Year.CY 2004) ON COLUMNS FROM Adventure Works注意:从多个维度显式指定元组中的成员时,必须将整个元组包含在括号中。如果仅指定元组中的一个成员,则括号是可选的。 在前面的示例中,查询中的元组指定返回位于 Measures 维度的 Reseller Sales Amount Measure 与 Date 维度中 Calendar Year 属性层次结构的 CY 2004 成员相交处的多维数据集单元。注意:属性成员可以按成员名称或成员键引用。在前面的示例中,您可以将对 CY 2004 的引用替换为对 &2004 的引用。 集 (Set

17、s) 集是具有相同维数的有序元组集。以下是集的一个示例。复制代码SELECT (Measures.Reseller Sales Amount, Date.Calendar Year.CY 2003), (Measures.Reseller Sales Amount, Date.Calendar Year.CY 2004) ON COLUMNS FROM Adventure Works注意:用大括号 指定元组集。 在前面的示例中,集中的每个元组均具有相同的维数,因为每个元组的第一个成员都是 Measures 维度中的成员,并且每个元组的第二个成员都是 Calendar Year 属性层次结构中的

18、成员。如果这两个元组中任意一个元组的第二个成员来自 Date 维度(例如 Calendar Month)中的不同属性层次结构,您将收到维数不同的错误消息。 提示:您可以用别名创建集(称为“命名集”)。处理复杂的 MDX 表达式时,使用命名集可使 MDX 查询更易于理解或重用。若要使用命名集,请在集标识符的后面使用“AS”,并在该词之后跟随所需别名。 多维数据集空间和自动共存 前面,我们将“多维数据集空间”定义为其属性层次结构的成员的交集。“自动共存”的概念将此多维数据集空间限制为那些实际存在的单元。维度中属性层次结构的成员可能不与相同维度中其他属性层次结构的成员共存。 例如,某多维数据集具有

19、City 属性层次结构、Country 属性层次结构和 Internet Sales Amount 度量值,则此多维数据集的空间仅包含那些共存的成员。例如,如果 City 属性层次结构包含城市 New York、London、Paris、Tokyo 和 Melbourne,而 Country 属性层次结构包含国家(地区)United States、United Kingdom、France、Japan 和 Australia,则该多维数据集的空间不包含 Paris 和 United States 相交处的空间(单元)。 当查询单元不存在时,不存在的单元返回空,即它们无法包含计算结果,并且您不能

20、定义写入此空间的计算。例如,下面的语句包含不存在的单元。复制代码SELECT Customer.Gender.Gender.Members ON COLUMNS,Customer.Customer.Aaron A. Allen ,Customer.Customer.Abigail Clark ON ROWS FROM Adventure WorksWHERE Measures.Internet Sales Amount注意:此查询使用 Members (Set) (MDX) 函数返回列轴上 Gender 属性层次结构的成员集,并将此集与行轴上 Customer 属性层次结构的指定成员集相交。

21、执行前面的查询时,Aaron A. Allen 与 Female 相交处的单元将显示空。 同样,Abigail Clark 与 Male 相交处的单元也将显示空。这些单元不存在并且不能包含值,但不存在的单元可出现在查询返回的结果中。如果使用 Crossjoin (MDX) 函数返回同一维度属性层次结构中的属性层次结构成员的叉积,自动共存将限制只返回那些实际存在的元组集,而不是返回整个笛卡尔积。例如,运行以下查询并检查其结果。复制代码SELECT CROSSJOIN ( Customer.Country.United States, Customer.State-Province.Members

22、 ) ON 0 FROM Adventure WorksWHERE Measures.Internet Sales Amount注意:请注意 0 用于表示列轴的名称,它是列轴“axis(0)”的简称。 前面的查询仅为查询中每个属性层次结构的共存成员返回单元。前面的查询还可以使用 * (Crossjoin) (MDX) 函数中新的 * 变量来编写。复制代码SELECT Customer.Country.United States * Customer.State-Province.MembersON 0 FROM Adventure WorksWHERE Measures.Internet Sa

23、les Amount前面的查询还可以通过以下方式来编写:复制代码SELECT Customer.State-Province.MembersON 0 FROM Adventure WorksWHERE (Measures.Internet Sales Amount, Customer.Country.United States)虽然结果集中的元数据将不同,但返回的单元值将是相同的。例如,在前面的查询中,Country 层次结构已移到切片器轴(在 WHERE 子句中),因此没有显式显示在结果集中。前面的这三个查询均阐释了 SQL Server 2005 Analysis Services 中自动

24、共存行为所带来的影响。 用户定义的层次结构和多维数据集空间 本主题前面的示例使用属性层次结构定义了多维数据集空间中的位置。不过,您还可以使用根据维度中属性层次结构所定义的用户定义的层次结构来定义多维数据集空间中的位置。用户定义的层次结构是属性层次结构的层次结构,旨在帮助用户浏览多维数据集数据。 例如,上节中的 CROSSJOIN 查询也可以按照如下方式编写:复制代码SELECT CROSSJOIN ( Customer.Country.United States, Customer.Customer Geography.State-Province.Members ) ON 0 FROM Ad

25、venture WorksWHERE Measures.Internet Sales Amount在前面的查询中,Customer 维度中的 Customer Geography 用户定义的层次结构用于定义先前使用属性层次结构定义的多维数据集空间中的位置。可以使用属性层次结构或用户定义的层次结构来定义多维数据集中的同一个位置。属性关系和多维数据集空间 定义相关属性间的属性关系(通过促进相应聚合的创建)将提高查询性能,并影响与属性层次结构成员一同显示的相关属性层次结构的成员。例如,您定义了包含 City 属性层次结构的成员的元组并且该元组未显式定义 Country 属性层次结构成员时,您可能希望

26、默认 Country 属性层次结构成员是 Country 属性层次结构的相关成员。不过,只有定义了 City 属性层次结构和 Country 属性层次结构之间的属性关系时,才会出现上述预期结果。以下示例返回未显式包含在查询中的相关属性层次结构的成员。复制代码WITH MEMBER Measures.x AS Customer.Country.CurrentMember.NameSELECT Measures.x ON 0,Customer.City.Members ON 1FROM Adventure Works注意:请注意,WITH 关键字与 CurrentMember (MDX) 和 Na

27、me (MDX) 函数一起用于创建在查询中使用的计算成员。有关详细信息,请参阅基本 MDX 查询 (MDX)。 在前面的查询中,返回了与 State 属性层次结构各成员相关联的 Country 属性层次结构的成员名称。出现了预期的 Country 成员(因为定义了 City 和 Country 属性之间的属性关系)。不过,如果在同一维度中没有定义属性层次结构间的任何属性关系,将返回“(全部)”成员,如以下查询所示。复制代码WITH MEMBER Measures.x AS Customer.Education.Currentmember.NameSELECT Measures.x ON 0,

28、Customer.City.Members ON 1FROM Adventure Works在前面的查询中,返回了“(全部)”成员(“All Customers”),因为 Education 和 City 间不存在任何关系。因此,Education 属性层次结构的“(全部)”成员将是任何涉及 City 属性层次结构(未在其中显式提供 Education 成员)的元组中使用的 Education 属性层次结构的默认成员。 计算上下文 每个集、成员、元组或数值函数均在整个 MDX 表达式或语句的上下文中执行。当参数(例如元组)传递到函数时,仅显式提供多维数据集空间中的若干个坐标。其他坐标根据当前计

29、算上下文来获取。按照以下顺序确定未指定的单元坐标和属性成员的计算上下文:1. FROM 子句(如果适用)- 此子句可指定整个多维数据集,或以 SELECT 语句的形式指定子多维数据集。 2. WHERE 子句(如果适用)- 此子句也称为“切片器轴”,可在其上指定集、元组或成员以限制查询在列轴或行轴上返回成员。从概念上来说,未在列轴或行轴上显式指定的每个属性层次结构的默认成员均是切片器轴的一部分。注意:在切片器轴和其他轴上指定特定属性的单元坐标时,函数中指定的坐标可能优先确定轴上的集的成员。Filter (MDX) 和 Order (MDX) 函数是这类函数的示例 - 您可以按属性成员(通过 W

30、HERE 子句或 FROM 子句中的 SELECT 语句排除在计算上下文之外)对结果进行筛选或排序。 3. 在查询或表达式中定义的命名集和计算成员。4. 在行轴和列轴上指定的元组和集,对没有显示在行轴、列轴或切片器轴上的属性使用默认成员。5. 每个轴上的多维数据集或子多维数据集,消除了轴上的空元组并应用 HAVING 子句。 6. 有关详细信息,请参阅在查询中建立多维数据集上下文 (MDX)。7. 在以下查询中,由 WHERE 子句中指定的 Country 属性成员和 Calendar Year 属性成员限制行轴的计算上下文。复制代码SELECT Customer.City.City.Memb

31、ers ON 0FROM Adventure WorksWHERE (Customer.Country.France, Date.Calendar.Calendar Year.CY 2004, Measures.Internet Sales Amount)1. 如果通过在行轴上指定 FILTER 函数修改此查询,并在 FILTER 函数中使用 Calendar Year 属性层次结构成员,则可以修改 Calendar Year 属性层次结构中的属性成员(用于为列轴上的集的成员提供计算上下文)。复制代码SELECT FILTER ( Customer.City.City.Members, (Date.Ca

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1