第1章 引言 1
1.1 数据库系统的应用 1
1.2 数据库系统的目标 2
1.3 数据视图 3
1.3.1 数据抽象 4
1.3.3 数据模型 5
1.3.2 实例和模式 5
1.4.2 数据定义语言 6
1.4.1 数据操纵语言 6
1.4 数据库语言 6
1.5.1 表 7
1.5 关系数据库 7
1.5.3 数据定义语言 8
1.5.2 数据操纵语言 8
1.6.1 设计过程 9
1.6 数据库设计 9
1.5.4 来自应用程序的数据库访问 9
1.6.3 实体-联系模型 10
1.6.2 银行企业的数据库设计 10
1.6.4 规范化 11
1.8 数据存储和查询 12
1.7.2 半结构化数据模型 12
1.7 基于对象数据库和半结构化数据库 12
1.7.1 基于对象数据模型 12
1.9 事务管理 13
1.8.2 查询处理器 13
1.8.1 存储管理器 13
1.10 数据挖掘与分析 14
1.11 数据库体系结构 15
1.12.2 数据库管理员 17
1.12.1 数据库用户和用户界面 17
1.12 数据库用户和管理员 17
1.13 数据库系统的历史 18
1.14 小结 19
文献注解 20
习题 20
术语回顾 20
实践习题 20
2.1.1 基本结构 24
2.1 关系数据库的结构 24
第一部分 关系数据库 24
第2章 关系模型 24
2.1.2 数据库模式 25
2.1.3 码 27
2.1.4 查询语言 28
2.2.2 投影运算 29
2.2.1 选择运算 29
2.2 关系代数基本运算 29
2.2.5 集合差运算 30
2.2.4 并运算 30
2.2.3 关系运算的组合 30
2.2.6 笛卡儿积运算 31
2.2.7 更名运算 33
2.3 附加的关系代数运算 34
2.2.8 关系代数的形式化定义 34
2.3.2 自然连接运算 35
2.3.1 集合交运算 35
2.3.3 除运算 36
2.4 扩展的关系代数运算 37
2.3.4 赋值运算 37
2.4.2 聚集函数 38
2.4.1 广义投影 38
2.4.3 外连接 39
2.5 空值 41
2.6.2 插入 42
2.6.1 删除 42
2.6 数据库的修改 42
2.7 小结 43
2.6.3 更新 43
实践习题 44
术语回顾 44
习题 45
文献注解 46
3.1 背景 47
第3章 SQL 47
3.2.2 SQL中的基本模式定义 48
3.2.1 基本域类型 48
3.2 数据定义 48
3.3.1 select子句 50
3.3 SQL查询的基本结构 50
3.3.3 from子句 51
3.3.2 where子句 51
3.3.5 元组变量 52
3.3.4 更名运算 52
3.3.6 字符串运算 53
3.3.8 重复 54
3.3.7 排列元组的显示次序 54
3.4.2 intersect运算 55
3.4.1 union运算 55
3.4 集合运算 55
3.5 聚集函数 56
3.4.3 except运算 56
3.6 空值 58
3.7.1 集合成员资格 59
3.7 嵌套子查询 59
3.7.3 测试是否为空关系 60
3.7.2 集合的比较 60
3.7.4 测试是否存在重复元组 61
3.8.2 with子句 62
3.8.1 派生关系 62
3.8 复杂查询 62
3.9 视图 63
3.9.1 视图定义 64
3.9.2 用其他视图定义视图 65
3.10.1 删除 66
3.10 数据库的修改 66
3.10.2 插入 67
3.10.3 更新 68
3.10.4 视图的更新 69
3.10.5 事务 70
3.11.1 举例 71
3.11 连接关系 71
3.11.2 连接类型和条件 72
术语回顾 74
3.12 小结 74
实践习题 75
习题 76
文献注解 77
4.1.1 SQL中内建的数据类型 79
4.1 SQL的数据类型与模式 79
第4章 高级SQL 79
4.1.2 用户定义类型 80
4.1.4 模式、目录与环境 81
4.1.3 大对象类型 81
4.2.2 not null约束 82
4.2.1 单个关系上的约束 82
4.2 完整性约束 82
4.2.4 check子句 83
4.2.3 unique约束 83
4.2.5 参照完整性 84
4.3 授权 86
4.2.6 断言 86
4.4 嵌入式SQL 87
4.5.1 ODBC 90
4.5 动态SQL 90
4.5.2 JDBC 92
4.6.1 SQL函数和过程 95
4.6 函数和过程化结构 95
4.6.2 过程化结构 96
4.6.3 外部语言例程 98
4.7.1 使用迭代的传递闭包 99
4.7 递归查询 99
4.7.2 SQL中的递归 100
4.8 高级SQL特性 101
4.8.2 关于子查询的更多内容 102
4.8.1 create table的扩展 102
4.9 小结 103
4.8.3 数据库更新的高级结构 103
实践习题 104
术语回顾 104
习题 105
文献注解 106
5.1.1 查询的例子 107
5.1 元组关系演算 107
第5章 其他关系语言 107
5.1.3 表达式的安全性 109
5.1.2 形式化定义 109
5.2.1 形式化定义 110
5.2 域关系演算 110
5.1.4 语言的表达能力 110
5.2.3 表达式的安全性 111
5.2.2 查询的例子 111
5.3 QBE 112
5.2.4 语言的表达能力 112
5.3.2 在单个关系上的查询 113
5.3.1 框架表 113
5.3.3 在多个关系上的查询 114
5.3.4 条件框 115
5.3.5 结果关系 116
5.3.6 在Microsoft Access中的QBE 117
5.4 Datalog 118
5.4.1 基本结构 119
5.4.2 Datalog规则的语法 120
5.4.3 非递归Datalog的语义 121
5.4.4 安全性 122
5.4.5 Datalog的关系运算 123
5.4.6 Datalog中的递归 124
5.4.7 递归的能力 125
实践习题 127
术语回顾 127
5.5 小结 127
习题 128
文献注解 129
6.1.1 设计阶段 132
6.1 设计过程概览 132
第二部分 数据库设计 132
第6章 数据库设计和E-R模型 132
6.2 实体-联系模型 133
6.1.2 设计选择 133
6.2.1 实体集 134
6.2.2 联系集 135
6.2.3 属性 137
6.3.1 映射基数 138
6.3 约束 138
6.3.2 码 139
6.4 实体-联系图 140
6.3.3 参与约束 140
6.5.1 用实体集还是用属性 144
6.5 实体-联系设计问题 144
6.5.2 用实体集还是用联系集 145
6.5.3 二元联系集与n元联系集 146
6.6 弱实体集 147
6.5.4 联系属性的布局 147
6.7.1 特殊化 149
6.7 扩展E-R特性 149
6.7.2 一般化 150
6.7.4 一般化上的约束 151
6.7.3 属性继承 151
6.7.5 聚集 153
6.7.6 可选择的E-R符号 154
6.8.1 E-R设计的可选方案 155
6.8 银行企业的数据库设计 155
6.8.4 银行数据库中的联系集 156
6.8.3 银行数据库中的实体集 156
6.8.2 银行数据库的数据需求 156
6.8.5 银行数据库中的E-R图 157
6.9.2 弱实体集的表示方式 158
6.9.1 强实体集的表示方式 158
6.9 转换为关系模式 158
6.9.3 联系集的表示方式 159
6.9.4 复合属性和多值属性 160
6.9.6 聚集的表示方式 161
6.9.5 一般化的表示方式 161
6.10.1 数据约束和关系数据库设计 162
6.10 数据库设计的其他方面 162
6.9.7 银行企业的关系模式 162
6.10.3 授权需求 163
6.10.2 使用需求:查询和性能 163
6.11 统一建模语言UML 164
6.10.5 数据库设计的其他问题 164
6.10.4 数据流、工作流 164
6.12 小结 166
实践习题 167
术语回顾 167
习题 169
文献注解 170
7.1.1 设计选择:更大的模式 172
7.1 好的关系设计的特点 172
第7章 关系数据库设计 172
7.1.2 设计选择:更小的模式 174
7.3 使用函数依赖的分解 176
7.2 原子域和第一范式 176
7.3.1 码和函数依赖 177
7.3.3 BCNF和保持依赖 178
7.3.2 Boyce-Codd范式 178
7.3.4 第三范式 180
7.4.1 函数依赖集的闭包 182
7.4 函数依赖理论 182
7.3.5 更高的范式 182
7.4.2 属性集的闭包 184
7.4.3 正则覆盖 185
7.4.4 无损分解 187
7.4.5 保持依赖 188
7.5.1 BCNF分解 189
7.5 分解的算法 189
7.5.2 3NF分解 191
7.5.3 BCNF和3NF的比较 192
7.6.1 多值依赖 193
7.6 使用多值依赖的分解 193
7.6.2 第四范式 194
7.6.3 4NF分解 195
7.8.1 E-R模型和规范化 196
7.8 数据库设计过程 196
7.7 更多的范式 196
7.8.2 属性和联系的命名 197
7.9 时态数据建模 198
7.8.4 其他设计问题 198
7.8.3 为了性能解除规范化 198
7.10 小结 200
实践习题 201
术语回顾 201
文献注解 203
习题 203
8.1.1 表格和图形用户界面 205
8.1 用户界面和工具 205
第8章 应用设计和开发 205
8.1.2 报表生成器 206
8.2 数据库的Web界面 207
8.3.2 超文本标记语言 208
8.3.1 统一资源定位符 208
8.3 Web基础 208
8.3.3 客户端脚本和applet 209
8.3.4 Web服务器和会话 210
8.4.1 一个servlet的例子 212
8.4 servlet和JSP 212
8.4.4 servlet支持 213
8.4.3 servlet的生命周期 213
8.4.2 servlet会话 213
8.4.5 服务器端脚本 214
8.5.2 Microsoft ASP 215
8.5.1 构建Web界面 215
8.5 建立大型Web应用 215
8.5.3 提高应用程序性能 216
8.6.1 对触发器的需求 217
8.6 触发器 217
8.6.2 SQL中的触发器 218
8.6.3 何时不用触发器 220
8.7.1 权限的授予 221
8.7 SQL中的授权 221
8.7.2 在SQL中授权 222
8.7.3 角色 223
8.7.4 收回权限 224
8.7.6 SQL授权的局限 225
8.7.5 视图、函数和过程的授权 225
8.8.1 加密技术 226
8.8 应用系统安全性 226
8.7.7 审计追踪 226
8.8.2 数据库中的加密支持 227
8.8.3 鉴定 228
8.8.5 隐私 230
8.8.4 保护应用程序 230
8.9 小结 231
实践习题 232
术语回顾 232
习题 233
项目建议 234
文献注解 235
9.2 复杂数据类型 238
9.1 概述 238
第三部分 基于对象的数据库和XML第9章 基于对象的数据库 238
9.3.1 结构类型 240
9.3 SQL中的结构类型和继承 240
9.3.2 类型继承 242
9.4 表继承 243
9.5 SQL中的数组和多重集合类型 244
9.5.2 查询以集合体为值的属性 245
9.5.1 创建和访问集合体值 245
9.5.3 嵌套和解除嵌套 246
9.6 对象标识和SQL中的引用类型 248
9.7 Q-R特性的实现 249
9.8 持久化程序设计语言 250
9.8.2 对象标识和指针 251
9.8.1 对象的持久化 251
9.8.4 持久化C++系统 252
9.8.3 持久对象的存储和访问 252
9.8.5 持久化Java系统 254
9.9 面向对象与对象-关系 255
9.10 小结 256
术语回顾 256
实践习题 257
习题 258
文献注解 259
10.1 动机 261
第10章 XML 261
10.2 XML数据的结构 263
10.3 XML文档模式 265
10.3.1 文档类型定义 266
10.3.2 XMLSchema 268
10.4.1 XPath 270
10.4 查询和转换 270
10.4.2 XQuery 272
10.4.3 XSLT 276
10.5 XML应用程序接口 278
10.6.2 关系数据库 279
10.6.1 非关系的数据存储 279
10.6 XML数据的存储 279
10.6.3 SQL/XML 281
10.7.2 标准化数据交换格式 283
10.7.1 存储复杂结构的数据 283
10.7 XML应用 283
10.7.3 Web服务 284
10.8 小结 285
10.7.4 数据中介 285
术语回顾 286
习题 287
实践习题 287
文献注解 288
11.1 物理存储介质概述 292
第11章 存储和文件结构 292
第四部分 数据存储和查询 292
11.2.1 磁盘的物理特性 294
11.2 磁盘 294
11.2.2 磁盘性能的度量 295
11.2.3 磁盘块访问的优化 296
11.3.1 通过冗余提高可靠性 298
11.3 RAID 298
11.3.2 通过并行提高性能 299
11.3.3 RAID级别 300
11.3.4 RAID级别的选择 302
11.3.6 其他的RAID应用 303
11.3.5 硬件问题 303
11.4.2 磁带 304
11.4.1 光盘 304
11.4 第三级存储 304
11.5.1 缓冲区管理器 305
11.5 存储访问 305
11.5.2 缓冲区替换策略 306
11.6 文件组织 307
11.6.1 定长记录 308
11.6.2 变长记录 309
11.7.1 顺序文件组织 310
11.7 文件中记录的组织 310
11.7.2 多表聚类文件组织 311
11.8 数据字典存储 312
11.9 小结 313
术语回顾 314
实践习题 315
文献注解 316
习题 316
12.1 基本概念 318
第12章 索引与散列 318
12.2.1 稠密索引和稀疏索引 319
12.2 顺序索引 319
12.2.2 多级索引 320
12.2.3 索引的更新 321
12.2.4 辅助索引 322
12.3.1 B+树的结构 323
12.3 B+树索引文件 323
12.3.2 B+树的查询 325
12.3.3 B+树的更新 326
12.3.4 B+树文件组织 330
12.4 B树索引文件 331
12.3.5 字符串上的索引 331
12.5 多码访问 332
12.5.2 多码索引 333
12.5.1 使用多个单码索引 333
12.5.5 辅助索引和记录重定位 334
12.5.4 覆盖索引 334
12.5.3 不唯一的搜索码 334
12.6.1 散列函数 335
12.6 静态散列 335
12.6.2 桶溢出处理 337
12.6.3 散列索引 338
12.7.1 数据结构 339
12.7 动态散列 339
12.7.2 查询和更新 340
12.8 顺序索引和散列的比较 343
12.7.3 静态散列与动态散列比较 343
12.9.1 位图索引结构 344
12.9 位图索引 344
12.9.2 位图操作的有效实现 345
12.10 SQL 中的索引定义 346
12.9.3 位图和B+树 346
12.11 小结 347
实践习题 348
术语回顾 348
文献注解 350
习题 350
13.1 概述 352
第13章 查询处理 352
13.2 查询代价的度量 353
13.3.1 基本算法 354
13.3 选择运算 354
13.3.2 利用索引的选择 355
13.3.4 复杂选择的实现 356
13.3.3 涉及比较的选择 356
13.4 排序 357
13.5 连接运算 359
13.5.2 块嵌套循环连接 360
13.5.1 嵌套循环连接 360
13.5.3 索引嵌套循环连接 361
13.5.4 归并连接 362
13.5.5 散列连接 364
13.6.2 投影 368
13.6.1 去除重复 368
13.5.6 复杂连接 368
13.6 其他运算 368
13.6.4 外连接 369
13.6.3 集合运算 369
13.7.1 实体化 370
13.7 表达式计算 370
13.6.5 聚集 370
13.7.2 流水线 371
术语回顾 374
13.8 小结 374
实践习题 375
文献注解 376
习题 376
14.1 概述 378
第14章 查询优化 378
14.2.1 等价规则 379
14.2 关系表达式的转换 379
14.2.2 转换的例子 381
14.2.3 连接的次序 382
14.2.4 等价表达式的枚举 383
14.3.1 目录信息 384
14.3 表达式结果集统计大小的估计 384
14.3.2 选择运算结果大小的估计 385
14.3.3 连接运算结果大小的估计 386
14.3.4 其他运算的结果集大小的估计 387
14.4.1 查询执行技术的相互作用 388
14.4 选择执行计划 388
14.3.5 不同取值个数的估计 388
14.4.2 基于代价的优化 389
14.4.3 启发式优化 391
14.4.4 嵌套子查询的优化 393
14.5.1 视图维护 394
14.5 物化视图 394
14.5.2 增量的视图维护 395
14.6 小结 397
14.5.3 查询优化和物化视图 397
术语回顾 398
实践习题 399
文献注解 400
习题 400
15.1 事务概念 404
第15章 事务 404
第五部分 事务管理 404
15.2 事务状态 406
15.3 原子性和持久性的实现 407
15.4 并发执行 408
15.5.1 冲突可串行化 411
15.5 可串行化 411
15.6 可恢复性 413
15.5.2 视图可串行化 413
15.7 隔离性的实现 414
15.6.2 无级联调度 414
15.6.1 可恢复调度 414
15.8 可串行化判定 415
15.9 小结 416
习题 417
实践习题 417
术语回顾 417
文献注解 418
16.1.1 锁 419
16.1 基于锁的协议 419
第16章 并发控制 419
16.1.2 锁的授予 421
16.1.3 两阶段封锁协议 422
16.1.4 封锁的实现 423
16.1.5 基于图的协议 424
16.2.2 时间戳排序协议 426
16.2.1 时间戳 426
16.2 基于时间戳的协议 426
16.2.3 Thomas写规则 427
16.3 基于有效性检查的协议 428
16.4 多粒度 429
16.5.1 多版本时间戳排序 431
16.5 多版本机制 431
16.5.2 多版本两阶段封锁 432
16.6.1 死锁预防 433
16.6 死锁处理 433
16.6.3 死锁检测与恢复 434
16.6.2 基于超时的机制 434
16.7.2 插入 436
16.7.1 删除 436
16.7 插入与删除操作 436
16.7.3 幻象现象 437
16.8.2 游标稳定性 438
16.8.1 二级一致性 438
168 弱一致性级别 438
16.9 索引结构中的并发 439
16.8.3 SQL中的弱一致性级别 439
16.10 小结 441
实践习题 443
术语回顾 443
习题 445
文献注解 446
17.2.1 存储器类型 447
17.2 存储器结构 447
第17章 恢复系统 447
17.1 故障分类 447
17.2.2 稳定存储器的实现 448
17.2.3 数据访问 449
17.4 基于日志的恢复 450
17.3 恢复与原子性 450
17.4.1 延迟的数据库修改 451
17.4.2 立即的数据库修改 452
17.4.3 检查点 454
17.5.3 检查点 455
17.5.2 事务回滚 455
17.5 并发事务的恢复 455
17.5.1 与并发控制的交互 455
17.6.1 日志记录缓冲 456
17.6 缓冲区管理 456
17.5.4 重启动恢复 456
17.6.2 数据库缓冲 457
17.7 非易失性存储器数据丢失的故障 458
17.6.3 操作系统在缓冲区管理中的作用 458
17.8.1 逻辑undo日志 459
17.8 高级恢复技术 459
17.8.4 重启动恢复 460
17.8.3 检查点 460
17.8.2 事务回滚 460
17.8.6 ARIES 461
17.8.5 模糊检查点 461
17.9 远程备份系统 464
17.10 小结 465
实践习题 467
术语回顾 467
文献注解 468
习题 468
18.1 决策支持系统 472
第六部分 数据挖掘与信息检索第18章 数据分析与挖掘 472
18.2.1 联机分析处理 473
18.2 数据分析和联机分析处理 473
18.2.2 OLAP实现 476
18.2.3 扩展的聚集 477
18.2.4 排名 478
18.2.5 分窗 480
18.3.1 数据仓库的成分 481
18.3 数据仓库工程 481
18.3.2 数据仓库模式 482
18.4.1 数据挖掘应用 483
18.4 数据挖掘 483
18.4.2 分类 484
18.4.3 关联规则 488
18.4.4 其他类型的关联 489
18.4.5 聚类 490
18.5 小结 491
18.4.6 其他类型的挖掘 491
术语回顾 492
习题 493
实践习题 493
文献注解 494
19.1 概述 496
第19章 信息检索 496
19.2.1 使用TF-IDF方法排级 497
19.2 使用术语的相关排级 497
19.2.2 基于相似性的检索 498
19.3.1 流行度排序 499
19.3 使用超链接的相关性 499
19.3.2 PageRank 500
19.3.3 其他的流行度度量 501
19.4 同义词、多义词和本体 502
19.5 文档的索引 503
19.7 Web搜索引擎 504
19.6 检索的有效性度量 504
19.8.2 查询结构化数据 505
19.8.1 信息抽取 505
19.8 信息检索和结构化数据 505
19.9 目录 506
19.8.3 问题解答 506
19.10 小结 507
术语回顾 508
习题 509
实践习题 509
文献注解 510
20.1 集中式与客户-服务器体系结构 512
20.1.1 集中式系统 512
第七部分 系统体系结构 512
第20章 数据库系统体系结构 512
20.1.2 客户-服务器系统 513
20.2.1 事务服务器进程结构 514
20.2 服务器系统体系结构 514
20.2.2 数据服务器 515
20.3 并行系统 516
20.3.1 加速比和扩展比 517
20.3.2 互连网络 518
20.3.3 并行数据库体系结构 519
20.4 分布式系统 521
20.4.2 实现问题 522
20.4.1 分布式数据库的一个例子 522
20.5.1 局域网 523
20.5 网络类型 523
20.5.2 广域网 524
术语回顾 525
20.6 小结 525
实践习题 526
文献注解 527
习题 527
21.2.1 划分技术 528
21.2 I/O并行 528
第21章 并行数据库 528
21.1 概述 528
21.2.2 划分技术比较 529
21.2.3 偏斜的处理 530
21.4 查询内并行 531
21.3 查询间并行 531
21.5.1 并行排序 532
21.5 操作内并行 532
21.5.2 并行连接 533
21.5.3 其他的关系操作 536
21.6.1 流水线并行 537
21.6 操作间并行 537
21.5.4 操作的并行计算的代价 537
21.6.3 查询优化 538
21.6.2 独立的并行 538
21.7 并行系统设计 539
术语回顾 540
21.8 小结 540
习题 541
实践习题 541
文献注解 542
22.2.1 数据复制 544
22.2 分布式数据存储 544
第22章 分布式数据库 544
22.1 同构和异构数据库 544
22.2.2 数据分片 545
22.2.3 透明性 546
22.3.1 系统结构 547
22.3 分布式事务 547
22.4.1 两阶段提交 548
22.4 提交协议 548
22.3.2 系统故障模式 548
22.4.3 事务处理的可选择模型 551
22.4.2 三阶段提交 551
22.5 分布式数据库的并发控制 552
22.5.1 封锁协议 553
22.5.3 弱一致性复制 555
22.5.2 时间戳 555
22.5.4 死锁处理 556
22.6 可用性 557
22.6.1 基于多数的方法 558
22.6.4 与远程备份比较 559
22.6.3 站点重建 559
22.6.2 读一个、写所有可用的方法 559
22.6.5 协调器的选择 560
22.7.2 简单的连接处理 561
22.7.1 查询转换 561
22.7 分布式查询处理 561
22.7.3 半连接策略 562
22.8.1 数据的统一视图 563
22.8 异构分布式数据库 563
22.7.4 利用并行性的连接策略 563
22.9 目录系统 564
22.8.2 查询处理 564
22.9.2 LDAP:轻便目录访问协议 565
22.9.1 目录访问协议 565
22.10 小结 568
术语回顾 569
实践习题 570
习题 571
文献注解 572
23.1.1 瓶颈的位置 574
23.1 性能调整 574
第八部分 其他主题 574
第23章 高级应用开发 574
23.1.3 硬件的调整 575
23.1.2 可调参数 575
23.1.6 使用物化视图 577
23.1.5 索引的调整 577
23.1.4 模式的调整 577
23.1.7 物理设计的自动调整 578
23.1.8 事务的调整 579
23.2.1 任务集 580
23.2 性能基准程序 580
23.1.9 性能模拟 580
23.2.3 TPC基准程序 581
23.2.2 数据库应用类型 581
23.2.4 OODB基准程序 582
23.3.1 SQL标准 583
23.3 标准化 583
23.3.2 数据库连接标准 584
23.3.4 基于XML的标准 585
23.3.3 对象数据库标准 585
23.5 小结 586
23.4 应用系统移植 586
实践习题 587
术语回顾 587
文献注解 588
习题 588
24.2 数据库中的时间 590
24.1 动机 590
第24章 高级数据类型和新的应用 590
24.2.1 SQL中的时间描述 591
24.3.1 几何信息的表示 592
24.3 空间与地理数据 592
24.2.2 时态查询语言 592
24.3.2 设计数据库 593
24.3.3 地理数据 594
24.3.4 空间查询 595
24.3.5 空间数据的索引 596
24.4.1 多媒体数据格式 599
24.4 多媒体数据库 599
24.4.3 基于相似性的检索 600
24.4.2 连续媒体数据 600
24.5.1 移动计算模型 601
24.5 移动计算和个人数据库 601
24.5.3 广播数据 602
24.5.2 路由和查询处理 602
24.5.4 连接断开与一致性 603
24.6 小结 604
实践习题 605
术语回顾 605
文献注解 606
习题 606
25.1.1 TP监控器体系结构 608
25.1 事务处理监控器 608
第25章 高级事务处理 608
25.1.2 使用TP监视器进行应用协调 610
25.2 事务工作流 611
25.2.1 工作流说明 612
25.2.3 工作流的执行 613
25.2.2 工作流的故障原子性需求 613
25.2.5 工作流管理系统 614
25.2.4 工作流的恢复 614
25.3.1 电子目录 615
25.3 电子商务 615
25.3.3 订单结算 616
25.3.2 市场 616
25.4 主存数据库 617
25.5 实时事务系统 618
25.6.1 不可串行化的执行 619
25.6 长事务 619
25.6.3 嵌套事务和多级事务 620
25.6.2 并发控制 620
25.6.4 补偿事务 621
25.7 多数据库中的事务管理 622
25.6.5 实现问题 622
25.7.1 两级串行化 623
25.7.2 保证全局串行化 624
术语回顾 625
25.8 小结 625
实践习题 626
文献注解 627
习题 627
26.2.1 交互式终端界面 630
26.2 用户界面 630
第九部分 实例研究 630
第26章 PostgreSQL 630
26.1 概述 630
26.2.3 编程语言接口 631
26.2.2 图形界面 631
26.3.1 PostgreSQL类型 633
26.3 SQL变化和扩展 633
26.3.2 规则和其他主动数据库特征 634
26.3.3 可扩展性 636
26.4 PostgreSQL中的事务管理 638
26.4.1 PostgreSQL的并发控制 639
26.5 存储和索引 644
26.4.2 恢复 644
26.5.2 索引 645
26.5.1 表 645
26.6.1 查询重写 646
26.6 查询处理和优化 646
26.6.3 查询执行器 647
26.6.2 查询规划和优化 647
26.7 系统结构 648
26.6.4 触发器和约束 648
文献注解 649
27.1.1 数据库设计工具 650
27.1 数据库设计和查询工具 650
第27章 Oracle 650
27.2.1 对象-关系特性 651
27.2 SQL的变化和扩展 651
27.1.2 查询工具 651
27.3 存储和索引 652
27.2.3 触发器 652
27.2.2 联机分析处理 652
27.3.3 表 653
27.3.2 段 653
27.3.1 表空间 653
27.3.5 索引 654
27.3.4 按索引组织的表 654
27.3.6 位图索引 655
27.3.9 域索引 656
27.3.8 连接索引 656
27.3.7 基于函数的索引 656
27.3.10 划分 657
27.4.1 执行方法 658
27.4 查询处理和优化 658
27.3.11 物化视图 658
27.4.2 优化 659
27.4.4 并行执行 661
27.4.3 SQL调优顾问 661
27.5.1 并发控制 662
27.5 并发控制与恢复 662
27.5.2 恢复的基本结构 663
27.6.1 专用服务器:内存结构 664
27.6 系统体系结构 664
27.5.3 Oracle数据卫士 664
27.6.4 Oracle Real Application Clusters 665
27.6.3 共享服务器 665
27.6.2 专用服务器:进程结构 665
27.7.3 外部数据源 666
27.7.2 分布式数据库 666
27.7 复制、分布以及外部数据 666
27.7.1 复制 666
27.9 数据挖掘 667
27.8.3 Oracle Enterprise Manager 667
27.8 数据库管理工具 667
27.8.1 Automatic Workload Repository 667
27.8.2 数据库资源管理 667
文献注解 668
28.1 概述 669
第28章 IBM DB2 Universal Database 669
28.3.1 XML特性 670
28.3 SQL的变化和扩展 670
28.2 数据库设计工具 670
28.3.2 数据类型的支持 671
28.3.6 Web服务 672
28.3.5 索引扩展和约束 672
28.3.3 用户自定义函数和方法 672
28.3.4 大对象 672
28.4.1 存储体系结构 673
28.4 存储和索引 673
28.3.7 消息队列 673
28.4.3 表、记录和索引 674
28.4.2 缓冲池 674
28.5 多维聚类 675
28.5.1 块索引 676
28.6 查询处理和优化 677
28.5.4 对现有技术的影响 677
28.5.2 块映射 677
28.5.3 设计考虑 677
28.6.1 存取方法 678
28.6.5 查询优化 679
28.6.4 多处理器查询处理特性 679
28.6.2 连接、聚集和集合操作 679
28.6.3 对复杂SQL处理的支持 679
28.7.2 MQT的维护 680
28.7.1 发送查询到MQT 680
28.7 物化的查询表 680
28.8.2 优化 681
28.8.1 配置 681
28.8 DB2中的自治特性 681
28.9 工具和实用程序 682
28.10.2 提交和回滚 683
28.10.1 并发与隔离 683
28.10 并发控制和恢复 683
28.11 系统体系结构 684
28.10.3 日志和恢复 684
28.12 复制、分布和外部数据 685
文献注解 686
28.13 商务智能特性 686
29.1.2 数据库查询和调整工具 687
29.1.1 数据库开发和可视化数据库工具 687
第29章 Microsoft SQL Server 687
29.1 管理、设计和查询工具 687
29.1.3 SQL Server Management Studio 690
29.2.2 查询语言增强 691
29.2.1 数据类型 691
29.2 SQL的变体和扩展 691
29.2.3 例程 692
29.3.2 文件组中的空间管理 693
29.3.1 文件组 693
29.3 存储和索引 693
29.3.7 扫描和预读 694
29.3.6 在线创建索引 694
29.3.3 表 694
29.3.4 索引 694
29.3.5 分区 694
29.4.2 查询简化 695
29.4.1 优化处理概述 695
29.4 查询处理及优化 695
29.4.4 更新计划 696
29.4.3 重排序和基于代价的优化 696
29.4.7 查询执行 697
29.4.6 部分搜索和启发式搜索 697
29.4.5 优化时的数据分析 697
29.5.2 封锁 698
29.5.1 事务 698
29.5 并发与恢复 698
29.5.3 恢复和可用性 699
29.6 系统体系结构 700
29.6.3 安全 701
29.6.2 内存管理 701
29.6.1 服务器的线程池 701
29.8 分布式异构查询处理 702
29.7 数据访问 702
29.9.2 复制选项 703
29.9.1 复制模型 703
29.9 复制 703
29.10.1 .NET基本概念 704
29.10 .NET 中的服务器编程 704
29.10.2 SQLCLR宿主 705
29.10.3 可扩展性协定 706
29.11 SQL Server2005中对XML的支持 707
29.11.3 查询和更新XML数据类型 708
29.11.2 验证和标定XML数据类型 708
29.11.1 本地存储和组织XML 708
29.12 SQL Server服务代理 710
29.11.4 XQuery表达式的执行 710
29.13.1 SQL Server集成服务 712
29.13 数据仓库和商务智能 712
29.13.2 SQL Server分析服务 713
文献注解 714
29.13.3 SQL Server报表服务 714
参考文献 716
索引 742