标题：物理数据库设计：索引、视图和存储技术
图书信息
出版社: 清华大学出版社; 第1版 (2010年12月1日)
外文书名: Physical Database Design:The Database Professional's Guide to Exploiting Indexes,Views,Storage,and More
平装: 283页
正文语种: 简体中文
开本: 16
ISBN: 9787302239314, 7302239312
条形码: 9787302239314
尺寸: 25.8 x 18.4 x 1.4 cm
重量: 458 g
作者简介
作者：（美国）莱特斯通（Sam Lightstone） （美国）特里（Toby Teorey） （美国）纳多（Tom Nadeau） 译者：吴骅 王学昌 韩潼瑜
Sam Lightstone，是IBM的DB2产品开发团队研发经理及高级技术人员，他的工作涉及 自主计算和关系数据库管理系统的许多方面。Sam Lightstone是DB2自主计算研发工作的 领导者和创始人之一，是自治数据库系统方面IEEE数据工程组的主席，是自治和自主计 算方面IEEE计算机协会任务组的成员。2003年，他当选为IBM技术研究院加拿大子公司 的杰出技术委员会委员。Sam Lightstone是IBM的发明大师，拥有超过25项专利和未决专 利，他所发表的成果涉及许多关于关系数据库系统自主计算的内容，从1991年开始一直就 职于IBM。
Toby Teorey是密歇根大学安娜堡分校电气工程与计算机科学系名誉教授以及工程学 院学术项目主任。他先后获得亚利桑那大学图森分校电气工程的理学学士、理学硕士学位 以及威斯康星大学麦迪逊分校的计算机科学博士学位，也一直是各种数据库会议委员会的 项目委员会主席和成员。
Tom Nadeau是阿拉丁软件(aladdinsoftware．com)的创始人，研究方向是数据及文本 挖掘领域。他先后获得密歇根大学安娜堡分校计算机科学理学学士、电气工程和计算机科 学硕士、博士学位，其研究的技术领域包括数据仓库、OLAP、数据挖掘和机器学习，并于 2001年获得IBM CASCON会议的最佳论文奖。
内容简介
《物理数据库设计:索引、视图和存储技术》全面讲述数据库物理设计方案，主要包括物理数据库设计概况，基本索引方法，查询优化和方案选择，选择索引，物化视图选择，无共享分区，范围分区，多维群集，相互依赖的问题，物理设计探索中的计数和数据抽样，查询执行计划和物理设计，自动化物理数据库设计，服务器资源和拓扑，决策支持、数据仓库和OLAP系统中的物理设计，逆规范化以及分布式数据分配等内容。《物理数据库设计:索引、视图和存储技术》适合作为高等院校计算机及相关专业的教材和教学参考书，也可作为相关开发人员的自学教材和参考手册。
媒体评论
我强烈推荐由Lightstone、Teorey以及Nadeau所撰写的《物理数据库设计》一书。本书涵盖了诸多有关良好物理设计的内容：如在使用索引、物化视图的权衡以及物理数据布局等不同方法时的效果。与其他类似书籍所不同的是，本书并不是局限在某种特定的产品之上，而是那些被产品表面所遮蔽的更深层次的内容。本书还涉及到交易密集型应用程序(OLTP)以及数据仓库(OLAP)方面的内容。总之，本书十分值得期待。  
——Michael Blaha，OMT Associates，Inc。  
这是一部物理数据库设计方面的优秀著作，她给予读者务实的模型以及建议。为广大的从业者以及学习者提供了丰富的信息，并通过DB2、Oracle以及SQL Server中的实例介绍相关分析模型以及实用的提示信息。  
——Jim Gray，Microsoft Research
目录
第1章  物理数据库设计概况 1
1.1  动机——数据增长和与日俱增的物理数据库设计 1
1.2  数据库生命周期 4
1.3  物理设计的元素：索引、分区和群集 5
1.3.1  索引 6
1.3.2  物化视图 7
1.3.3  分区和多维群集 7
1.3.4  物理数据库设计的其他方法 7
1.4  物理设计为什么这么困难 8
1.5  文献综述 9
第2章  基本索引方法 10
2.1  B+树索引 10
2.2  复杂的索引检索 14
2.2.1  复杂索引方法 16
2.2.2  表扫描 16
2.3  位图索引 17
2.4  记录标识符 18
2.5  小结 18
2.6  文献综述 19
第3章  查询优化和方案选择 20
3.1  查询过程和优化 20
3.2  有用的数据库优化特性 20
3.2.1  查询转换和重写 21
3.2.2  查询执行计划视图 21
3.2.3  柱状图 21
3.2.4  查询执行计划提示 21
3.2.5  优化深度 22
3.3  查询成本估计——一个例子 22
3.3.1  查询案例3.1 22
3.4  查询执行计划开发 27
3.4.1  查询执行计划的转换规则 27
3.4.2  查询执行计划的重构算法 28
3.5  选择因素、表规模和查询成本估算 28
3.5.1  估算一个选择操作或预期的选择性因素 28
3.5.2  直方图 29
3.5.3  估算关联的选择性因素 30
3.5.4  查询案例3.2 30
3.5.5  估算查询执行计划表大小的例子 32
3.6  小结 32
3.7  文献综述 33
第4章  选择索引 34
4.1  索引的概念及术语 34
4.1.1  基本索引类型 34
4.1.2  索引的访问方法 35
4.2  索引的经验规则 35
4.3  索引选择决策 37
4.4  连接索引选择 40
4.4.1  嵌套循环连接 40
4.4.2  块嵌套连接 42
4.4.3  索引嵌套循环连接 42
4.4.4  合并排序连接 43
4.4.5  哈希连接 44
4.5  小结 45
4.6  文献综述 46
第5章  物化视图选择 47
5.1  简单视图物化 48
5.2  使用通用性 51
5.3  使用分组和归纳 56
5.4  资源的一些注意事项 57
5.5  实例：“好的”、“差的”以及“可怕的” 59
5.6  使用语法和范例 62
5.7  小结 64
5.8  文献综述 64
第6章  无共享分区 65
6.1  理解无共享分区 65
6.1.1  无共享系统架构 65
6.1.2  为什么无共享架构会受到追捧 67
6.2  更多关键概念和术语 67
6.3  哈希分区 68
6.4  无共享架构的优缺点 69
6.5  无共享架构在OLTP系统中的使用 71
6.6  设计的挑战：偏斜与连接配置搭配 73
6.6.1  数据偏斜 73
6.6.2  配置搭配 74
6.7  降低节点间数据传送的数据库设计技巧 74
6.7.1  谨慎分区 74
6.7.2  物化视图复制以及其他复制技术 75
6.7.3  节点间互联 78
6.8  拓扑设计 79
6.8.1  使用节点的子集 79
6.8.2  逻辑节点与物理节点 81
6.9  资金去向 81
6.10  网格计算 82
6.11  小结 83
6.12  文献综述 84
第7章  范围分区 85
7.1  范围分区基础 85
7.2  列表分区 86
7.2.1  列表分区基础 86
7.2.2  范围分区和列表分区组合 87
7.3  语法示例 87
7.4  管理以及快速Roll-in、Roll-out 89
7.4.1  隔离工具 89
7.4.2  Roll-in和Roll-out 90
7.5  增强寻址能力 91
7.6  分区消除 91
7.7  索引范围分区数据 94
7.8  范围分区和群集索引 94
7.9  完整的形态：使用多维群集混合范围和哈希分区 95
7.10  小结 96
7.11  文献综述 97
第8章  多维群集 98
8.1  了解MDC 99
8.1.1  为什么群集这么有帮助 99
8.1.2  MDC 100
8.1.3  创建MDC表的语法格式 103
8.2  MDC的性能优势 103
8.3  不仅仅是查询性能：转入（Roll-in）和转出（Roll-out）的设计 105
8.4  MDC的查询优势实例 106
8.5  存储研究 107
8.6  设计MDC表 109
8.6.1  用粗糙度限制存储扩展 109
8.6.2  MDC利用的单调性 111
8.6.3  选择合适的维度 112
8.7  小结 113
8.8  文献综述 114
第9章  相互依赖的问题 115
9.1  强弱关联分析 115
9.2  过程优先的瀑布策略 117
9.3  效果优先的瀑布策略 117
9.4  变更管理的贪婪算法 118
9.5  流行的策略（鸡汤算法） 119
9.6  小结 120
9.7  文献综述 121
第10章  物理设计探索中的计数和数据抽样 122
10.1  应用物理数据库设计 122
10.1.1  索引设计的计数 124
10.1.2  物化视图设计的计数 124
10.1.3  多维群集的计数 125
10.1.4  无共享分区设计的计数 126
10.2  抽样功能 127
10.2.1  使用SQL抽样的好处 127
10.2.2  数据库设计的抽样 128
10.2.3  抽样类型 131
10.2.4  重复性抽样 133
10.3  一个明显的限制 133
10.4  小结 134
10.5  文献综述 135
第11章  查询执行计划和物理设计 137
11.1  从查询文本获取到结果集 137
11.2  查询执行计划究竟是什么样 140
11.3  非图形化的Explain 141
11.4  浏览查询执行计划以改进数据库设计 144
11.5  用于改进物理数据库设计的查询执行计划标示符 149
11.6  不更改数据库的探索 151
11.7  当查询优化器选择失误时强制执行 151
11.7.1  3种基本策略 151
11.7.2  查询提示简介 152
11.7.3  当SQL不能被修改时的查询提示 154
11.8  小结 156
11.9  文献综述 156
第12章  自动化物理数据库设计 157
12.1  如果假设分析、索引以及其他 158
12.2  Oracle、DB2以及SQL Server的自动化设计功能 161
12.2.1  IBM DB2 Design Advisor 162
12.2.2  Microsoft SQL Server Database Tuning Advisor 166
12.2.3  Oracle SQL Access Advisor 169
12.3  使用分组和泛化 171
12.4  可扩展性以及工作负荷的压缩 172
12.5  测试系统与生产系统之间的设计探索 175
12.6  出版文献中的一些实验性结果 176
12.7  索引选择 179
12.8  物化视图选择 180
12.9  多维群集选择 182
12.10  无共享分区 183
12.11  范围分区设计 184
12.12  小结 186
12.13  文献综述 186
第13章  实质探讨：服务器资源和拓扑 188
13.1  需要了解的有关CPU架构以及发展趋势的内容 189
13.1.1  CPU性能 189
13.1.2  使用并行处理加速系统的阿姆达尔定律 191
13.1.3  多核CPU 192
13.2  客户机服务器架构 192
13.3  对称多处理器与NUMA 194
13.3.1  对称多处理器与NUMA概述 194
13.3.2  缓存一致性与伪共享 195
13.4  服务器群集 195
13.5  关于操作系统的一般知识 195
13.6  存储系统 196
13.6.1  磁盘、轴以及分割 197
13.6.2  存储区域网络与网络连接存储设备 198
13.7  利用RAID使存储既可靠又快捷 199
13.7.1  RAID的历史 199
13.7.2  RAID 0 200
13.7.3  RAID 1 200
13.7.4  RAID 2以及RAID 3 201
13.7.5  RAID 4 202
13.7.6  RAID 5以及RAID 6 202
13.7.7  RAID 1+0 203
13.7.8  RAID 0+1 204
13.7.9  RAID 10+0以及RAID 5+0 204
13.7.10  哪种RAID最适合数据库的需求 205
13.8  在数据库服务器中均衡资源 206
13.9  可用性以及恢复策略 206
13.10  主内存与数据库调整 210
13.10.1  人工内存调整 210
13.10.2  自动内存调整 212
13.10.3  技术前沿：自调整内存管理的最新策略 215
13.11  小结 224
13.12  文献综述 224
第14章  决策支持、数据仓库和OLAP系统中的物理设计 226
14.1  什么是OLAP 226
14.2  维度层次结构 228
14.3  星型模式和雪花模式 229
14.4  仓库与集市 230
14.5  按比例扩大系统 233
14.6  在DSS、仓库以及OLAP设计中的注意事项 234
14.7  主流数据库服务器的使用语法以及例子 235
14.7.1  Oracle 235
14.7.2  Microsoft分析服务 236
14.8  小结 238
14.9  文献综述 238
第15章  逆规范化 240
15.1  有关规范化的基础知识 240
15.2  逆规范化的常见类型 243
15.2.1  一一对应关系中的实体 243
15.2.2  一对多关系中的实体 244
15.3  表逆规范化策略 246
15.4  逆规范化的例子 246
15.4.1  需求规格 247
15.4.2  逻辑设计 247
15.4.3  使用逆规范化进行模式优化 249
15.5  小结 252
15.6  文献综述 252
第16章  分布式数据分配 253
16.1  引言 253
16.2  分布式数据库分配 255
16.3  复制数据分配——“最有益站点”方法 256
16.4  渐进表分配方法 260
16.5  小结 261
16.6  文献综述 261
附录A  一个简单的性能模型数据库 263
A.1  IO时间成本——单独块访问 263
A.2  IO时间成本——表扫描和排序 263
A.3  网络时间延迟 264
A.4  CPU时间延迟 264
附录B  Oracle Data Guard与DB2 HADR的数据库灾难恢复技术比较 265
B.1  在故障转移期间备用始终保持其“热”度 266
B.2  快速故障转移 266
B.3  地域分离 266
B.4  支持多种备用服务器 266
B.5  支持在备用服务器上的读取 267
B.6  主服务器在故障转移后可以很容易重建 267
参考书目 268