《数据库与事务处理》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)Philip M.Lewis,(美)Arthur Bernstein,(美)Michael Kifer著;施伯乐,周向东,方锦城等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2005
  • ISBN:7111157184
  • 页数:729 页
图书介绍:本书系统地对数据库和事务处理应用的设计和实现进行介绍。

目录出版者的话专家指导委员会译者序前言第一部分 绪论第1章 数据库和事务概述 2

1.1 什么是数据库和事务 2

1.2 现代数据库和事务处理系统的特点 4

1.3 实现和支持数据库与事务处理系统的主要成员 6

1.4 决策支持系统——OLAP和OLTP 7

1.5 练习 8

第2章 进阶 10

2.1 案例研究:学生注册系统 10

2.2 关系数据库概述 10

2.3 怎样使程序成为事务 14

2.5 练习 18

2.4 参考书目 18

第3章 案例研究:开发学生注册系统 20

3.1 软件工程方法学 20

3.2 需求文档 21

3.3 需求分析——新问题 26

3.4 应用程序生成器 27

3.5 图形用户界面和对象 27

3.6 事件和过程 30

3.7 访问数据库和执行事务 32

3.8 详细说明学生注册系统 33

3.9 规格说明文档 34

3.10 参考书目 35

3.11 练习 35

4.1 什么是数据模型 38

第二部分 数据库管理第4章 关系数据模型 38

4.2 关系模型 40

4.2.1 基本概念 41

4.2.2 完整性约束 43

4.3 SQL——数据定义子语言 48

4.3.1 指定关系类型 49

4.3.2 系统目录 49

4.3.3 键约束 50

4.3.4 处理空缺信息 50

4.3.5 语义约束 51

4.3.6 用户自定义域 53

4.3.7 外键约束 54

4.3.8 反应性约束 56

4.3.9 数据库视图 58

4.3.10 修改已有的定义 59

4.3.11 SQL-模式 60

4.3.12 访问控制 60

4.4 参考书目 62

4.5 练习 62

第5章 数据库设计Ⅰ:实体-联系模型 64

5.1 E-R方法的概念建模 64

5.2 实体和实体类型 65

5.3 联系和联系类型 67

5.4 E-R方法的高级特性 71

5.4.1 实体类型层次结构 71

5.4.2 参与约束 74

5.5 一个经纪公司的例子 76

5.6 E-R方法的局限性 79

5.7 案例研究:学生注册系统的设计 82

5.8 参考书目 86

5.9 练习 86

第6章 查询语言Ⅰ:关系代数和SQL 88

6.1 关系代数:在SQL的覆盖之下 88

6.1.1 基本运算符 89

6.1.2 导出运算符 96

6.2 SQL的查询子语言 101

6.2.1 简单的SQL查询 101

6.2.2 集合运算 106

6.2.3 嵌套查询 108

6.2.4 数据的聚合 112

6.2.5 简单查询计算算法 117

6.2.6 再论SQL中的视图 118

6.2.7 空值的窘境 122

6.3 在SQL中修改关系实例 123

6.4 参考书目 127

6.5 练习 127

第7章 查询语言Ⅱ:关系演算和可视化查询语言 131

7.1 元组关系演算 131

7.2 通过元组关系演算理解SQL 138

7.3 域关系演算和可视化查询语言 140

7.4 可视化查询语言:QBE和PC数据库 143

7.5 关系代数和关系演算之间的联系 148

7.6 SQL:1999中的递归查询 150

7.8 练习 155

7.7 参考书目 155

第8章 数据库设计Ⅱ:关系规范化理论 157

8.1 冗余所带来的问题 157

8.2 分解 158

8.3 函数依赖 160

8.4 函数依赖的性质 161

8.5 范式 165

8.6 分解的性质 167

8.6.1 无损分解与有损分解 168

8.6.2 依赖保持分解 170

8.7 分解BCNF的一个算法 173

8.8 3NF模式的合成 175

8.8.1 最小覆盖 175

8.8.2 通过模式合成的3NF分解 177

8.8.3 通过3NF合成的BCNF分解 178

8.9 第四范式 180

8.10 高级4NF设计* 183

8.10.1 MVD和它们的性质 183

8.10.2 设计4NF的困难性 184

8.10.3 如何进行4NF分解 187

8.11 范式分解的总结 188

8.12 案例研究:学生注册系统的模式精化 188

8.13 性能调整问题:是否进行分解 190

8.14 参考书目 191

8.15 练习 192

第9章 触发器和动态数据库 195

9.1 触发器处理的语义 195

9.2 SQL:1999中的触发器 197

9.3 避免链式反应 202

9.4 参考书目 203

9.5 练习 203

第10章 真实世界中的SQL 205

10.1 在应用程序中执行SQL语句 205

10.2 嵌入式SQL 206

10.2.1 状态处理 208

10.2.2 会话、连接和事务 209

10.2.3 执行事务 210

10.2.4 游标 212

10.2.5 服务器存储过程 216

10.3 再论完整性约束 218

10.4 动态SQL 219

10.4.1 动态SQL的语句预备 220

10.4.2 预备语句和描述符区 222

10.4.3 游标 224

10.4.4 服务器端的存储过程 224

10.5 JDBC和SQLJ 225

10.5.1 JDBC的基本概念 225

10.5.2 预处理语句 227

10.5.3 结果集和游标 227

10.5.4 获取结果集的信息 229

10.5.5 状态处理 230

10.5.6 执行事务 230

10.5.8 示例 231

10.5.9 SQLJ:Java的语句级接口 231

10.5.7 服务器端的存储过程 231

10.6 ODBC* 234

10.6.1 预处理语句 235

10.6.2 游标 236

10.6.3 状态处理 238

10.6.4 执行事务 238

10.6.5 服务器端的存储过程 238

10.6.6 示例 239

10.7 比较 240

10.8 参考书目 240

10.9 练习 241

第11章 数据的物理组织和索引 243

11.1 磁盘组织 243

11.2 堆文件 247

11.3 排序文件 249

11.4 索引 251

11.4.1 聚簇索引与非聚簇索引 254

11.4.2 稀疏索引和稠密索引 256

11.4.3 包含多个属性的查找键 257

11.5 多级索引 259

11.5.1 索引顺序访问 261

11.5.2 B+树 263

11.6 散列索引 269

11.6.1 静态散列 269

11.6.2 动态散列算法 271

11.7 特殊用途的索引 277

11.7.1 位图索引 277

11.8 调整问题:为一个应用选择索引 278

11.7.2 联结索引 278

11.9 参考书目 279

11.10 练习 279

第12章 案例研究:实现学生注册系统 282

12.1 设计文档 282

12.1.1 文档结构 283

12.1.2 设计评审 284

12.2 测试计划 285

12.3 项目计划 287

12.4 编程 289

12.5 渐进式开发 290

12.6 学生注册系统的设计和编程 291

12.6.1 完成数据库设计:完整性约束 291

12.6.2 设计注册事务 293

12.6.3 部分注册事务程序 295

12.7 参考书目 297

12.8 练习 297

第13章 查询处理基础 298

13.1 外部排序 298

13.2 计算投影、并和差 301

13.3 计算选择 303

13.3.1 具有简单条件的选择 303

13.3.2 存取路径 304

13.3.3 具有复杂条件的选择 306

13.4 计算联结 307

13.4.1 用嵌套循环来计算联结 307

13.4.2 排序-合并联结 309

13.4.3 散列联结 310

13.5 多关系联结 311

13.6 计算聚合函数 313

13.7 调优问题:对物理数据库设计的影响 313

13.8 参考书目 314

13.9 练习 314

第14章 查询优化概述 316

14.1 查询处理概述 316

14.2 基于代数等价的启发式优化 317

14.3 估计查询执行计划的代价 320

14.4 估计输出的大小 326

14.5 选择计划 327

14.6 调整问题:对查询设计的影响 330

14.7 参考书目 332

14.8 练习 333

第15章 事务处理概述 336

15.1 隔离性 336

15.1.1 可串行化 337

15.1.2 两段锁 338

15.1.3 死锁 340

15.1.4 关系数据库中的锁 341

15.1.5 隔离级别 342

15.1.6 锁粒度和意向锁 344

15.1.7 用意向锁的可串行化封锁策略 345

15.1.8 总结 346

15.2 原子性和持久性 346

15.2.1 先写日志 347

15.2.2 从大规模存储器失效中恢复 348

15.3 实现分布式事务 349

15.3.1 原子性和持久性——两阶段提交协议 350

15.3.2 全局可串行性和死锁 351

15.3.3 复制 352

15.3.4 总结 353

15.4 参考书目 353

15.5 练习 354

第三部分 数据库的高级主题第16章 对象数据库 356

16.1 关系数据模型的缺点 356

16.2 发展历史 361

16.3.1 对象和值 363

16.3 概念上的对象数据模型 363

16.3.2 类 364

16.3.3 类型 365

16.3.4 对象-关系数据库 367

16.4 ODMG标准 367

16.4.1 ODL:ODMG对象定义语言 370

16.4.2 OQL:ODMG对象查询语言 374

16.4.3 ODMG中的事务 377

16.4.4 ODMG中的对象操纵 378

16.4.5 语言绑定 378

16.5 SQL:1999中的对象 382

16.5.1 行类型 382

16.5.2 用户定义类型 383

16.5.3 对象 384

16.5.4 查询用户定义类型 385

16.5.5 更新用户定义类型 385

16.5.6 引用类型 387

16.5.7 集合类型 389

16.6 公共对象请求代理体系结构 389

16.6.1 CORBA基础 390

16.6.2 CORBA和数据库 394

16.7 小结 398

16.8 参考书目 398

16.9 练习 399

第17章 XML和Web数据 401

17.1 半结构化数据 401

17.2 XML概述 403

17.2.1 XML元素和数据库对象 406

17.2.2 XML属性 407

17.2.3 命名空间 409

17.2.4 文档类型定义 412

17.2.5 DTD作为数据定义语言的不足 414

17.3 XMLSchema 415

17.3.1 XMLSchema和命名空间 416

17.3.2 简单类型 418

17.3.3 复杂类型 422

17.3.4 一个完整的Schema文档 428

17.3.5 完整性约束 431

17.4 XML查询语言 436

17.4.1 XPath:一种轻量的XML查询语言 436

17.4.2 XSLT:XML的一种转换语言 442

17.4.3 XQuery:XML的一个功能完善的查询语言 450

17.4.4 小结 464

17.5 参考书目 464

17.6 练习 465

第18章 分布式数据库 469

18.1 应用设计者对数据库的观点 470

18.2 在不同数据库中分布数据 472

18.2.1 分段 472

18.2.2 更新和分段 474

18.2.3 复制 475

18.3 查询策略 476

18.3.1 全局查询优化 476

18.3.3 调整问题:分布式环境下的数据库设计和查询计划 481

18.3.2 多数据库系统的策略 481

18.4 参考书目 482

18.5 练习 482

第19章 OLAP和数据挖掘 484

19.1 OLAP和数据仓库 484

19.2 OLAP应用的多维模型 485

19.3 聚合 488

19.3.1 下钻、上卷、切片和切块 488

19.3.2 CUBE操作符 490

19.4 ROLAP和MOLAP 494

19.5 实现中的一些问题 495

19.6 数据挖掘 495

19.7 数据仓库的数据载入 499

19.9 练习 500

19.8 参考书目 500

第四部分 事务处理第20章 事务的ACID性质 504

20.1 一致性 504

20.2 原子性 506

20.3 持久性 507

20.4 隔离性 508

20.5 事务的ACID性质 510

20.6 参考书目 512

20.7 练习 512

第21章 事务模型 513

21.1 平坦事务 513

21.2 提供事务的结构 514

21.2.1 存储点 514

21.2.2 分布式事务 515

21.2.3 嵌套事务 518

21.2.4 多级事务 520

21.3 把应用分解成多个事务 523

21.3.1 链式事务 523

21.3.2 用可恢复队列调度事务 526

21.3.3 扩展事务 529

21.3.4 工作流和工作流管理系统 531

21.4 参考书目 534

21.5 练习 535

第22章 事务处理系统的体系结构 537

22.1 集中式系统中的事务处理 537

22.1.1 单用户系统的组织 537

22.1.2 集中式多用户系统的组织 538

22.2 分布式系统上的事务处理 539

22.2.1 分布式系统的组织 540

22.2.2 会话和上下文信息 544

22.2.3 队列事务处理 545

22.3 异构系统和TP监控器 546

22.3.1 事务管理器 547

22.3.2 TP监控器 548

22.4 TP监控器:通信和全局原子性 550

22.4.1 远程过程调用 551

22.4.2 对等通信 556

22.4.3 事务中异常情况的处理 558

22.5 因特网上的事务处理 560

22.5.1 一般的体系结构 561

22.5.2 因特网上事务系统的组织 563

22.6 参考书目 564

22.7 练习 564

第23章 隔离性的实现 566

23.1 调度和等价调度 567

23.1.1 串行化 570

23.1.2 冲突等价与观察等价 571

23.1.3 串行图 572

23.2 可恢复性、级联异常中止和严格性 574

23.3 并发控制的模型 576

23.4 立即更新的悲观并发控制策略 577

23.4.1 避免冲突 577

23.4.2 死锁 579

23.5.1 锁集和等待集的实现 580

23.5 立即更新的悲观并发控制的设计 580

23.5.2 两段锁 581

23.5.3 锁的粒度 582

23.6 对象和语义交换* 583

23.7 结构化事务模型中的隔离 587

23.7.1 存储点 587

23.7.2 链式事务 588

23.7.3 可恢复队列 588

23.7.4 嵌套事务 589

23.7.5 多级事务* 589

23.8 其他的并发控制 592

23.8.1 时间戳顺序的并发控制 593

23.8.2 乐观的并发控制 594

23.10 练习 597

23.9 参考书目 597

第24章 关系数据库中的隔离性 601

24.1 加锁 601

24.1.1 幻影 602

24.1.2 谓词加锁 603

24.2 加锁与SQL隔离级别 605

24.2.1 更新丢失、游标稳定性和更新锁 609

24.2.2 案例研究:正确性和非可串行级调度——学生注册系统 612

24.2.3 可串行化、SERIALIZABLE和正态的 617

24.3 粒度加锁:概念锁和索引锁 618

24.3.1 索引锁:无幻影的粒度加锁 619

24.3.2 对象数据库里的粒度加锁* 624

24.4 系统性能的改进 625

24.5 多版本并发控制 626

24.5.1 只读型的多版本并发控制 627

24.5.2 读取一致性的多版本并发控制 628

24.5.3 SNAPSHOT隔离级别 628

24.6 参考书目 633

24.7 练习 633

第25章 原子性和持久性 637

25.1 崩溃、异常中止和介质故障 637

25.2 直接型更新系统和先写型日志 638

25.2.1 性能和先写型登录 641

25.2.2 检测点和恢复 644

25.2.3 逻辑型登录和物理逻辑型登录* 648

25.3 延迟更新系统的恢复 649

25.4 介质故障的恢复 650

25.5 参考书目 653

25.6 练习 653

第26章 分布式事务的实现 655

26.1 ACID特性的实现 655

26.2 原子终止 656

26.2.1 两阶段提交协议 657

26.2.2 两阶段提交协议中故障的处理 661

26.2.3 格式和协议:X/Open标准 664

26.2.4 对等原子提交协议 664

26.3 协调的传递 665

26.3.1 线性提交协议 665

26.4 分布式死锁 666

26.3.2 无准备状态的两阶段提交协议 666

26.5 全局可串行化 667

26.6 不能保证全局原子性的场合 668

26.7 复制数据库 670

26.7.1 同步更新复制系统 672

26.7.2 异步更新复制系统 674

26.8 现实世界里的分布式事务 677

26.9 参考书目 677

26.10 练习 678

第27章 安全性与因特网商务 681

27.1 认证、授权与加密 681

27.2 加密 681

27.3 数字签名 684

27.4 密钥发布与认证 686

27.4.1 Kerberos协议:票据 687

27.4.2 临时串 690

27.5 授权 690

27.6 已认证的远程过程调用 692

27.7 因特网商务 693

27.7.1 SSL协议:证书 693

27.7.2 SET协议:对偶签名 695

27.7.3 货物原子性、托管与已认证交付 698

27.7.4 电子现金:盲签名 700

27.8 参考书目 705

27.9 练习 705

附录附录A 关于系统的问题 708

附录B 参考文献 716