本书是《MDX解决方案》的第2版,这本权威指南解释了为什么MDX(MultiDimensional eXpressions)是目前用于维度应用程序的最流行语言。通过学习本书,您将掌握如何创建高效的多维度数据仓库,同时还可以掌握访问和分析数据的必要技能,从而能够作出更好的商业决策。
书中首先介绍了MDX语法、基础知识、MDX逻辑及MDX执行过程,然后讨论了命名集、排序、分类及MDX高级应用,接着介绍了Analysis Services 2000、Analysis Services 2005和Essbase三种产品的特性及细节知识,最后介绍了客户端编程、MDX优化和本地多维数据集等相关知识。附录中包含了MDX函数、操作符、连接参数、成员属性及格式化字符串代码的列表。
本书全面介绍了多维表达式(MultiDimensional eXpressions,MDX)的应用。书中首先介绍了MDX语法、基础知识、MDX逻辑及MDX执行过程,然后讨论了命名集、排序、分类及MDX高级应用,接着介绍了Analysis Services 2000、Analysis Services 2005和Essbase三种产品的特性及细节知识,最后介绍了客户端编程、MDX优化和本地多维数据集等相关知识。附录中包含了MDX函数、操作符、连接参数、成员属性及格式化字符串代码的列表。
本书主要面向MDX的开发人员、咨询师和管理人员,也可作为大学本科教学中有关“数据库原理”和“实用数据库”的后续课程。
第1章 MDX入门
1.1 什么是MDX
1.2 查询基础
1.3 轴框架:名称与编号
1.4 大小写敏感与布局
1.5 构造简单的MDX
1.5.1 逗号(,)与冒号(:)
1.5.2 .Members
1.5.3 使用.Children获得一个成员的子成员
1.5.4 使用Descendants()获取一个成员的后代成员
1.6 去除查询结果中的空切片
1.7 MDX中的注释
1.8 MDX数据模型:元组和集
1.8.1 元组
1.8.2 集
1.8.3 查询
1.9 更多基本词汇
1.9.1 CrossJoin()
1.9.2 Filter()
1.9.3 Order()
1.10 查询成员属性
1.11 查询单元属性
1.12 客户端结果数据布局
1.13 小结
第2章 计算成员和命名集简介
2.1 采用计算成员形式的维度计算
2.2 计算成员作用域
2.2.1 计算成员和查询的WITH部分
2.2.2 公式的优先级(求解顺序)
2.3 基本的计算函数
2.3.1 算术操作符
2.3.2 概要统计操作符
2.3.3 Avg()函数
2.3.4 Count(),.Count
2.3.5 DistinctCount()函数(Microsoft扩展)
2.3.6 Sum()函数
2.3.7 Max()函数
2.3.8 Median()函数
2.3.9 Min()函数
2.3.10 NonEmptyCount()函数(Hyperion扩展)
2.3.11 Stdev()和Stddev()函数
2.3.12 StdevP()和StddevP()函数(Microsoft扩展)
2.3.13 Var()和Variance()函数
2.3.14 VarP()和VarianceP()函数(Microsoft扩展)
2.4 补充的函数
2.5 命名集简介
2.6 小结
第3章 MDX中的通用计算和选择
3.1 MDX中的元数据引用函数
3.2 多种比率﹑均值﹑百分比和分配
3.3 贡献率(同一层次结构中级别之间的简单比率)
3.3.1 对总额的贡献率
3.3.2 使用.CurrentMember函数
3.3.3 使用.Parent函数
3.3.4 使用.CurrentMember函数和.Parent函数获得父对象份额
3.3.5 使用Ancestor函数
3.3.6 使用.CurrentMember函数和Ancestor函数计算祖先对象的份额
3.3.7 0作除数的处理
3.4 基本分配
3.4.1 基于另一种比率的数量比例分配
3.4.2 沿层次结构的非加权分配
3.5 均值
3.5.1 简单均值
3.5.2 加权均值
3.6 基于时间的引用和时间序列的计算
3.6.1 各时期(Period-to-Period)的引用和计算
3.6.2 去年同期的引用和计算
3.7 本年至今的聚合
3.8 移动均值和52周的最高价/最低价
3.9 使用LastPeriods()选择基于目标成员的时间范围
3.10 沿不同维度的不同聚合(使用MDX的半加性度量)
3.11 混合聚合:非时间总和,沿时间的均值、最小值与最大值
3.12 混合聚合:非时间总和,沿时间维度的期初/期末结余
3.13 对于缓慢变化值的余额转结和最后输入的结余报告
3.14 查找数据全部输入的最后时间成员
3.15 在MDX表达式中使用成员属性(计算和分类)
3.16 处理边界条件(超出范围的成员,0或其他作除数)
3.16.1 处理不足的范围尺寸
3.16.2 处理不足的层次结构深度
3.16.3 处理错误的级别引用
3.16.4 0作除数的处理
3.17 小结
第4章 MDX查询上下文与执行
4.1 查询中的单元上下文和解析次序
4.1.1 查询的执行阶段
4.1.2 单元求值(对任何单元)
4.1.3 解析NON EMPTY轴
4.1.4 解析AS2005中的HAVING子句
4.1.5 循环上下文和.CurrentMember函数
4.1.6 AS2005中成员的相互联系:强层次结构性、自存在性和属性关系
4.2 在AS2005中修改多维数据集上下文
4.2.1 CREATE SUBCUBE语句
4.2.2 在AS2005中的FROM子句中使用SELECT
4.2.3 无限递归:在计算上下文可能遇到的“陷阱”
4.2.4 特定产品解析次序的使用
4.3 非数据:无效数字、NULL(空)和无效成员
……
第5章 命名集与集的别名
第6章 MDX中的排序和分类
第7章 MDX高级应用
第8章 使用Microsoft Analysis Services的属性数据模型
第9章 Hyperion Essbase中属性维度和成员属性的用法
第10章 通过外部函数扩展MDX
第11章 通过MDX改变多维数据集和维度环境
第12章 Microsoft Analysis Services中计算的多种方法
第13章 Analysis Services 2005中的MDX脚本
第14章 增强客户端的交互
第15章 客户端编程基础
第16章 优化MDX
第17章 使用本地多维数据集
附录A MDX函数与运算符参考
附录B 影响MDX的连接参数
附录C 单元与成员的内部属性
附录D 格式化字符串编码
附录E 学习资源