第1章 数据库及其基本理论 1
1.1数据库技术概述 1
1.1.1数据模型 1
1.1.2数据库管理系统 3
1.1.3数据库系统 5
1.2关系数据库及其设计理论 8
1.2.1关系模型 8
1.2.2实体-联系模型 9
1.2.3约束的建模 13
1.2.4 E-R模型设计的原则 14
1.2.5从E-R模型向关系模型的设计 15
1.2.6关系的优化组合 18
1.2.7关系模式的设计 18
1.2.8 数据库设计中的其他问题 19
1.3 SQL简介 19
1.3.1通过SQL语句实现数据库及相关对象的定义 20
1.3.2 SQL查询语句的基本结构 21
1.3.3编程环境下的SQL 22
1.4数据库技术的新进展 23
1.5小结 26
1.6习题 27
参考文献 27
第2章 数据的组织与存储 29
2.1存储器的层次及特性 29
2.1.1高速缓冲存储器 29
2.1.2主存储器 30
2.1.3磁盘存储器 30
2.1.4三级存储器 30
2.2磁盘结构及访问特性 31
2.2.1磁盘的结构 31
2.2.2磁盘的访问特性 32
2.3数据元素的表示 33
2.3.1字段的表示 33
2.3.2元组的表示 35
2.4数据文件在磁盘上的组织 40
2.5数据文件的其他组织方式 43
2.6数据访问的优化 44
2.6.1数据库访问的成本 45
2.6.2加速磁盘访问的策略 45
2.7故障恢复及数据冗余 47
2.7.1稳定存储 48
2.7.2磁盘镜像冗余技术 48
2.8小结 51
2.9习题 51
参考文献 52
第3章 数据库索引技术 54
3.1索引及其类型 54
3.2简单的顺序文件索引 57
3.2.1顺序文件索引的查询 57
3.2.2顺序文件索引的维护 58
3.3简单的辅助索引 62
3.4 B树索引 64
3.4.1 B+树的结构 64
3.4.2 B+树上的查询 66
3.4.3 B+树的维护 67
3.4.4 B+树的效率 71
3.4.5 B+树的应用 72
3.5散列索引 72
3.5.1动态散列索引 74
3.5.2动态散列索引与其他索引的比较 77
3.6多维索引 77
3.6.1 R树 79
3.6.2网格文件 83
3.6.3位图索引 85
3.7小结 87
3.8习题 88
参考文献 90
第4章 查询处理及优化技术 92
4.1查询处理过程概述 92
4.1.1语法分析及语法树 93
4.1.2逻辑查询计划的生成 96
4.1.3物理查询生成 99
4.2查询代价的测量方法 101
4.3关系代数的基础算法 102
4.3.1基于扫描的算法 102
4.3.2基于排序的算法 103
4.3.3基于散列的算法 116
4.3.4基于索引的算法 120
4.4查询表达式的执行 122
4.4.1实体化方法 123
4.4.2流水线方法 123
4.5查询优化技术 126
4.5.1运算结果信息的统计 126
4.5.2等价规则及逻辑查询优化 130
4.5.3物理查询计划的生成 143
4.5.4物化视图及其在优化中的应用 150
4.6小结 153
4.7习题 155
参考文献 159
第5章 事务及并发控制 161
5.1事务 161
5.1.1事务的概念 161
5.1.2事务的状态 164
5.1.3事务正确执行的准则 165
5.1.4事务管理器 165
5.2并发调度及可串行化 166
5.2.1并发调度 167
5.2.2可串行化 168
5.2.3冲突可串行化的判断 173
5.2.4冲突可串行化的构造 174
5.2.5可接受调度的标准 175
5.3并发执行产生的问题 176
5.3.1丢失修改 177
5.3.2不可重复读 177
5.3.3脏读 178
5.3.4幻像 178
5.4并发控制的锁机制 179
5.4.1锁 180
5.4.2两阶段锁协议 183
5.4.3活锁与死锁 185
5.4.4死锁处理 186
5.4.5更新锁和增量锁 188
5.4.6多粒度锁 191
5.4.7幻像问题的处理 193
5.4.8数据库中锁调度器的结构 194
5.5并发控制的时间戳机制 197
5.5.1时间戳 197
5.5.2时间戳排序协议 197
5.5.3时间截与封锁协议的比较 200
5.6并发控制的有效性检查机制 200
5.7事务的隔离级别 202
5.8小结 203
5.9习题 203
参考文献 206
第6章 数据库故障与恢复 209
6.1有关事务访问数据库的进一步讨论 209
6.1.1数据访问 209
6.1.2事务的原语操作 210
6.2数据库故障类型 211
6.2.1事务故障 211
6.2.2系统故障 211
6.2.3介质故障 212
6.2.4灾难性故障 212
6.3基于日志的恢复技术 213
6.3.1基于undo日志的恢复 214
6.3.2基于redo日志的恢复 220
6.3.3基于undo/redo日志的恢复 225
6.4介质故障的恢复 228
6.4.1静态转储 228
6.4.2非静态转储 228
6.5小结 231
6.6习题 232
参考文献 234
第7章 数据库系统结构 236
7.1集中式数据库系统 236
7.2客户/服务器系统 238
7.3并行数据库系统 242
7.3.1并行数据库系统的目标 244
7.3.2并行数据库硬件体系结构 244
7.4分布式数据库系统 248
7.4.1分布式数据库系统的体系结构 248
7.4.2分布式数据库系统使用的网络类型 249
7.4.3分布式数据库系统的目标 250
7.4.4分布式数据库系统的实现问题 251
7.5小结 252
7.6习题 253
参考文献 253
第8章 分布式数据库系统及其设计 255
8.1分布式数据库系统简介 255
8.1.1产生和发展 255
8.1.2分布式数据库系统的定义及类型 258
8.1.3分布式数据库系统的模式结构 262
8.1.4分布式数据库管理系统 268
8.1.5需要研究的技术问题 270
8.2分布式数据库系统的设计 271
8.2.1分布式数据库系统设计的内容及目标 271
8.2.2分布式数据库系统的设计方法 273
8.2.3数据的分片策略 274
8.2.4数据的分配策略 279
8.2.5自顶向下的设计——DATAID-D 281
8.2.6自底向上的设计 291
8.3小结 293
8.4习题 294
参考文献 294
第9章 分布式查询及优化 295
9.1分布式查询概述 295
9.1.1分布式查询的概念 295
9.1.2分布式查询的层次结构 295
9.1.3分布式查询的代价估计及优化准则 297
9.2基于等价变换的分布式查询优化策略 299
9.2.1基本原理 299
9.2.2实现方法 299
9.3基于半连接算法的查询优化处理 302
9.3.1基本概念 302
9.3.2利用半连接运算实现连接运算的基本原理 303
9.3.3基于半连接算法的代价估计 303
9.4基于站点依赖信息的连接算法优化处理 304
9.5基于分片和复制的优化处理 306
9.6站点依赖与复制结合的优化处理 308
9.7利用Hash划分实现连接依赖 309
9.8小结 310
9.9习题 310
参考文献 311
第10章 分布式事务管理及故障恢复 313
10.1分布式事务概述 313
10.1.1分布式事务的概念 313
10.1.2分布式事务的性质 314
10.1.3分布式事务的执行原理 315
10.1.4分布式事务管理的目标及关键问题 317
10.1.5分布式事务管理的抽象模型 318
10.1.6分布式事务管理的控制模型 318
10.2分布式数据库系统的故障及恢复机制 320
10.2.1分布式数据库系统中的故障 320
10.2.2分布式事务的状态 321
10.2.3分布式事务日志及恢复机制 322
10.2.4两阶段提交协议 323
10.2.5两阶段提交协议及故障恢复 331
10.2.6三段式提交协议 332
10.3分布式数据库一致性保持方法 334
10.3.1多站点数据更新存在的问题 335
10.3.2主文本更新法 335
10.3.3快照法 336
10.3.4异步复制器 336
10.4小结 337
10.5习题 338
参考文献 338
第11章 分布式数据库中的并发控制 339
11.1分布式并发控制及可串行控制理论扩展 339
11.2分布式并发控制的方法及分类 340
11.3分布式并发控制的锁机制 341
11.3.1分布式数据库系统的封锁方法 341
11.3.2两阶段封锁协议的实现方法 342
11.3.3分布式数据库系统中的死锁处理 344
11.4分布式并发控制的乐观方法 348
11.5小结 350
11.6习题 350
参考文献 351