MDX解決方案

MDX解決方案

《MDX解決方案》是2008年清華大學出版社出版的圖書,作者是(美)斯波福特。

基本信息

內容簡介

MDX解決方案 MDX解決方案
《MDX解決方案》全面介紹了多維表達式(MultiDimensionaleXpressions,MDX)的套用。書中首先介紹了MDX語法、基礎知識、MDX邏輯及MDX執行過程,然後討論了命名集、排序、分類及MDX高級套用,接著介紹了AnalysisServices2000、AnalysisServices2005和Essbase三種產品的特性及細節知識,最後介紹了客戶端編程、MDX最佳化和本地多維數據集等相關知識。附錄中包含了MDX函式、操作符、連線參數、成員屬性及格式化字元串代碼的列表。
《MDX解決方案》主要面向MDX的開發人員、諮詢師和管理人員,也可作為大學本科教學中有關“資料庫原理”和“實用資料庫”的後續課程。

作者簡介

GeorgeSporfford是HyperionSolutions公司的一位卓越的設計師,同時也是《MDX解決方案》第1版的作者。
SivakumarHarinath是微軟公司AnalysisServices2005的測試主管。

編輯推薦

該書是《MDX解決方案》的第2版,這本權威指南解釋了為什麼MDX(MultiDimensionaleXpressions)是目前用於維度應用程式的最流行語言。通過學習《MDX解決方案》,您將掌握如何創建高效的多維度數據倉庫,同時還可以掌握訪問和分析數據的必要技能,從而能夠作出更好的商業決策。
《MDX解決方案》在簡要闡述了MDX語言的語法及語義之後,直接轉向MDX的使用,其中提供了豐富而又實用的MDX示例。本版對第1版的內容進行了大量(超過60%)的修改與更新,新增了許多分析型套用問題。本版不僅涵蓋了MDX語言本身的改動,還結合最新版本的MicrosoftSQLServerAnalysisServices2005及HyperionEssbase講解了具體實現的變化。
《MDX解決方案》主要適用於想學習和熟練掌握MDX的開發人員、諮詢師和管理人員。
《MDX解決方案》主要內容
針對Microsoft與Hyperion產品的具體套用
組合不同的MDX函式來解決各種問題的技術與技巧
SQLServer2005AnalysisServices的功能,以及與先前版本相比它與MDX之間關係的變化MDX的標準語法,這些語法能夠很好地處理許多伺服器的構建並增強它們的功能MDX運算符、函式及相關連線設定的詳細附錄

目錄

第1章MDX入門1
1.1什麼是MDX1
1.2查詢基礎2
1.3軸框架:名稱與編號4
1.4大小寫敏感與布局5
1.5構造簡單的MDX6
1.5.1逗號(,)與冒號(:)6
1.5.2.Members7
1.5.3使用.Children獲得一個成員的子成員8
1.5.4使用Descendants()獲取一個成員的後代成員91.6去除查詢結果中的空切片11
1.7MDX中的注釋13
1.8MDX數據模型:元組和集14
1.8.1元組14
1.8.2集16
1.8.3查詢17
1.9更多基本辭彙18
1.9.1CrossJoin()18
1.9.2Filter()20
1.9.3Order()22
1.10查詢成員屬性24
1.11查詢單元屬性26
1.12客戶端結果數據布局27
1.13小結28
第2章計算成員和命名集簡介29
2.1採用計算成員形式的維度計算29
2.2計算成員作用域30
2.2.1計算成員和查詢的WITH部分31
2.2.2公式的優先權(求解順序)32
2.3基本的計算函式37
2.3.1算術操作符37
2.3.2概要統計操作符37
2.3.3Avg()函式38
2.3.4Count(),.Count38
2.3.5DistinctCount()函式(Microsoft擴展)39
2.3.6Sum()函式39
2.3.7Max()函式40
2.3.8Median()函式40
2.3.9Min()函式40
2.3.10NonEmptyCount()函式(Hyperion擴展)41
2.3.11Stdev()和stddev()函式41
2.3.12StdevP()和StddevP()函式(Microsoft擴展)412.3.13Var()和Variance()函式42
2.3.14VarP()和VarianceP()函式(Microsoft擴展)422.4補充的函式42
2.5命名集簡介44
2.6小結47
第3章MDX中的通用計算和選擇49
3.1MDX中的元數據引用函式51
3.2多種比率﹑均值﹑百分比和分配52
3.3貢獻率(同一層次結構中級別之間的簡單比率)523.3.1對總額的貢獻率53
3.3.2使用.CurrentMember函式53
3.3.3使用.Parent函式53
3.3.4使用.CurrentMember函式和.Parent函式獲得父對象份額533.3.5使用ancestor函式54
3.3.6使用.CurrentMember函式和Ancestor函式計算祖先對象的份額543.3.70作除數的處理56
3.4基本分配56
3.4.1基於另一種比率的數量比例分配56
3.4.2沿層次結構的非加權分配57
3.5均值57
3.5.1簡單均值57
3.5.2加權均值58
3.6基於時間的引用和時間序列的計算60
3.6.1各時期(Period-to-Period)的引用和計算60
3.6.2去年同期的引用和計算61
3.7本年至今的聚合61
3.8移動均值和52周的最高價/最低價63
3.9使用LastPeriods()選擇基於目標成員的時間範圍653.10沿不同維度的不同聚合(使用MDX的半加性度量)653.11混合聚合:非時間總和,沿時間的均值、最小值與最大值663.12混合聚合:非時間總和,沿時間維度的期初/期末結餘663.13對於緩慢變化值的餘額轉結和最後輸入的結餘報告673.14查找數據全部輸入的最後時間成員71
3.15在MDX表達式中使用成員屬性(計算和分類)71
3.16處理邊界條件(超出範圍的成員,0或其他作除數)743.16.1處理不足的範圍尺寸74
3.16.2處理不足的層次結構深度75
3.16.3處理錯誤的級別引用75
3.16.40作除數的處理76
3.17小結77
第4章MDX查詢上下文與執行79
4.1查詢中的單元上下文和解析次序80
4.1.1查詢的執行階段80
4.1.2單元求值(對任何單元)87
4.1.3解析NONEMPTY軸89
4.1.4解析AS2005中的HAVING子句90
4.1.5循環上下文和.CurrentMember函式92
4.1.6AS2005中成員的相互聯繫:強層次結構性、自存在性和屬性關係934.2在AS2005中修改多維數據集上下文96
4.2.1CREATESUBCUBE語句97
4.2.2在AS2005中的FROM子句中使用SELECT103
4.2.3無限遞歸:在計算上下文可能遇到的“陷阱”1064.2.4特定產品解析次序的使用106
4.3非數據:無效數字、NULL(空)和無效成員109
4.3.1無效計算:0作除數和數字錯誤109
4.3.2空單元的語義110
4.3.3無效位置112
4.4計算中的單元屬性優先權114
4.4.1顯示格式化的優先權115
4.4.2計算單元中的數據類型116
4.5操作中多維數據集的上下文117
4.6KPI中的多維數據集上下文117
4.7AS2005中全局、會話和指定查詢計算之間的定義的可見性1174.8小結119
第5章命名集與集的別名121
5.1命名集:作用域和上下文121
5.2命名集的常規使用122
5.3集的別名124
5.3.1集的別名的示例124
5.3.2深入了解集的別名126
5.3.3當集的別名是必需的情況128
5.4小結130
第6章MDX中的排序和分類131
6.1函式131
6.2典型的Top-N選擇132
6.2.1加入分類數(使用Rank()函式)134
6.2.2在集中取得Top-N的後代成員及其他關聯成員1386.3獲得最少/最多元組以達到臨界值140
6.4獲取元組TopN百分比142
6.5在維度次序中放置成員/元組(首先/最後放置祖先成員)1436.6集的反向排序144
6.7小結145
第7章MDX高級套用147
7.1將父對象/祖先成員排在子對象之後(而不是之前)1487.2返回成員下面的子樹,並連同成員一起返回其祖先成員1487.3使用Generate()將元組操作轉化為集操作149
7.4日期計算/日期算術150
7.5對行/列/軸上選擇的成員定義比率(而非對指定維度定義比率)1537.6基於報表的父對象總額,報表總額的貢獻率156
7.6.1方法1:唯一的標準MDX方法156
7.6.2方法2:在AnalysisServices中考慮使用VisualTotals()1617.6.3方法3:使用AS2005子多維數據集163
7.7層次結構中越過級別的層次結構排序164
7.8基於多重規則的單個集排序165
7.9多重層排序或多重維度排序166
7.9.1對每個維度採取相同排序規則的嵌套排序166
7.9.2依據不同標準的嵌套維度排序167
7.10Pareto分析與累積和169
7.11返回top-selling(最暢銷)產品(或其他重要的名稱)作為度量1737.12已選成員集的最新事件174
7.13積聚大量數據所需的時間集(建立沿時間向前或向後合計的集)1777.14乘法聚合(乘積代替加和)180
7.15通過集中的並列分類包含所有元組184
7.16公用維度時間分析186
7.17樣本分析188
7.18小結195
第8章使用MicrosoftAnalysisServices的屬性數據模型1978.1統一維度模型197
8.2維度199
8.2.1屬性、層次結構與聯繫201
8.2.2維度查詢205
8.2.3成員屬性207
8.2.4父-子層次結構209
8.2.5Time維度210
8.3多維數據集211
8.3.1維度關係214
8.3.2角色扮演維度217
8.3.3透視圖217
8.3.4鑽取218
8.4UDM中的計算模型218
8.5在UDM上定義安全性219
8.6小結224
第9章HyperionEssbase中屬性維度和成員屬性的用法2259.1UDA與屬性225
9.2在查詢軸檢索UDA和屬性值226
9.3在計算中使用UDA和屬性227
9.4基於UDA和屬性值選擇基維度成員227
9.4.1使用Attribute函式選擇基於共用屬性值的成員2289.4.2使用WithAttr函式選擇基於屬性值的成員229
9.4.3使用UDA函式選擇共用UDA值的成員230
9.5用IN連線基成員和屬性層次結構230
9.5.1連線基成員及其實際屬性成員231
9.5.2連線屬性成員及其屬性值231
9.6小結232
第10章通過外部函式擴展MDX233
10.1配合MDX使用存儲過程234
10.2ADOMD伺服器對象237
10.2.1表達式239
10.2.2元組生成器239
10.2.3集生成器240
10.2.4MDX240
10.2.5上下文241
10.2.6伺服器元數據對象242
10.3AMO.NET託管存儲過程243
10.4靜態函式與非靜態函式的性能評估244
10.4.1調試.NET存儲過程245
10.4.2NULL、ERROR()與異常等方面的附加程式設計24610.4.3使用存儲過程以獲得動態安全性248
10.4.4COMDLL存儲過程251
10.5參數與返回類型的深入討論251
10.6用於COM存儲過程的MDX函式256
10.6.1SetToStr()與TupleToStr()256
10.6.2Members()、StrToSet()與StrToTuple()256
10.7外部函式示例:TimeSpanUntilSum()函式258
10.8載入和使用存儲過程260
10.9存儲過程名稱解析261
10.10在MDX中調用存儲過程262
10.11對存儲過程的其他考慮因素263
10.12小結263
第11章通過MDX改變多維數據集和維度環境265
11.1在會話中改變維度的默認成員266
11.2維度回寫操作266
11.2.1創建新成員267
11.2.2在維度中移動成員267
11.2.3刪除成員268
11.2.4更新成員定義268
11.3刷新單元數據與維度成員269
11.4把數據寫回多維數據集269
11.4.1標準單元寫回270
11.4.2提交與回滾270
11.4.3使用UPDATECUBE270
11.5小結273
第12章MicrosoftAnalysisServices中計算的多種方法27512.1計算機制概述276
12.1.1度量的固有聚合276
12.1.2使用一元運算符匯總277
12.1.3自定義成員公式279
12.1.4計算成員280
12.1.5單元計算283
12.1.6條件格式化287
12.2各類計算如何互動288
12.2.1無單元計算的互動288
12.2.2單元計算傳遞289
12.2.3使用求解順序來決定傳遞中的公式293
12.2.4計算成員本身不是聚合的294
12.2.5自定義匯總、自定義成員與計算單元結果的固有聚合29512.3使用不同計算技術時應注意的問題295
12.4小結296
第13章AnalysisServices2005中的MDX腳本297
13.1MDX腳本基礎297
13.1.1什麼是MDX腳本297
13.1.2計算語句299
13.1.3子多維數據集300
13.1.4賦值與聚合303
13.1.5賦值與計算成員307
13.1.6賦值與命名集308
13.2MDX腳本以及更複雜的多維數據集309
13.2.1多屬性層次結構309
13.2.2用戶層次結構315
13.2.3父子屬性層次結構316
13.2.4多對多維度317
13.2.5事實維度與引用維度319
13.2.6半累加性度量與非累加性度量319
13.2.7一元運算符與自定義成員公式321
13.3高級MDX腳本323
13.3.1定義帶有SCOPE的子多維數據集323
13.3.2MDX表達式賦值326
13.3.3給子多維數據集賦予一個錯誤的值329
13.3.4將單元屬性值賦給子多維數據集330
13.3.5條件賦值331
13.4現實世界中的MDX腳本332
13.4.1TimeIntelligence嚮導332
13.4.2回顧基本分配335
13.5小結336
第14章增強客戶端的互動337
14.1使用鑽取338
14.1.1MicrosoftAnalysisServices2005中針對鑽取的改進與改變33814.1.2鑽取MDXI339
14.1.3與鑽取相關的重要問題340
14.1.4鑽取MDXII342
14.1.5鑽取安全性343
14.2使用操作343
14.2.1使用操作能夠做什麼?344
14.2.2操作的目標347
14.2.3定義操作348
14.2.4與操作相關的編程注意事項351
14.2.5刪除操作354
14.3使用KPI355
14.3.1創建KPI355
14.3.2MDXKPI函式358
14.3.3使用KPI359
14.4小結361
第15章客戶端編程基礎363
15.1ADOMD.NET基礎364
15.1.1先決條件365
15.1.2建立連線365
15.2處理元數據366
15.2.1獲取構架行集366
15.2.2使用構架行集時的互操作性問題367
15.2.3使用元數據對象模型367
15.2.4使用元數據對象模型時的互操作性問題368
15.2.5維度特性368
15.2.6處理ADOMD.NET元數據快取369
15.3執行查詢370
15.3.1執行命令370
15.3.2參數化命令371
15.3.3使用CellSet對象372
15.3.4關於從查詢中獲取信息的更多細節376
15.3.5關鍵性能指標381
15.4執行操作382
15.5處理“平展的”MDX結果383
15.6小結387
第16章最佳化MDX389
16.1從AnalysisServices2000到AnalysisServices2005的體系結構改動39016.2最佳化集操作391
16.2.1交叉聯接集合之上求和391
16.2.2交叉聯接集之上進行篩選393
16.2.3最佳化TopCount()和BottomCount()394
16.2.4AnalysisServices2005中的NonEmpty函式39516.2.5最佳化排序:Order()396
16.2.6針對較大數據集查詢的UnOrder函式397
16.3最佳化求和397
16.4將計算設計在資料庫中(將成員屬性放入度量中以及新的MDX函式MemberValue中)39816.5MDX腳本最佳化400
16.5.1計算的細節400
16.5.2避免葉級別的計算401
16.5.3在多維數據集設計中避免葉級別計算402
16.5.4度量值表達式最佳化葉級別計算403
16.5.5葉級別計算的MDX腳本最佳化404
16.5.6AnalysisServices2005:使用屬性層次結構而不是成員屬性40616.5.7AnalysisServices2005:使用Scope來替代IIF40716.6在MDX腳本中避免使用慢速函式409
16.6.1為了更好的性能而改變計算邏輯:流計算40916.6.2使用伺服器本地特性而不是腳本來進行與聚合相關的計算41116.7小結412
第17章使用本地多維數據集413
17.1選擇使用何種語法414
17.2使用CREATECUBE語句414
17.2.1過程概述414
17.2.2CREATECUBE語句剖析415
17.2.3定義維度416
17.2.4級別417
17.2.5定義度量422
17.2.6添加命令423
17.2.7ROLAP與MOLAP424
17.2.8INSERTINTO語句剖析424
17.2.9多維數據集目標425
17.2.10INSERTINTO中的OPTIONS子句427
17.2.11SELEC子句428
17.2.12構造提示430
17.2.13從本地多維數據集到伺服器多維數據集431
17.2.14匯總與自定義成員公式431
17.3使用CREATEGLOBALCUBE語句433
17.3.1過程概述433
17.3.2CREATEGLOBALCUBE語句剖析433
17.3.3定義度量434
17.3.4定義維度434
17.3.5定義級別435
17.3.6定義切片成員435
17.3.7需要注意的事項436
17.4使用分析服務腳本語言436
17.4.1過程概述436
17.4.2ASSL語句剖析437
17.4.3安全性437
17.5小結438
附錄AMDX函式與運算符參考439
附錄B影響MDX的連線參數523
附錄C單元與成員的內部屬性541
附錄D格式化字元串編碼551
附錄E學習資源559
……

相關詞條

相關搜尋

熱門詞條

聯絡我們