第Ⅰ部分 基础 3
第1章 分析型数据库与维度设计 3
1.1维度设计 3
1.1.1目的 3
1.1.2度量和环境 5
1.1.3事实和维度 5
1.1.4聚合维度和事实 7
1.2星型模式 8
1.2.1维度表 9
1.2.2键与历史 10
1.2.3事实表 10
1.3星型模式的应用 10
1.3.1查询事实 11
1.3.2浏览维度 12
1.4指导原则 13
1.5本章小结 13
1.6补充阅读 14
第2章 数据仓库体系结构 15
2.1 Inmon的企业信息化工厂 15
2.2 Kimball的维度数据仓库 17
2.3独立型数据集市 19
2.4体系结构和维度设计 20
2.4.1方法的对比 21
2.4.2公共元素 22
2.4.3适用于本书的术语 23
2.5本章小结 23
2.6补充阅读 24
第3章 星型模式与多维数据集 25
3.1维度表特性 25
3.1.1代理键与自然键 25
3.1.2丰富的维度集合 27
3.1.3维度表中的组合维度 30
3.2事实表特性 33
3.2.1事实表与过程 33
3.2.2获取事实 33
3.2.3粒度 36
3.2.4稀疏性 37
3.2.5退化维 37
3.3缓慢变化维 38
3.3.1变化类型1 40
3.3.2变化类型2 42
3.3.3选择并实现响应类型 44
3.4多维数据集 46
3.5本章小结 49
3.6补充阅读 49
第Ⅱ部分 多种星型模式 53
第4章 过程处理中的事实表 53
4.1事实表与业务过程 53
4.2具有不同时间的事实 54
4.2.1单一事实表带来的问题 55
4.2.2以不同事实表的方式建模 57
4.3具有不同粒度的事实 58
4.3.1单一事实表带来的问题 58
4.3.2以不同事实表的方式建模 61
4.4从多个事实表中分析事实 61
4.4.1连接事实表的危险 62
4.4.2横向钻取 63
4.4.3横向钻取的实现 67
4.5本章小结 70
4.6补充阅读 71
第5章 维度一致性问题 73
5.1星型模式之间的协同 73
5.2维度与横向钻取 75
5.2.1造成横向钻取失败的原因 75
5.2.2维度表不必相同 78
5.3一致性维度 79
5.3.1维度一致性的类型 80
5.3.2规划一致性 85
5.4结构与一致性 86
5.4.1维度数据仓库 87
5.4.2企业信息化工厂 89
5.4.3独立型数据集市 90
5.5本章小结 92
5.6补充阅读 92
第Ⅲ部分 维度设计 97
第6章 深入学习维度表 97
6.1将维度分组到表中 98
6.1.1关联维度属性的两种方法 98
6.1.2对维度分组时的考虑 100
6.2分解大型维度 102
6.2.1任意分隔维度表 103
6.2.2分割维度方法的替代方法 104
6.2.3微型维度缓解ETL瓶颈和过度增长 105
6.3角色维度和别名使用 110
6.3.1单一表,多重关系 110
6.3.2利用别名来存取角色 111
6.4避免空值 113
6.4.1空值带来的问题 113
6.4.2避免空外键值 117
6.4.3特别情况行的用途 118
6.5行为维度 121
6.5.1在查询期间将事实转换为维度 121
6.5.2设计并使用行为维度 122
6.5.3行为维度设计要素 123
6.6本章小结 123
6.7补充阅读 124
第7章 层次结构与雪花模式 127
7.1钻取 127
7.1.1钻取的定义 127
7.1.2钻取的实质 128
7.2属性层次和钻取 129
7.2.1属性层次 129
7.2.2在属性层次中钻取 130
7.2.3钻取的其他方法 130
7.2.4文档化属性层次结构 132
7.3雪花模式 135
7.3.1避免采用雪花模式 136
7.3.2采用雪花架构 138
7.4支架表 140
7.4.1重复组 140
7.4.2通过支架表消除重复组 142
7.4.3支架表和缓慢变化处理 143
7.5本章小结 145
7.6补充阅读 145
第8章 深入学习缓慢变化技术 147
8.1时间戳维度 147
8.1.1维度的时间点状态 148
8.1.2时间戳解决方案 150
8.2类型3变化 154
8.2.1研究具有新旧维度值的 154
所有事实 154
8.2.2类型3解决方案 156
8.3混合缓慢变化 159
8.3.1冲突的需求 159
8.3.2混合响应 160
8.3.3评估和扩展混合方法 163
8.4本章小结 164
8.5补充阅读 165
第9章 多值维度与桥接表 167
9.1标准的一对多关系 167
9.2多值维度 169
9.2.1简化关系 169
9.2.2为多值维度构建 171
桥接表 171
9.3多值属性 177
9.3.1简化多值属性 178
9.3.2使用属性桥接表 179
9.4本章小结 185
9.5补充阅读 186
第10章 递归层次与桥接表 187
10.1递归层次 187
10.1.1涉及其他行的行 188
10.1.2报表的难度 189
10.2递归层次的扁平化 190
10.2.1扁平化层次 190
10.2.2扁平化带来的问题 191
10.2.3适合扁平化的情况 193
10.3层次桥接表 193
10.3.1层次桥接表的设计 194
10.3.2使用桥接表 197
10.3.3双重计算 201
10.3.4解决多对多关系 204
10.3.5可能存在的误用 207
10.4变化与层次桥接表 207
10.4.1维度或桥接表的类型1变化 207
10.4.2维度的类型2变化 208
10.4.3层次的类型2变化 212
10.5关于层次桥接表的相关讨论 214
10.5.1装饰桥接表 214
10.5.2多父节点 215
10.5.3多层次 215
10.6本章小结 216
10.7补充阅读 217
第Ⅳ部分 事实表设计 221
第11章 事务、快照和累积快照 221
11.1事务事实表 221
11.1.1描述事件 221
11.1.2事务事实表的特性 222
11.2事实表快照 223
11.2.1挑战:研究状态 223
11.2.2快照模型 225
11.2.3快照注意事项 229
11.3累积快照事实表 233
11.3.1挑战:研究事件之间的时间间隔 233
11.3.2累积快照 236
11.3.3累积快照的注意事项 240
11.4本章小结 244
11.5补充阅读 244
第12章无事实的事实表 247
12.1无事实的事件 247
12.1.1什么也不度量 247
12.1.2无事实的事实表 248
12.1.3使用无事实的事实表 249
12.1.4添加事实 250
12.2条件、范围或资格 252
12.2.1对条件建模的原因 252
12.2.2用于条件的无事实的事实表 254
12.2.3比较行为和条件 255
12.2.4缓慢变化维度和条件 258
12.3本章小结 258
12.4补充阅读 259
第13章 特殊类型的星型模式 261
13.1特殊类型属性 261
13.1.1操作型系统 261
13.1.2分析型系统 262
13.2核心和自定义星型模式 263
13.2.1核心和自定义维度表 263
13.2.2核心和自定义事实表 267
13.2.3其他注意事项 270
13.3使用通用属性 271
13.3.1通用属性 271
13.3.2使用通用设计 272
13.4本章小结 273
13.5补充阅读 274
第Ⅴ部分 性能 277
第14章 导出模式 277
14.1重构维度数据 277
14.1.1应用导出模式 278
14.1.2已经接触过的导出模式 279
14.1.3导出模式的开销 280
14.2融合事实表 281
14.2.1预先计算横向钻取结果 281
14.2.2简化过程比较 282
14.2.3改进性能 283
14.2.4不能实现横向钻取的支持工具 283
14.2.5单一过程分析 283
14.2.6包含一个不可共享的维度 284
14.3旋转事实表 285
14.3.1对旋转数据的需求 285
14.3.2旋转数据带来的好处 286
14.3.3旋转数据带来的问题 287
14.4切片事实表 287
14.4.1为星型模式建立切片 287
14.4.2使用切片事实表 288
14.4.3开始切片 289
14.5集合操作事实表 289
14.5.1比较数据的两个集合 289
14.5.2几种可能的比较 290
14.5.3选择预计算集合操作 291
14.6本章小结 291
14.7补充阅读 292
第15章 聚集 293
15.1聚集的基础知识 293
15.1.1汇总基本数据 294
15.1.2使用聚集 297
15.1.3加载聚集 300
15.1.4作为聚集的多维数据集 302
15.2使聚集不可见 303
15.2.1聚集导航 303
15.2.2建立聚集 306
15.3可选的汇总设计方法 307
15.3.1可转换汇总也是一种可用的方法 307
15.3.2避免单一表设计 308
15.4本章小结 310
15.5补充阅读 310
第Ⅵ部分 工具及文档 315
第16章 设计与商业智能 315
16.1商业智能与SQL生成 315
16.1.1 SQL生成器 315
16.1.2 SQL生成器的限制 318
16.2适用于语义层的指导原则 319
16.2.1需要避免的特性 320
16.2.2需要使用的特性 322
16.3使用商业智能工具的SQL生成器 323
16.3.1多星型模式 323
16.3.2半可加事实 328
16.3.3浏览查询 329
16.3.4桥接表 331
16.4使用基于多维数据集的商业智能 336
16.4.1以多维数据集为中心的商业智能工具 336
16.4.2自动生成多维数据集 338
16.5本章小结 340
16.6补充阅读 341
第17章 设计与ETL 343
17.1 ETL过程 343
17.1.1 ETL是一种复杂的任务 343
17.1.2 ETL过程使用的工具 344
17.1.3结构与ETL过程 344
17.2加载星型模式 344
17.2.1高层依赖 344
17.2.2加载维度表 345
17.2.3加载事实表 350
17.3优化加载 354
17.3.1变化数据的识别 354
17.3.2简化处理 355
17.4清理数据 357
17.4.1需要清理什么 357
17.4.2清理维度数据 358
17.4.3含有无效细节信息的事实 358
17.5内部处理列 360
17.5.1维度表中的内部处理列 360
17.5.2内部处理与事实表 361
17.6本章小结 362
17.7补充阅读 363
第18章 如何设计并文档化维度模型 365
18.1维度设计与数据仓库生命周期 365
18.1.1维度设计的战略位置 365
18.1.2何时做维度设计 367
18.2设计活动 367
18.2.1规划设计工作 368
18.2.2开展访谈指导 369
18.2.3设计维度模型 372
18.2.4计划的优先级 377
18.2.5文档化结果 378
18.3文档化维度模型 379
18.3.1需求文档 379
18.3.2顶层设计文档 381
18.3.3详细设计文档 386
18.3.4逻辑设计与物理设计 389
18.4本章小结 389
18.5补充阅读 390