第1章 概述 1
1.1 数据库的概念 1
1.1.1 数据模型 1
1.1.2 数据库操作 2
1.1.3 数据库管理 2
1.1.4 DB客户机、服务器、环境 3
1.2 DBE体系结构概念 3
1.2.1 服务 4
1.2.2 组件和子系统 4
1.2.3 站点 5
1.3 典型的DBE体系结构 5
1.3.1 必需的服务 5
1.3.2 基础的服务 6
1.3.3 期望的服务 6
1.3.4 期望的子系统 7
1.3.5 典型的DBMS服务 8
1.3.6 概要级的图 8
1.4 一种新的分类法 9
1.4.1 COS分布和部署 10
1.4.2 COS封闭或开放 10
1.4.3 模式和数据可见性 11
1.4.4 模式和数据控制 12
1.5 一个DDBE的例子 13
1.6 一个DDBE体系结构的参考 14
1.6.1 DDBE信息体系结构 14
1.6.2 DDBE软件体系结构 15
1.7 分布式系统中的事务管理 17
1.8 本章小结 23
1.9 术语表 23
参考文献 24
第2章 数据分布的方法 25
2.1 设计方法 26
2.1.1 本地化数据 27
2.1.2 分布式数据 27
2.2 分片 28
2.2.1 垂直分片 28
2.2.2 水平分片 30
2.2.3 混合分片 33
2.2.4 垂直分片生成指南 35
2.2.5 垂直分片正确性规则 42
2.2.6 水平分片生成指南 42
2.2.7 水平分片正确性规则 46
2.2.8 复制 47
2.3 分布透明性 47
2.3.1 位置透明性 47
2.3.2 分片透明性 48
2.3.3 复制透明性 48
2.3.4 位置、分片和复制透明性 48
2.4 分布对用户查询的影响 48
2.4.1 无GDD——无透明性 49
2.4.2 包含位置信息的GDD——位置透明性 50
2.4.3 分片、复制和位置透明性 51
2.5 一个更复杂的例子 52
2.5.1 位置、分片和复制透明性 53
2.5.2 位置和复制透明性 53
2.5.3 无透明性 54
2.6 本章小结 55
2.7 术语表 55
参考文献 57
练习题 57
第3章 数据库控制 59
3.1 认证 59
3.2 访问权限 61
3.3 语义完整性控制 61
3.4 分布式语义完整性控制 68
3.4.1 编译时验证 70
3.4.2 运行时验证 70
3.4.3 执行后验证 70
3.5 语义完整性的执行代价 70
3.6 本章小结 77
3.7 术语表 77
参考文献 78
练习题 78
第4章 查询优化 80
4.1 样例数据库 80
4.2 关系代数 81
4.3 关系代数算子的计算 87
4.3.1 选择计算 87
4.3.2 连接计算 90
4.4 集中式系统中的查询处理 93
4.4.1 查询解析和转换 94
4.4.2 查询优化 95
4.4.3 代码产生 107
4.5 分布式系统中的查询处理 108
4.5.1 将全局查询映射到本地查询中 108
4.5.2 分布式查询优化 112
4.5.3 异构数据库系统 125
4.6 本章小结 127
4.7 术语表 128
参考文献 130
练习题 132
第5章 并发控制 135
5.1 术语 135
5.1.1 数据库 135
5.1.2 事务 136
5.2 多事务处理系统 140
5.2.1 调度 140
5.2.2 冲突 141
5.2.3 等价 142
5.2.4 可串行化调度 143
5.2.5 高级事务类型 147
5.2.6 分布式系统中的事务 148
5.3 集中式DBE并发控制 149
5.3.1 基于加锁的并发控制算法 150
5.3.2 时间戳并发控制算法 156
5.3.3 乐观并发控制算法 159
5.3.4 真实DBMS(Oracle)中的并发控制 160
5.4 分布式数据库系统中的并发控制 168
5.4.1 分布式系统中的两阶段加锁 171
5.4.2 分布式时间戳并发控制 175
5.4.3 分布式乐观并发控制 178
5.4.4 联邦式/多数据库并发控制 178
5.5 本章小结 179
5.6 术语表 179
参考文献 182
练习题 184
第6章 死锁处理 186
6.1 死锁的定义 186
6.2 集中式系统中的死锁 186
6.2.1 预防死锁 186
6.2.2 避免死锁 187
6.2.3 死锁检测和解除 190
6.3 分布式系统中的死锁 190
6.3.1 事务站点问题 191
6.3.2 事务控制问题 192
6.3.3 分布式死锁预防 192
6.3.4 分布式死锁避免 192
6.3.5 分布式死锁检测 197
6.4 本章小结 203
6.5 术语表 204
参考文献 205
练习题 205
第7章 复制控制 207
7.1 复制控制方案 208
7.1.1 同步复制控制方法 208
7.1.2 异步复制控制 209
7.2 复制控制算法 210
7.2.1 体系上的考虑 211
7.2.2 主-从复制控制算法 211
7.2.3 分布式投票算法 212
7.2.4 多数一致性算法 213
7.2.5 循环令牌算法 215
7.2.6 复制控制的广泛投票算法 217
7.2.7 发布更新的方法 219
7.3 本章小结 220
7.4 术语表 220
参考文献 222
练习题 222
第8章 故障和提交协议 224
8.1 术语 224
8.1.1 软故障 224
8.1.2 硬故障 224
8.1.3 提交协议 225
8.1.4 事务状态 227
8.1.5 数据库更新模式 228
8.1.6 事务日志 228
8.1.7 DBMS存储类型 229
8.1.8 日志目录 230
8.2 撤销/重做和数据库恢复 233
8.3 事务状态的再访问 237
8.3.1 延迟更新事务步骤 237
8.3.2 立即更新事务步骤 237
8.4 数据库恢复 238
8.4.1 日志进程 238
8.4.2 恢复过程 239
8.5 其他类型的数据库恢复 242
8.5.1 恢复到现在 242
8.5.2 恢复到过去的一个时间点 242
8.5.3 事件恢复 242
8.6 基于重做/撤销过程取消的恢复 244
8.7 完全恢复算法 245
8.8 分布式提交协议 246
8.8.1 体系结构需求 247
8.8.2 分布式提交协议 248
8.8.3 一阶段提交协议 248
8.8.4 两阶段提交协议 250
8.8.5 三阶段提交协议 263
8.8.6 网络分区和基于法定人数的提交协议 267
8.9 本章小结 268
8.10 术语表 269
参考文献 270
练习题 271
第9章 DDBE安全 273
9.1 密码学 273
9.1.1 常规加密 274
9.1.2 报文摘要和消息验证码 277
9.1.3 公钥密码 277
9.1.4 数字签名 279
9.1.5 数字证书和认证授权 280
9.2 固定通信 280
9.2.1 SSL/TLS 281
9.2.2 VPN、IPSec和SSH 281
9.3 固定数据 282
9.3.1 认证和授权 282
9.3.2 数据加密 283
9.3.3 非法输入和SQL注入 284
9.3.4 数据推理 287
9.3.5 数据审计 288
9.4 体系结构问题 288
9.5 一个典型的部署 289
9.6 本章小结 289
9.7 术语表 290
参考文献 292
练习题 293
第10章 数据建模概述 294
10.1 数据建模语言和数据模型的分类 295
10.1.1 CLP分类系统 296
10.1.2 3LM分类系统 297
10.1.3 其他分类方法 299
10.2 CLP分类系统中的概念层 299
10.2.1 概念层问题 299
10.2.2 概念层目标 302
10.3 概念建模语言举例 304
10.4 数据模型的使用 317
10.4.1 CDM 317
10.4.2 LDM 319
10.4.3 PDM 320
10.5 使用建模的多种类型 321
10.5.1 转换成多个模型 322
10.5.2 正向工程 322
10.5.3 逆向工程 323
10.6 本章小结 323
10.7 术语表 324
参考文献 326
练习题 327
第11章 逻辑数据模型 328
11.1 RDM 329
11.1.1 命名 329
11.1.2 正向工程规则 331
11.1.3 逆向工程的规则 336
11.1.4 特殊的考虑 336
11.2 网状数据模型 337
11.2.1 命名 338
11.2.2 正向工程规则 339
11.2.3 逆向工程规则 340
11.2.4 特殊的考虑 341
11.3 层次数据模型 341
11.3.1 命名 341
11.3.2 正向工程规则 342
11.3.3 逆向工程规则 343
11.3.4 特殊的考虑 343
11.4 面向对象数据模型 343
11.4.1 命名 344
11.4.2 正向工程规则 345
11.4.3 逆向工程规则 345
11.4.4 特殊的考虑 346
11.5 本章小结 346
11.6 术语表 346
参考文献 349
练习题 350
第12章 传统DDBE体系架构 351
12.1 对传统DDBE体系架构应用分类学 352
12.1.1 分类传统的DDBMS体系架构 352
12.1.2 联邦数据库体系架构分类 354
12.1.3 非联邦数据库体系架构分类 355
12.2 MDBS体系架构分类 356
12.3 开发DDBE的方法 357
12.3.1 自顶向下的方法 357
12.3.2 自底向上的方法 358
12.4 部署DDBE软件 359
12.5 集成面临的挑战 360
12.5.1 软件集成问题 361
12.5.2 模式集成的问题 362
12.6 模式集成示例 371
12.6.1 转化步骤 371
12.6.2 输出模式生成 373
12.6.3 发现和解决步骤 373
12.6.4 重构步骤 373
12.7 现有商业DDBE示例 374
12.7.1 商业系统中的模式集成 376
12.7.2 现有产品的软件集成 376
12.7.3 Microsoft Access 377
12.7.4 InfoSphere Federation Server 378
12.8 示例 378
12.8.1 示例数据库 378
12.8.2 数据库分布 379
12.8.3 设置 380
12.8.4 设置数据源名称 381
12.8.5 将数据源链接至Federation Server 386
12.8.6 实验 390
12.8.7 从Access和Federation Server数据库进行查询 391
12.8.8 从Access和Federation Server数据库进行修改 392
12.9 本章小结 395
12.10 术语表 395
参考文献 397
练习题 398
第13章 新DDBE体系架构 399
13.1 协作式DDBE 399
13.1.1 子系统概述 400
13.1.2 实现说明 406
13.2 点到点DDBE 410
13.2.1 P2P概述 410
13.2.2 实现细节 412
13.3 比较COOP与P2P 412
13.3.1 COOP与P2P 413
13.3.2 COOP/P2P与传统DDBE 413
13.3.3 COOP/P2P与其他DDBE 413
13.4 本章小结 414
13.5 术语表 414
参考文献 415
练习题 416
第14章 DDBE平台需求 417
14.1 DDBE体系架构词汇 418
14.1.1 组件和子系统 418
14.1.2 服务消费者和服务提供者 419
14.1.3 体系架构可视化表示 419
14.1.4 中间件 422
14.2 基本平台需求 424
14.2.1 开发需求 424
14.2.2 部署需求 427
14.2.3 执行需求 429
14.3 分布式处理平台需求 433
14.3.1 远程性需求 433
14.3.2 目录服务需求 440
14.4 分布式数据平台需求 442
14.4.1 体系架构安全需求 442
14.4.2 数据库连接需求 444
14.4.3 事务管理需求 445
14.5 概述第15~19章 使用的DDBE平台 445
14.5.1 Java消息服务(JMS)平台 446
14.5.2 Java 2企业版(J2EE)平台 446
14.5.3 Microsoft.NET基于框架平台 446
14.6 本章小结 447
14.7 术语表 448
参考文献 451
练习题 451
第15章 JMS开发工具包 452
15.1 Java消息服务概述 453
15.1.1 体系架构概述 454
15.1.2 消息概述 458
15.1.3 消息域 465
15.1.4 JMS API构件 467
15.2 JMS Provider实现方法 470
15.2.1 Apache ActiveMQ 471
15.2.2 OpenJMS 472
15.3 JMS开发工具包(JMS-SKIT)框架概述 474
15.3.1 框架目标 474
15.3.2 框架软件包概述 476
15.4 使用JMS-SKIT框架 479
15.4.1 示例扩展概述 479
15.4.2 创建新扩展 481
15.4.3 改进基于JMS的框架 481
15.5 本章小结 482
15.6 术语表 482
参考文献 485
练习题 485
第16章 J2EE平台 486
16.1 Java 2企业版(J2EE)概述 486
16.1.1 基本J2EE术语 487
16.1.2 体系架构概述 489
16.1.3 开发概述 489
16.1.4 部署概述 490
16.2 J2EE对分布式处理平台需求的支持 490
16.2.1 J2EE远程代码执行 490
16.2.2 J2EE远程消息 492
16.2.3 J2EE目录服务 493
16.3 J2EE对分布式数据平台需求的支持 494
16.3.1 J2EE安全性 494
16.3.2 Java数据库连接 495
16.3.3 J2EE事务 495
16.4 J2EE平台实现方法 496
16.4.1 JBoss 496
16.4.2 Apache Geronimo 497
16.4.3 JOnAS 497
16.4.4 其他J2EE平台实现方法 497
16.5 本章小结 498
16.6 术语表 498
参考文献 501
练习题 501
第17章 J2EE开发工具包 502
17.1 Java 2企业版开发工具包(J2EE-SKIT)概述 502
17.1.1 J2EE-SKIT目标 503
17.1.2 J2EE-SKIT体系架构概述 504
17.1.3 J2EE-SKIT框架体系架构概括 507
17.1.4 J2EE-SKIT扩展体系架构概括 507
17.2 J2EE-SKIT设计概括 509
17.2.1 J2EE-SKIT框架设计概括 510
17.2.2 J2EE-SKIT扩展设计概括 512
17.2.3 参数类型接口 514
17.2.4 例外类型类 515
17.3 本章小结 516
17.4 术语表 517
参考文献 518
练习题 519
第18章 微软.NET平台 520
18.1 平台概括 521
18.1.1 基本的平台特定的词汇术语 522
18.1.2 体系架构概述 527
18.1.3 开发概述 528
18.1.4 程序集部署概括 529
18.2 对分布式处理平台需求的支持 533
18.2.1 远程代码执行需求 533
18.2.2 远程消息请求 534
18.2.3 目录服务需求 534
18.3 分布式数据平台需求 534
18.3.1 .NET安全性 535
18.3.2 ADO.NET数据库连接 535
18.3.3 .NET事务 535
18.4 本章小结 536
18.5 术语表 536
参考文献 538
练习题 539
第19章 DNET开发工具包 540
19.1 DNET-SKIT概述 540
19.1.1 DNET-SKIT目标 541
19.1.2 DNET-SKIT体系架构概述 542
19.1.3 DNET-SKIT扩展体系架构概述 545
19.2 DNET-SKIT设计概述 547
19.2.1 DNET-SKIT框架设计概述 548
19.2.2 DNET-SKIT扩展设计概述 550
19.3 本章小结 554
19.4 术语表 555
参考文献 556
练习题 556