数据库系统概念(原书第4版)
作者 : Abraham Silberschatz, Henry F.Korth, S.Sudarshan
译者 : 杨冬青 唐世渭 等
丛书名 : 计算机科学丛书
出版日期 : 2003-03-01
ISBN : 7-111-11625-9
定价 : 69.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 767
开本 : 16开
原书名 : Database System Concepts
原出版社: McGraw-Hill
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是经典的数据库系统教科书《Database System Concepts》的最新修订版,它被国际上许多著名大学采用,包括斯坦福大学、德克萨斯大学、印度理工学院等。而且,这本书前一版的中文版被国内的许多大学采用为本科生和研究生的数据库课程的教材或主要教学参考书,收到了良好的效果。
  本书包含了数据模型、关系模型、基于对象的系统和XML、数据存储和检索、事务处理、数据库系统体系结构等方面的内容,在第八部分“实例研究”中还讨论了特定的商品化数据库系统的细节。同时,本书还提供了关于网状模型和层次模型的联机附录。文献注解中指出了首先发表各个研究结果的文章,并列出了进一步阅读的参考文献。本书中的概念都以直观的方式加以描述,其中的许多概念基于银行运行示例,另外,书中省略了形式化证明而采用图表和示例来描述概念及预期结果,增强了本书的易读性。本书会使读者在数据库设计、数据库语言、数据库系统实现等方面得到明显提高。
  本书既可作为本科生三、四年级的数据库课程教材,也可作为研究生一年级的教科书。同时,本书还提供了高级内容供数据库领域的技术人员阅读。

  ◆涵盖了数据模型、关系模型、基于对象的系统和XML、数据存储和检索、事务处理、数据库系统体系结构等多方面的内容
  ◆采用直观的方式描述所有概念,并以结构清晰的图示和例子代替形式化的证明
  ◆以银行数据库实例生动地解释重要概念,增强了本书的易读性
  ◆专门用三章来介绍特定的商品化数据库系统Oracle、Microsoft SQL Server和IBM DB2的细节
  ◆配有关于网状模型和层次模型的联机附录 (英文)

图书特色

杨冬青
  北京大学信息科学技术学院教授,博士生导师,网络与信息系统研究所副所长,数据库与信息系统研究室主任。中国计算机学会数据库专委会委员,中国计算机学会普及工作委员会副主任。1969年毕业于北京大学数学力学系数学专业,从事数据库与信息系统领域研究、开发与教学20余年,曾获国家科技进步二等奖等多项奖励。
  唐世渭 
  北京大学信息科学技术学院教授,博士生导师。北京大学视觉与听觉信息处理国家重点实验室主任。中国计算机学会数据库专委会副主任。1964年毕业于北京大学数学力学系计算数学专业,从事数据库与信息系统领域研究、开发与教学20余年,曾获国家科技进步二等奖等多项奖励。
  Abraham Silberschaz 
  于纽约州立大学石溪分校获得博士学位,现任新泽西州Murray Hill贝尔实验室信息科学研究中心副主席,ACM和IEEE会员。他的研究方向包括操作系统、数据库系统和分布式系统。
  Henry F.Korth 于普林斯顿大学获得博士学位,现任贝尔实验室信息科学研究中心数据库原理研究室主任,ACM会员和IEEE高级成员。他的研究方向包括高性能数据库系统、实时数据库系统和XML数据库。
  S.Sudarsham 于威斯康星大学麦迪逊分校获得博士学位,现任印度理工学院 (孟买) 计算机科学与工程系副教授。他曾是AT&T贝尔实验室的技术人员。他的研究方向包括查询处理和优化、故障恢复和主存数据库。

图书前言

数据库管理已经从一种专门的计算机应用发展为现代计算环境的一个核心成分。因此,有关数据库系统的知识已成为计算机科学教育中的一个必不可少的部分。在本书中,我们讲述数据库管理的基本概念,这些概念包括数据库设计、数据库语言及数据库系统实现等多个方面。
本书可作为本科生三年级或四年级数据库入门课程的教科书,也可作为研究生一年级的教科书。除了可用于入门课程的基本内容外,本书还包括了作为课程补充或作为高级课程介绍性材料的高级内容。
我们仅要求读者熟悉基本的数据结构、计算机组织和一种高级程序设计语言,例如Java、C或Pascal。书中的概念都以直观的方式加以描述,其中的许多概念基于我们的银行运行例子。本书中包括了一些重要的理论结果,但省略了形式化证明。对于各个研究结果,文献注解中指出了首先发表并证明该结果的文章,文献注解中还列出了进一步阅读的参考文献。在应该给出证明的地方,我们使用图表和例子来说明为什么结论是正确的。
本书中所包括的基本概念和算法通常基于商品化的或试验性的数据库系统中所采用的概念和算法。然而我们以一种一般化的形式来描述这些概念和算法,而不是和一个特定的数据库系统联系在一起。我们在第八部分“实例研究”中讨论特定的商品化数据库系统的细节。
在《数据库系统概念》的第4版中,我们保持了前三版的总体风格,同时重点强调了数据库管理的进展。新增加了几章来讨论新的技术。对每一章都进行了编辑,并对大多数的章进行了修改扩充。下面我们对各章做一个简短描述。
本书的组织
本书组织成八个主要部分和三个附录:
综述(第1章)。第1章对数据库系统的性质和目标进行一般性综述。我们解释了数据库系统的概念是如何发展起来的,各种数据库系统的共同特性是什么,数据库系统能为用户做什么,以及数据库系统如何与操作系统接口。我们还引入了一个数据库应用系统的例子:包括多个支行的一个银行企业。这个例子是贯穿全书的运行实例。这一章讲动机、历史和性质。
数据模型(第2章和第3章)。第2章介绍实体-联系模型,该模型为数据库设计问题,以及我们在数据模型的约束下捕获现实应用的语义时所遇到的问题,提供了一个高层视图。第3章介绍关系数据模型,包括与之相关的关系代数和关系演算。
关系模型(第4~7章)。第4章介绍最有影响的面向用户的关系语言—SQL。第5章介绍另外两种关系语言—QBE和Datalog。这两章对数据操纵—查询、修改、插入、删除进行了描述。算法和设计问题在以后的章节中描述。因此,这两章适合于入门课程和某些只想了解数据库系统是什么,而不想深入掌握其内部算法和结构的人员阅读。
第6章从数据库完整性和安全性的角度介绍了约束;第7章说明在关系数据库的设计中如何使用约束。第6章介绍了参照完整性、触发器和断言等完整性维护机制以及授权机制。这一章的要点是保护数据库,免遭意外的和有意的破坏。
第7章介绍关系数据库设计理论,包括数据依赖和规范化等,重点强调了提出各种范式的原因以及它们的直观含义。这一章还详细描述了数据库设计的整个过程。
基于对象的系统和XML(第8~10章)。第8章介绍面向对象数据库,包括面向对象程序设计的概念以及如何用这些概念去形成一个数据模型的基础。在这儿不需要读者事先具有面向对象语言的知识。第9章介绍对象-关系数据库,说明SQL:1999标准如何对关系数据模型进行扩展,以包括面向对象的特性,例如继承性、复杂类型和对象标识。
第10章介绍数据表示的XML标准,它正日益广泛地应用于数据通信和复杂数据类型存储。这一章还描述了XML查询语言。
数据存储和查询(第11~14章)。第11章讨论磁盘、文件和文件系统结构,以及关系和对象数据到文件系统的映像。在第12章中介绍了多种数据存取技术,包括散列、B+ 树索引和网格文件索引。第13章和14章的重点是查询计算算法,以及基于保持等价性的查询转换的查询优化。
这几章旨在使读者理解数据库存储和检索的内部机制。
事务管理(第15~17章)。第15章介绍事务处理系统的基本概念,包括事务的原子性、一致性、隔离性和持久性以及可串行性概念。
第16章的重点是并发控制,我们介绍了保证可串行性的几种技术,包括封锁、时间戳和乐观(有效性检查)技术。在这一章中还讨论了死锁问题。第17章讨论了在系统崩溃和磁盘故障情况下保证事务正确执行的主要技术。这些技术包括日志、影子页面、检查点和数据库转储。
数据库系统体系结构(第18~20章)。第18章介绍计算机系统体系结构,并描述了作为基础的计算机对于数据库系统的影响。在这一章中我们讨论了集中式系统、客户-服务器系统、并行体系结构和分布式体系结构,以及网络类型。第19章讨论分布式数据库系统,在分布式数据库系统的环境下再一次讨论数据库设计、事务管理、查询计算和优化问题。这一章还包括了故障时的系统可用性问题,并介绍了LDAP目录系统。
在第20章关于并行数据库的讨论中,我们探讨了各种并行技术,包括I/O并行、查询间并行和查询内并行,以及操作间并行和操作内并行。这一章中还讨论了并行系统设计。
其他主题(第21~24章)。第21章讨论数据库应用开发和管理,包括数据库接口(特别是Web接口)、性能调整、性能测试标准、标准化和电子商务中的数据库问题。第22章讨论查询技术,包括决策支持系统和信息检索。决策支持领域中讨论的话题包括联机分析处理(OLAP)技术、SQL:1999对OLAP的支持、数据挖掘和数据仓库工程。这一章还描述了用于查询正文数据的信息检索技术,包括Web搜索引擎中使用的基于超级链接的技术。
第23章讨论高级数据类型和新应用,包括时态数据、空间数据和地理数据、多媒体数据以及移动式和个人数据库管理中的问题。最后,第24章讨论高级事务处理,包括事务处理监控器、高性能事务系统、实时事务系统以及事务工作流。
实例研究(第25~27章)。在这一部分我们对三个领先的商品化数据库系统进行实例研究,包括Oracle、IBM DB2和Microsoft SQL Server。这几章中列举了上述每一种产品的独有特性,描述了它们的内部结构,提供了关于各个产品的丰富的有用信息,帮助你了解前面各部分描述的各种实现技术是如何在实际系统中使用的。这几章中还包括了实际系统设计中的几个有趣的方面。
联机附录。虽然大多数新的数据库应用系统使用关系模型或面向对象模型,但网状数据模型和层次数据模型也仍然在使用中。为了满足希望了解这些数据模型的读者的需要,我们给出了描述网状数据模型和层次数据模型的附录,分别为附录A和附录B。这两个附录只是在本书的Web页面上联机提供(http://www.bell-labs.com/topic/books/db-book)。
第4版
对本书第4版的产生起指导作用的是我们收到的关于前面几版的许多意见和建议,我们在孟买的印度理工学院讲授本课程的体会,以及我们对于数据库技术发展方向的分析。
我们的基本过程是重写每一章,将较旧的内容修改为最新的内容,添加关于数据库技术当前进展的讨论,并改进学生难于理解的那些话题的描述。现在每一章都有一个术语回顾列表,它可以帮助读者复习该章讨论的关键主题。我们还在大多数的章后面增加了一个“工具”节,提供与该章内容有关的软件工具的信息。我们还增加了新的习题,更新了参考文献。
我们增加了关于XML的新的一章,以及三个实例研究的章,描述领先的商品化数据库系统Oracle、IBM DB2和Microsoft SQL Server。
我们将所有的章组织为几个部分,并重新组织了几个章的内容。为方便那些熟悉本书第3版的读者,我们对于主要的变化说明如下:
实体-联系模型。我们将实体-联系(E-R)模型的讨论已经进行了改善。增加了一些例子,修改了一些例子,目的在于给读者更加直观的引导。增加了关于各种不同的E-R表示法的总结,以及关于UML的新的一节。
关系数据库。第4章关于SQL的讨论现在参考的是SQL:1999标准,该标准是本书第3版出版之后发布的。我们大大扩展了关于SQL的讨论,将with子句、扩充了的嵌入式SQL以及最近几年中应用日益广泛的ODBC和JDBC包括在我们的讨论范围中。我们去掉了第5章中关于Quel的介绍,因为对它的使用已经不多了。我们修改了关于QBE的描述,以去掉某些有歧义的地方,并增加了关于Microsoft Access数据库中使用的QBE的介绍。
第6章现在包括完整性约束和安全性。关于安全性的讨论从第3版的第19章移到了现在的第6章,第6章还介绍了触发器。第7章包括数据库设计和范式。关于函数依赖的讨论从第3版的第6章移到了现在的第7章。我们对第7章进行了许多改写,对于函数依赖的处理提供了几个简捷的算法,并且扩充了关于整个数据库设计过程的讨论。我们将有关多值依赖推理的公理、PJNF和DKNF移到了附录中。
基于对象的数据库。我们改进了第8章中对于面向对象数据库的介绍,修改了关于ODMG的讨论。第9章中关于对象-关系数据库的讨论也进行了修改,特别地,用SQL:1999标准代替了第3章中使用的扩展SQL。
XML。第10章是第4版中新增的一章,关于XML。
存储、索引和查询处理。第11章讨论存储和文件结构,它是第3版中的第10章。我们对其内容进行了修改。在过去的几年中,磁盘驱动器和其他存储机制的许多特性发生了很大的变化,因此我们的讨论进行了相应的修改。我们修改了关于RAID的介绍,以反映技术发展的趋势,我们还扩充了关于数据字典(目录)的介绍。
第12章是第3版中的第11章,关于索引的介绍,现在包括了位图索引。我们对B+ 树插入算法进行了简化,并提供了搜索算法的伪代码,删除了分段散列,因为其使用已经不多了。
我们对查询处理的讨论进行了重新组织,将原来的一章(第3版中的第12章)分为两章,其中一章讨论查询处理(第13章),另一章讨论查询优化(第14章)。关于代价估算和查询优化的所有细节都移到了第14章,而将第13章集中在查询处理算法上。我们删掉了为不同的运算计算精确的I/O操作数的几个详细(且冗长)的公式。第14章现在包括优化算法的伪代码,以及关于嵌套子查询和物化视图的优化的新的几节。
事务处理。第15章对事务进行介绍,在第3版中是第13章,我们对它进行了修改,删除了视图可串行化的测试。
第16章讨论并发控制,它包括了新的一节,关于锁管理器的实现。较弱的一致性级别的讨论原来在第3版的第20章中,现在包括在本章中。我们扩展了关于索引结构的并发控制的讨论,给出了关于蟹行协议(crabbing protocol)的细节,该协议是B-link协议的简化。我们还给出了旨在避免幻象的下一码(next-key)封锁方法。第17章讨论恢复,它现在包括了关于ARIES恢复算法的描述。这一章还包括了为在故障情况下提供高可用性的远程备份系统,这是“24×7”应用所需要的一个重要特性。
与对第3版的处理一样,讲课教师可以选择只介绍事务处理概念(只讲第15章)或详细讲解所有内容(讲第15~17章)。
数据库系统体系结构。第18章概述数据库系统体系结构。我们对本章进行了修改,以反映当前的技术,这一章是第3版的第16章。我们交换了并行数据库和分布式数据库这两章的顺序。第19章讨论分布式数据库,这是比较基本的内容,任何一个与数据库打交道的人都应该熟悉该内容。第20章(第3版中是第16章)讨论并行数据库查询处理技术,对此内容感兴趣的主要是那些希望学习数据库内部技术的读者。
我们对第19章关于分布式数据库的讨论做了重要的改写,减少了关于命名和透明性的描述,增加了对于故障时的操作的描述,包括为提供高可用性而采用的并发控制技术。我们缩减了关于三阶段提交协议的描述和关于全局死锁的分布式检测的描述,因为这两者在实践中都用得不多。我们去掉了第3版的第20章中关于异构数据库查询处理问题的描述,增加了关于目录系统,特别是LDAP的新的一节,因为这些技术在分布式环境中作为保证信息可用性的机制被广泛使用。
其他主题。虽然我们对整本书都进行了修订和更新,但我们把与正在进展的数据库研究和新的数据库应用有关的描述集中在新增加的四章中,即从第21章到第24章。
第21章是第4版中新的一章,讨论应用开发和管理。这一章描述了如何建立数据库的Web接口,包括servlet和服务器端脚本的其他机制的描述,这些都是新的内容。关于性能调整的一节(原先在第19章中)包括了关于5分钟规则和1分钟规则的新内容以及一些新的例子。关于物化视图选择的一节也是新的。有关性能测试和标准的内容进行了更新。我们增加了关于电子商务的新的一节,重点在电子商务中的数据库问题。还增加了新的一节,关于遗留系统。
第22章是关于高级查询和信息检索的,包括关于OLAP,特别是SQL:1999有关数据分析的扩展的新内容。有关数据仓库工程和数据挖掘的描述也大大扩充了。有关信息检索,特别是Web搜索的描述做了重要扩充。在第3版中相关的内容在第21章中。
第23章讨论高级数据类型和新应用。这一章的内容包括时态数据、空间数据、多媒体数据和移动数据库。这些内容是第3版第21章内容的更新的版本。第24章讨论高级事务处理,这一章的内容包括TP监控器、工作流系统、主存和实时数据库、长事务以及多媒体数据库中的事务管理。这些内容是第3版第20章内容的更新版本。
实例研究。关于Oracle、IBM DB2和Microsoft SQL Server的实例研究是第4版新增的内容。这几章概述了上述每一种产品的特性,并描述了它们的内部结构。
教师注意
本书包括基本内容和高级内容,在一个学期内不可能讲授所有内容。我们用符号“**”把某些节标记为高级内容,如果愿意的话可以省略这些节,而且仍能保持内容的连续性。
教师可以将课程安排成包括本书各章的不同子集。下面我们列出一些可能的安排:
如果学生在本课程中不使用QBE或Datalog,可以不讲第5章。
如果面向对象的内容在另一门高级课程中讲述,那么可以不讲第8章、第9章和11.9节。或者,它们可以构成对象数据库高级课程的基础。
对于入门课程来说,可以不讲第10章(XML)和第14章(查询优化)。
我们对事务处理的讨论(第15章至第17章)和对数据库系统体系结构的讨论(第18章至第20章)都包括一章综述(分别为第15章和第18章)和后续的两章详细讨论。如果你计划把详细讨论的几章推迟到高级课程中去讲授,那么可以只讲第15章和第18章。
尽管21.1节可以包括在数据库入门课程中,但第21~24章更适合于高级课程或学生自学。
可以在本书的web主页(见下一节)中找到基于本书内容的教学大纲样板。
Web主页和教学补充材料
本书的web主页的网址是
http://www.bell-labs.com/topic/books/db-book
该主页包括以下内容:
介绍本书所有各章的幻灯片。
某些习题的答案。
三个附录。
最新勘误表。
本书用户贡献的补充材料。
我们将写出完整的解答手册,仅提供给教师。关于如何得到解答手册的进一步信息,请发电子邮件到customer.service@mcgraw-hill.com。在美国可以打电话800-338-3987。McGraw-Hill关于本书的网页是
http://www.mhhe.com/silberschatz
与我们和其他读者联系
我们提供了一个邮件列表,使本书读者之间可以互相通信,也可以与我们通信。如果你愿意加入这一列表,请发一条消息到db-book@research.bell-labs.com,消息中包括你的姓名、所在单位、头衔和电子邮件地址。
我们已尽最大努力避免在本书中出现排版错误、内容失误等。然而,与新发布的软件相类似,错误在所难免。在本书的主页中有一个最新勘误表。如果你能指出尚未包含在最新勘误表中的本书的疏漏之处,我们将十分感激。
我们很高兴能收到你对改进本书的建议,也很欢迎你对本书主页做出对其他读者有用的贡献,如程序设计练习、课程实习建议、联机实验室和个别指导以及讲课要点。
请将电子邮件发到db-book@research.bell-labs.com。来信请寄到Avi Silberschatz,Bell Laboratories,Room 2T-310,600 Mountain Avenue,Murray Hill,NJ 07974,USA。
致谢
使用本书第3版的许多学生提供了很多有用的意见,对于我们形成第4版帮助很大。此外,许多人口头地或书面地与我们关于此书交换过意见,提出了建议。在此我们不可能一一列出,我们谨对下列人员致以特别的感谢:
佛罗里达理工学院的Phil Bernhard、俄亥俄州立大学的Eitan M.Gurari、Old Dominion大学的Irwin Levinstein、佐治亚理工学院的Ling Liu、乔治·梅森大学的Ami Motro、Case western Reserve大学的Bhagirath Narahari和Meral Ozsoyoglu、伦敦皇家学院的Odinaldo Rodriguez,他们是本书的审阅者。他们的意见对于我们形成第4版帮助很大。
Soumen Chakrabarti、Sharad Mehrotra、Krithi Ramamtitham、Mike Reiter、Sunita Sarawagi、N.L.Sarda、Dilys Thomas,感谢他们对本书中的几章内容给出了广泛和宝贵的反馈意见。
Phil Bohannon,他编写了第10章的第一稿,描述XML。
Oracle的Hakan Jakobsson、IBM的Sriram Padmanabhan、Microsoft的C巗ar Galindo-Legaria、Goetz Graefe、Jos A. Blakeley、Kalen Delaney、Michael Rys、Michael Zwilling、Sameet Agarwal、Thomas Casey,他们编写了几个附录,分别对Oracle、IBM DB2和Microsoft SQL Server数据库系统进行描述。
Yuri Breitbart,他帮助我们编写了分布式数据库这一章。Mike Reiter,他帮助我们编写了安全性的几节。Jim Melton,他帮助我们阐明SQL:1999。
Marilyn Turnamian和Nandprasad Joshi,她们做了很好的秘书工作,对于第4版的完成起了重要作用。
最后,Sudarshan感谢他的妻子Sita的爱和支持,感谢他两岁的儿子Madhur的爱,并感谢他的母亲Indira的支持。Hank感谢他的妻子Joan和孩子Abby、Joe的爱和理解。Avi感谢他的妻子Haya和他的儿子Aaron在他修改本书时的耐心和支持。

A.S.
H.F.K.
S.S.

作者简介

Abraham Silberschatz, Henry F.Korth, S.Sudarshan:Abraham Silberschatz: 在纽约州立大学石溪分校获得博士学位,现任新泽西州Murray Hill贝尔实验室信息科学研究中心副主席,ACM和额IEEE会员。他的研究方向包括操作系统、数据库和分布式操作系统。著有《操作系统概念》、《数据库系统概念》等。
Henry F.Korth: 于普林斯顿大学获得博士学位,现为美国里海大学教授,曾任贝尔实验室信息科学研究中心数据库原理研究室主任,ACM会员和IEEE高级成员。他的研究方向包括高性能数据库系统、实时数据库系统和XML数据库。
S.Sudarshan: 于威斯康星大学麦迪逊分校获得博士学位,现任印度理工学院(孟买)计算机科学与工程系副教授。他曾是AT&T贝尔实验室的技术人员。他的研究方向包括查询处理和优化、故障恢复和主存数据库。

译者简介

杨冬青 唐世渭 等:杨冬青: 1969年毕业于北京大学数学力学系数学专业,现任北京大学信息科学技术学院教授,博士生导师,网络与信息系统研究所副所长,数据库与信息系统研究室主任,中国计算机学会数据库专委会委员。多年来承担并完成973、863国家科技攻关、国家自然科学基金等多项国家重点科研项目;曾获国家科技进步二等奖、三等奖和多项省部级奖励;在国内外科技杂志及会议上发表论文百余篇,著译作十余部。目前的主要研究方向为数据库系统实现技术、Web环境下的信息集成与共享、数据仓库和数据挖掘、典型应用领域的数据库技术等。
唐世渭: 1964年毕业于北京大学数学力学系计算数学专业,毕业后留校任教至今,现为北京大学信息科学技术学院教授,博士生导师,中国计算机学会数据库专委会副主任。多年来承担并完成973、863国家科技攻关、国家自然科学基金等多项国家重点科研项目;曾获国家科技进步二等奖、三等奖各1项;省部级科技进步奖多项;在国内外科技杂志及会议上发表论文百余篇,著译作多部。至今已培养硕士、博士、博士后60余名。目前,主要的研究方向为数据库系统、数据仓库和数据挖掘、Web环境下的信息集成与共享、典型应用领域的信息系统等

译者序

数据库系统是对数据进行存储、管理、处理和维护的软件系统,是现代计算环境中的一个核心成分。随着计算机硬件、软件技术的飞速发展和计算机系统在各行各业的广泛应用,数据库技术的发展尤其迅速,引人注目。有关数据库系统的理论和技术是计算机科学技术教育中必不可少的部分。《数据库系统概念》是一本经典的、备受赞扬的数据库系统教科书。其内容由浅入深,既包含数据库系统基本概念,又反映数据库技术新进展。它被国际上许多著名大学所采用,包括斯坦福大学、德克萨斯大学、印度理工学院(孟买)等。
我们于2000年初将《数据库系统概念》一书的第 3 版译成中文,由机械工业出版社出版,国内许多大学采用其作为本科生和研究生数据库课程的教材或主要教学参考书,收到了良好的效果。现在我们又翻译了2002年出版的该书第 4 版。第 4 版保持了前三版的总体风格,同时重点强调了数据库技术的新进展。第 4 版的内容大体上可以分为四个部分。
第1~10章讲述数据库系统的基本概念,包括对数据库系统的性质和目标的综述、关系数据模型和几种关系语言、数据库的完整性约束及其在数据库设计中的应用。这一部分中还介绍了新型的数据库系统─面向对象数据库和对象-关系数据库,以及XML数据表示和数据查询。
第11~20章讨论数据库系统实现技术,包括数据存储结构、数据存取技术、查询优化方法、事务处理系统的基本概念和并发控制、故障恢复技术。这一部分中还介绍了数据库系统体系结构,以及并行数据库系统和分布式数据库系统中所采用的一些主要策略和技术。
第21~24章讨论数据库研究中的新进展和新的数据库应用。主要内容包括数据库的Web接口、数据库性能调整和性能测试标准、电子商务中的数据库问题,联机分析处理(OLAP)、数据挖掘、数据仓库工程、用于查询正文数据的信息检索技术等高级查询问题,时态数据、空间和地理数据、多媒体数据、移动式和个人数据库管理等高级数据类型和新应用,以及事务处理监控器、高性能事务系统、实时事务系统和事务工作流等高级事务处理问题。
第25~27章对Oracle、IBM DB2和Microsoft SQL Server三种商品化数据库系统进行实例研究,结合这几种具体产品来讨论前面各部分描述的各种实现技术是如何应用到实际系统中的。
这本书的第一部分以及第二和第三部分的部分内容可以作为本科数据库概论课程的教材或主要参考资料,第二和第三部分的其余内容可以用于研究生的数据库课程教学,第四部分可以作为帮助学生了解实际系统的补充材料。
杨冬青、唐世渭组织并参加了本书的翻译和审校工作,参加翻译的还有佘剑纯、张俊虎、郭迎春、章悦、王洹、陈佳、郭炜、应莺,张立新为本书的翻译做了许多资料整理工作。
限于译者水平,译文中疏漏和错误难免,欢迎批评指正。

译  者
2002年于北京大学

图书目录

第1章  引言 1
1.1  数据库系统的应用 1
1.2  数据库系统与文件系统 2
1.3  数据视图 3
1.3.1  数据抽象 4
1.3.2  实例和模式 5
1.4  数据模型 5
1.4.1  实体-联系模型 5
1.4.2  关系模型 6
1.4.3  其他数据模型 7
1.5  数据库语言 7
1.5.1  数据定义语言 7
1.5.2  数据操纵语言 8
1.5.3  来自应用程序的数据库访问 9
1.6  数据库用户和管理员 9
1.6.1  数据库用户和用户界面 9
1.6.2  数据库管理员 10
1.7  事务管理 10
1.8  数据库系统结构 11
1.8.1  存储管理器 11
1.8.2  查询处理器 12
1.9  应用程序体系结构 12
1.10  数据库系统的历史 12
1.11  小结 15
术语回顾 15
习题 16
文献注解 16
工具 16
第一部分  数据模型
第2章  实体-联系模型 18
2.1  基本概念 18
2.1.1  实体集 18
2.1.2  联系集 20
2.2  约束 22
2.2.1  映射基数 22
2.2.2  参与约束 23
2.3  码 23
2.3.1  实体集 23
2.3.2  联系集 24
2.4  设计问题 25
2.4.1  用实体集还是用属性 25
2.4.2  用实体集还是用联系集 25
2.4.3  二元联系集与 n 元联系集 26
2.4.4  联系属性的布局 27
2.5  实体-联系图 27
2.6  弱实体集 32
2.7  扩展的E-R特性 33
2.7.1  特殊化 33
2.7.2  一般化 34
2.7.3  属性继承 35
2.7.4  一般化约束 35
2.7.5  聚集 36
2.7.6  可选择的E-R符号 37
2.8  数据库E-R模式的设计 39
2.8.1  设计阶段 39
2.8.2  银行企业的数据库设计 40
2.9  将E-R模式转换为表 41
2.9.1  用表表示强实体集 42
2.9.2  用表表示弱实体集 43
2.9.3  用表表示联系集 43
2.9.4  复合属性 44
2.9.5  多值属性 45
2.9.6  用表表示一般化 45
2.9.7  用表表示聚集 45
2.10  统一建模语言UML** 45
2.11  小结 46
术语回顾 48
习题 48
文献注解 51
工具 52
第3章  关系模型 53
3.1  关系数据库的结构 53
3.1.1  基本结构 53
3.1.2  数据库模式 55
3.1.3  码 57
3.1.4  模式图 58
3.1.5  查询语言 59
3.2  关系代数 59
3.2.1  基本运算 59
3.2.2  关系代数的形式化定义 65
3.2.3  附加运算 65
3.3  扩展的关系代数运算 69
3.3.1  广义投影 69
3.3.2  聚集函数 69
3.3.3  外连接 71
3.3.4  空值** 73
3.4  数据库的修改 74
3.4.1  删除 74
3.4.2  插入 75
3.4.3  更新 75
3.5  视图 76
3.5.1  视图定义 76
3.5.2  通过视图进行更新与空值 77
3.5.3  用视图定义视图 77
3.6  元组关系演算 78
3.6.1  查询的例子 79
3.6.2  形式化定义 81
3.6.3  表达式的安全性 81
3.6.4  语言的表达能力 82
3.7  域关系演算** 82
3.7.1  形式化定义 82
3.7.2  查询的例子 82
3.7.3  表达式的安全性 83
3.7.4  语言的表达能力 84
3.8  小结 84
术语回顾 85
习题 85
文献注解 88
第二部分  关系数据库
第4章  SQL 90
4.1  背景 90
4.2  基本结构 91
4.2.1  select子句 91
4.2.2  where子句 92
4.2.3  from子句 93
4.2.4  更名运算 93
4.2.5  元组变量 94
4.2.6  字符串操作 94
4.2.7  排列元组的显示次序 95
4.2.8  重复 95
4.3  集合运算 96
4.3.1  并运算 96
4.3.2  交运算 97
4.3.3  差运算 97
4.4  聚集函数 97
4.5  空值 99
4.6  嵌套子查询 100
4.6.1  集合成员资格 100
4.6.2  集合的比较 101
4.6.3  测试是否为空关系 102
4.6.4  测试是否存在重复元组 103
4.7  视图 104
4.8  复杂查询 104
4.8.1  派生关系 104
4.8.2  with子句 105
4.9  数据库的修改 106
4.9.1  删除 106
4.9.2  插入 107
4.9.3  更新 108
4.9.4  视图的更新 109
4.9.5  事务 110
4.10  关系的连接** 110
4.10.1  举例 110
4.10.2  连接类型和条件 112
4.11  数据定义语言DDL 113
4.11.1  SQL中的域类型 114
4.11.2  SQL的模式定义 115
4.12  嵌入式SQL 117
4.13  动态SQL 119
4.13.1  ODBC** 119
4.13.2  JDBC** 121
4.14  其他SQL特性 123
4.14.1  模式、目录、环境 123
4.14.2  过程扩展与存储过程 123
4.15  小结 124
术语回顾 124
习题 125
文献注解 127
第5章  其他关系语言 128
5.1  Query-by-Example 128
5.1.1  在一个关系上的查询 128
5.1.2  在多个关系上的查询 130
5.1.3  条件框 131
5.1.4  结果关系 132
5.1.5  元组的显示次序 133
5.1.6  聚集操作 133
5.1.7  数据库的修改 134
5.1.8  在Microsoft Access中的QBE 136
5.2  Datalog 137
5.2.1  基本结构 137
5.2.2  Datalog规则的语法 139
5.2.3  非递归Datalog的语义 140
5.2.4  安全性 142
5.2.5  Datalog中的关系运算 143
5.2.6  Datalog中的递归 143
5.2.7  递归的能力 145
5.2.8  其他语言的递归 146
5.3  用户界面和工具 147
5.3.1  表单和图形用户界面 147
5.3.2  报表生成器 148
5.4  小结 149
术语回顾 149
习题 149
文献注解 151
工具 152
第6章  完整性和安全性 153
6.1  域约束 153
6.2  参照完整性 154
6.2.1  基本概念 154
6.2.2  E-R模型中的参照完整性 155
6.2.3  数据库的修改 156
6.2.4  SQL中的参照完整性 156
6.3  断言 158
6.4  触发器 158
6.4.1  触发器的需求 159
6.4.2  SQL中的触发器 159
6.4.3  何时不用触发器 161
6.5  安全性和授权 162
6.5.1  安全性违例 162
6.5.2  授权 163
6.5.3  授权与视图 164
6.5.4  权限的授予 164
6.5.5  角色的概念 165
6.5.6  审计追踪 166
6.6  SQL中授权 166
6.6.1  SQL中的权限 166
6.6.2  角色 167
6.6.3  授权的权限 167
6.6.4  其他特性 168
6.6.5  SQL授权的局限 168
6.7  加密和鉴定 168
6.7.1  加密技术 169
6.7.2  鉴定 170
6.8  小结 170
术语回顾 171
习题 171
文献注解 173
第7章  关系数据库设计 174
7.1  第一范式 174
7.2  关系数据库设计中易犯的错误 175
7.3  函数依赖 176
7.3.1  基本概念 176
7.3.2  函数依赖集的闭包 179
7.3.3  属性集的闭包 180
7.3.4  正则覆盖 181
7.4  模式分解 183
7.5  分解应具有的特性 186
7.5.1  无损连接分解 187
7.5.2  保持依赖 187
7.5.3  信息重复 189
7.6  Boyce-Codd范式 189
7.6.1  定义 189
7.6.2  分解算法 191
7.6.3  保持依赖 192
7.7  第三范式 193
7.7.1  定义 193
7.7.2  分解算法 194
7.7.3  BCNF和3NF的比较 195
7.8  第四范式 196
7.8.1  多值依赖 196
7.8.2  第四范式定义 198
7.8.3  分解算法 198
7.9  更多范式 199
7.10  整体数据库设计过程 199
7.10.1  E-R模型和规范化 200
7.10.2  泛关系设计方法 200
7.10.3  为了性能解除规范化 201
7.10.4  其他设计问题 202
7.11  小结 202
术语回顾 203
习题 203
文献注解 206
第三部分  基于对象的数据库和XML
第8章  面向对象数据库 208
8.1  复杂数据类型的需要 208
8.2  面向对象数据模型 208
8.2.1  对象结构 209
8.2.2  对象类 209
8.2.3  继承 211
8.2.4  多重继承 213
8.2.5  对象标识 214
8.2.6  对象包含 215
8.3  面向对象的语言 216
8.4  持久化程序设计语言 216
8.4.1  对象的持久性 217
8.4.2  对象标识与指针 218
8.4.3  持久对象的存储和访问 218
8.5  持久化C++系统 219
8.5.1  ODMG C++对象定义语言 219
8.5.2  ODMG C++对象操纵语言 222
8.6  持久化 Java 系统 225
8.7  小结 226
术语回顾 226
习题 226
文献注解 227
第9章  对象-关系数据库 229
9.1  嵌套关系 229
9.2  复杂类型 231
9.2.1  集合体与大对象类型 231
9.2.2  结构类型 232
9.2.3  复杂类型的值的创建 233
9.3  继承 234
9.3.1  类型继承 234
9.3.2  表继承 235
9.3.3  重叠子表 236
9.4  引用类型 237
9.5  与复杂类型有关的查询 238
9.5.1  路径表达式 238
9.5.2  以集合体为值的属性 238 9.5.3  嵌套与解除嵌套 239
9.6  函数和过程 240
9.6.1  SQL函数和过程 240
9.6.2  外部语言程序 241
9.6.3  过程的构造 242
9.7  面向对象与对象-关系 244
9.8  小结 245
术语回顾 245
习题 246
文献注解 247
工具 248
第10章  XML 249
10.1  背景 249
10.2  XML数据结构 251
10.3  XML文档模式 253
10.3.1 文档类型定义 253
10.3.2  XML模式 256
10.4  查询和转换 256
10.4.1  XPath 258
10.4.2  XSLT 259
10.4.3  XQuery 261
10.5  应用程序接口 264
10.6  XML数据的存储 264
10.6.1  关系数据库 264
10.6.2  非关系的数据存储 266
10.7  XML应用 266
10.7.1  数据交换 266
10.7.2  数据中介 267
10.8  小结 268
术语回顾 269
习题 269
文献注解 270
工具 271
第四部分  数据存储和查询
第11章  存储和文件结构 274
11.1  物理存储介质概述 274
11.2  磁盘 276
11.2.1  磁盘的物理特性 276
11.2.2  磁盘性能的度量 278
11.2.3  磁盘块存取的优化 279
11.3  RAID 281
11.3.1  通过冗余提高可靠性 281
11.3.2  通过并行提高性能 282
11.3.3  RAID级别 283
11.3.4  RAID级别的选择 285
11.3.5  硬件问题 286
11.3.6  其他的RAID应用 287
11.4  第三级存储 287
11.4.1  光盘 287
11.4.2  磁带 288
11.5  存储访问 288
11.5.1  缓冲区管理 289
11.5.2  缓冲区替换策略 289
11.6  文件组织 291
11.6.1  定长记录 291
11.6.2  变长记录 292
11.7  文件中记录的组织 295
11.7.1  顺序文件组织 296
11.7.2  聚簇文件组织 297
11.8  数据字典 298
11.9  面向对象数据库的存储** 299
11.9.1  对象到文件的映射 299
11.9.2  对象标识符的实现 300
11.9.3  持久化指针的管理 301
11.9.4  硬件混写 301
11.9.5  对象的磁盘结构与内存结构 305
11.9.6  大对象 305
11.10  小结 306
术语回顾 307
习题 308
文献注解 309
第12章  索引与散列 311
12.1  基本概念 311
12.2  有序索引 312
12.2.1  主索引 312
12.2.2  辅助索引 316
12.3  B+树索引文件 317
12.3.1  B+树的结构 317
12.3.2  B+树上的查询 318
12.3.3  B+树的更新 320
12.3.4  B+树文件组织 323
12.4  B树索引文件 325
12.5  静态散列 326
12.5.1  散列文件组织 326
12.5.2  散列索引 329
12.6  动态散列 330
12.6.1  数据结构 330
12.6.2  查询和更新 331
12.6.3  与其他方案的比较 334
12.7  有序索引和散列的比较 335
12.8  SQL中的索引定义 336
12.9  多码访问 336
12.9.1  使用多个单码索引 336
12.9.2  多码索引 337
12.9.3  网格文件 337
12.9.4  位图索引 339
12.10  小结 342
术语回顾 343
习题 343
文献注解 344
第13章  查询处理 346
13.1  概述 346
13.2  查询代价的测量 347
13.3  选择运算 348
13.3.1  基本算法 348
13.3.2  使用索引的选择 349
13.3.3  涉及比较的选择 350
13.3.4  复杂选择的实现 350
13.4  排序 351
13.5  连接运算 353
13.5.1嵌嵌套循环连接 353
13.5.2嵌块嵌套循环连接 354
13.5.3嵌索引嵌套循环连接 355
13.5.4嵌归并连接 356
13.5.5嵌散列连接 358
13.5.6嵌复杂连接 361
13.6  其他运算 362
13.6.1  消除重复 362
13.6.2  投影 362
13.6.3  集合运算 362
13.6.4 外连接 363
13.6.5  聚集 363
13.7  表达式计算 364
13.7.1  实体化 364
13.7.2  流水线 365
13.8  小结 368
术语回顾 368
习题 369
文献注解 370
第14章  查询优化 371
14.1  概述 371
14.2  表达式结果统计信息的估计 372
14.2.1  目录信息 372
14.2.2  选择运算结果的估计 373
14.2.3  连接运算结果的估计 374
14.2.4  其他运算的结果的估计 375
14.2.5  不同取值个数的估计 376
14.3  关系表达式的转换 376
14.3.1  等价规则 377
14.3.2  转换的例子 379
14.3.3  连接的次序 380
14.3.4  等价表达式的枚举 381
14.4  执行计划的选择 382
14.4.1  查询执行技术的相互作用 382
14.4.2  基于代价的优化 383
14.4.3  启发式优化 384
14.4.4  查询优化器的结构** 386
14.4.5  嵌套子查询的优化** 387
14.5  物化视图** 388
14.5.1  视图维护 389
14.5.2  增量视图维护 389
14.5.3  查询优化和物化视图 391
14.6  小结 392
术语回顾 393
习题 393
文献注解 395
第五部分  事务管理
第15章  事务 398
15.1  事务概念 398
15.2  事务状态 400
15.3  原子性和持久性的实现 401
15.4  并发执行 403
15.5  可串行化 405
15.5.1  冲突可串行化 406
15.5.2  视图可串行化 407
15.6  可恢复性 408
15.6.1  可恢复调度 408
15.6.2  无级联调度 409
15.7  隔离性的实现 409
15.8  SQL中的事务定义 409
15.9  可串行化的判定 410
15.10  小结 411
术语回顾 412
习题 412
文献注解 413
第16章  并发控制 414
16.1  基于锁的协议 414
16.1.1  锁 414
16.1.2  锁的授予 417
16.1.3  两阶段封锁协议 417
16.1.4  封锁的实现** 419
16.1.5  基于图的协议 420
16.2  基于时间戳的协议 422
16.2.1  时间戳 422
16.2.2  时间戳排序协议 422
16.2.3  Thomas写规则 424
16.3  基于有效性检查的协议 424
16.4  多粒度 425
16.5  多版本机制 428
16.5.1  多版本时间戳排序 428
16.5.2  多版本两阶段封锁 429
16.6  死锁处理 429
16.6.1  死锁预防 430
16.6.2  基于超时的机制 431
16.6.3  死锁检测与恢复 431
16.7  插入与删除操作 432
16.7.1  删除 433
16.7.2  插入 433
16.7.3  幻象现象 433
16.8  弱一致性级别 435
16.8.1  二级一致性 435
16.8.2  游标稳定性 435
16.8.3  SQL中的弱一致性级别 436
16.9  索引结构中的并发** 436
16.10  小结 438
术语回顾 440
习题 441
文献注解 443
第17章  恢复系统 445
17.1  故障分类 445
17.2  存储器结构 445
17.2.1  存储器类型 445
17.2.2  稳定存储器的实现 446
17.2.3  数据访问 447
17.3  恢复与原子性 448
17.4  基于日志的恢复 449
17.4.1  延迟的数据库修改 449
17.4.2  立即的数据库修改 451
17.4.3  检查点 453
17.5  影子分页 454
17.6  并发事务的恢复 457
17.6.1  与并发控制的关系 457
17.6.2  事务回滚 457
17.6.3  检查点 458
17.6.4  重启动恢复 458
17.7  缓冲区管理 459
17.7.1  日志记录缓冲 459
17.7.2  数据库缓冲 459
17.7.3  操作系统在缓冲区管理中的作用 460
17.8  非易失性存储器数据丢失的故障 461
17.9  高级恢复技术** 461
17.9.1  逻辑undo日志 462
17.9.2  事务回滚 462
17.9.3  检查点 463
17.9.4  重启动恢复 463
17.9.5  模糊检查点 464
17.9.6  ARIES 464
17.10  远程备份系统 467
17.11  小结 468
术语回顾 470
习题 470
文献注解 472
第六部分  数据库系统体系结构
第18章  数据库系统体系结构 474
18.1  集中式体系结构与客户-服务器
体系结构 474
18.1.1 集中式系统 474
18.1.2 客户-服务器系统 475
18.2  服务器系统体系结构 476
18.2.1  事务服务器进程结构 477
18.2.2  数据服务器 478
18.3  并行系统 479
18.3.1  加速比和扩展比 480
18.3.2  互连网络 482
18.3.3  并行数据库体系结构 482
18.4  分布式系统 484
18.4.1  分布式数据库的一个例子 486
18.4.2  实现问题 486
18.5  网络类型 487
18.5.1  局域网 487
18.5.2  广域网 488
18.6  小结 489
术语回顾 489
习题 490
文献注解 491
第19章  分布式数据库 492
19.1  同构数据库和异构数据库 492
19.2  分布式数据存储 492
19.2.1  数据复制 493
19.2.2  数据分片 493
19.2.3  透明性 494
19.3  分布式事务 495
19.3.1  系统结构 495
19.3.2  系统故障模式 496
19.4  提交协议 497
19.4.1  两阶段提交 497
19.4.2  三阶段提交 499
19.4.3  事务处理的可选择模型 500
19.5  分布式数据库的并发控制 501
19.5.1  封锁协议 501
19.5.2  时间戳 503
19.5.3  弱一致性复制 504
19.5.4  死锁处理 505
19.6  可用性 507
19.6.1  基于多数的方法 508
19.6.2  读一个、写所有可用的方法 508
19.6.3  站点重建 509
19.6.4  与远程备份比较 509
19.6.5  协调器的选择 509
19.7  分布式查询处理 510
19.7.1  查询转换 510
19.7.2  简单的连接处理 511
19.7.3  半连接策略 512
19.7.4  利用并行性的连接策略 512
19.8  异构分布式数据库 513
19.8.1  数据的统一视图 513
19.8.2  查询处理 514
19.9  目录系统 514
19.9.1  目录访问协议 515
19.9.2  LDAP:轻型目录访问协议 515
19.10  小结 518
术语回顾 520
习题 520
文献注解 522
第20章  并行数据库 524
20.1  引言 524
20.2  I/O并行 524
20.2.1  划分技术 525
20.2.2  划分技术的比较 525
20.2.3  偏斜的处理 526
20.3  查询间并行 527
20.4  查询内并行 528
20.5  操作内并行 529
20.5.1  并行排序 529
20.5.2  并行连接 530
20.5.3  其他关系运算 533
20.5.4  操作的并行计算的代价 534
20.6  操作间并行 534
20.6.1  流水线并行 534
20.6.2  独立并行 535
20.6.3  查询优化 535
20.7  并行系统设计 536
20.8  小结 537
术语回顾 538
习题 538
文献注解 539
第七部分  其他主题
第21章  应用开发和管理 542
21.1  数据库的Web接口 542
21.1.1  动机 542
21.1.2  Web基础 543
21.1.3  Web服务器和会话 545
21.1.4  servlet 546
21.1.5  服务器端脚本 548
21.1.6  提高性能 548
21.2  性能调整 548
21.2.1  瓶颈的定位 549
21.2.2  可调参数 550
21.2.3  硬件的调整 550
21.2.4  模式的调整 551
21.2.5  索引的调整 552
21.2.6  使用物化视图 552
21.2.7  事务的调整 553
21.2.8  性能模拟 555
21.3  性能基准程序 555
21.3.1  任务集 555
21.3.2  数据库应用类型 556
21.3.3  TPC基准程序 556
21.3.4  OODB基准程序 557
21.4  标准化 558
21.4.1  SQL标准 558
21.4.2  数据库连接标准 559
21.4.3  对象数据库标准 560
21.4.4  基于XML的标准 560
21.5  电子商务** 561
21.5.1  电子目录 561
21.5.2  市场 561
21.5.3  订单结算 562
21.6  遗留系统 563
21.7  小结 563
术语回顾 564
习题 565
项目建议 565
文献注解 567
工具 567
第22章  高级查询和信息检索 568
22.1  决策支持系统 568
22.2  数据分析和联机分析处理 569
22.2.1  联机分析处理 569
22.2.2  联机分析处理实现 573
22.2.3  扩展聚集 573
22.2.4  排名次 575
22.2.5  分窗 577
22.3  数据挖掘 578
22.3.1  数据挖掘应用 578
22.3.2  分类 579
22.3.3  关联规则 584
22.3.4  其他类型的关联 586
22.3.5  聚类 586
22.3.6  其他类型的挖掘 587
22.4  数据仓库 588
22.4.1  数据仓库的成分 588
22.4.2  数据仓库模式 589
22.5  信息检索系统 590
22.5.1  关键字搜索 591
22.5.2  文档的索引 594
22.5.3  度量检索的有效性 595
22.5.4  Web搜索引擎 595
22.5.5  目录 596
22.6  小结 598
术语回顾 599
习题 600
文献注解 601
工具 602
第23章  高级数据类型和新的应用 603
23.1  动机 603
23.2  数据库中的时间 604
23.2.1  SQL中的时间定义 604
23.2.2  时态查询语言 605
23.3  空间与几何数据 605
23.3.1  几何信息的表示 606
23.3.2  设计数据库 607
23.3.3  地理数据 608
23.3.4  空间查询 609
23.3.5  空间数据的索引 610
23.4  多媒体数据库 613
23.4.1  多媒体数据格式 613
23.4.2  连续媒体数据 614
23.4.3  基于相似性的检索 614
23.5  移动计算和个人数据库 615
23.5.1  移动计算模型 616
23.5.2  路由和查询处理 616
23.5.3  广播数据 617
23.5.4  连接断开与一致性 617
23.6  小结 619
术语回顾 619
习题 620
文献注解 621
第24章  高级事务处理 623
24.1  事务处理监控器 623
24.1.1  TP监控器体系结构 623
24.1.2  使用TP监控器进行应用协调 625
24.2  事务工作流 626
24.2.1  工作流说明 628
24.2.2  工作流的故障原子性需求 628
24.2.3  工作流的执行 629
24.2.4  工作流的恢复 630
24.2.5  工作流管理系统 630
24.3  主存数据库 631
24.4  实时事务系统 632
24.5  长事务 633
24.5.1  不可串行化的执行 633
24.5.2  并发控制 634
24.5.3  嵌套事务和多级事务 635
24.5.4  补偿事务 635
24.5.5  实现问题 636
24.6  多数据库中的事务管理 637
24.6.1  两级可串行化 638
24.6.2  保证全局可串行化 639
24.7  小结 639
术语回顾 640
习题 641
文献注解 642
第八部分  实例研究
第25章  Oracle 644
25.1  数据库设计和查询工具 644
25.1.1  数据库设计工具 644
25.1.2  查询工具 645
25.2  SQL的变化和扩展 645
25.2.1  对象-关系特征 646
25.2.2  触发器 646
25.3  存储和索引 647
25.3.1  表空间 647
25.3.2  段 647
25.3.3  表 648
25.3.4  按索引组织的表 648
25.3.5  索引 649
25.3.6  位图索引 649
25.3.7  基于函数的索引 650
25.3.8  连接索引 650
25.3.9  域索引 651
25.3.10  划分 651
25.3.11  物化视图 652
25.4  查询处理和优化 653
25.4.1  执行方法 653
25.4.2  优化 654
25.4.3  并行执行 655
25.5  并发控制与恢复 657
25.5.1  并发控制 657
25.5.2  恢复的基本结构 658
25.5.3  管理备用数据库 658
25.6  系统体系结构 659
25.6.1  专用服务器:内存结构 659
25.6.2  专用服务器:进程结构 659
25.6.3  多线程服务器 660
25.6.4  Oracle9i Real Application Clusters 660
25.7  复制、分布以及外部数据 660
25.7.1  复制 660
25.7.2  分布式数据库 661
25.7.3  外部数据源 661
25.8  数据库管理工具 661
25.8.1  Oracle Enterprise Manager 661
25.8.2  数据库资源管理 662
文献注解 662
第26章  IBM DB2 Universal Database 663
26.1  数据库设计和查询工具 664
26.2  SQL的变化和扩展 664
26.2.1  数据类型的支持 664
26.2.2  用户定义函数和方法 665
26.2.3  大对象 665
26.2.4  XML支持 665
26.2.5  索引扩展和约束 666
26.3  存储和索引 666
26.3.1  存储体系结构 666
26.3.2  表、记录和索引 667
26.4  查询处理和优化 668
26.4.1  访问方法 670
26.4.2  连接、聚集和集合运算 670
26.4.3  支持复杂SQL处理 670
26.4.4  多处理器查询处理特性 670
26.4.5  查询优化 671
26.5  并发控制和恢复 671
26.5.1  并发与隔离 672
26.5.2  提交和回滚 673
26.5.3  日志和恢复 673
26.6  系统体系结构 673
26.7  复制、分布和外部数据 675
26.8  数据库管理工具 675
26.9  小结 676
文献注解 676
第27章  Microsoft SQL Server 678
27.1  管理、设计和查询工具 678
27.1.1  数据库开发和可视化数据库工具 678
27.1.2  数据库查询和调整工具 679
27.1.3  SQL Server Enterprise Manager 682
27.2  SQL的变化和扩展 683
27.2.1  数据类型 683
27.2.2  用户定义函数 683
27.2.3  视图 684
27.2.4  触发器 686
27.3  存储和索引 686
27.3.1  文件组 686
27.3.2  文件组中的空间管理 686
27.3.3  表 687
27.3.4  索引 687
27.3.5  扫描和预读 687
27.4  查询处理及优化 687
27.4.1  优化处理概述 687
27.4.2  查询简化 688
27.4.3  重排序和基于代价的优化 688
27.4.4  更新计划 689
27.4.5  部分搜索和启发式搜索 689
27.4.6  查询执行 690
27.5  并发与恢复 690
27.5.1  事务 690
27.5.2  封锁 691
27.5.3  日志和恢复 693
27.6  系统体系结构 694
27.6.1  服务器的线程池 694
27.6.2  内存管理 694
27.7  数据访问 695
27.7.1  数据访问API 695
27.7.2  SQL Server的内部通信 695
27.8  分布与复制 696
27.8.1  分布式异构查询处理 696
27.8.2  复制 697
27.9  关系数据上的全文查询 699
27.10  数据仓库和分析服务 700
27.10.1  分布式转换服务 700
27.10.2  联机分析处理服务 700
27.11  XML和Web支持 702
27.11.1  XML访问SQL Server的
体系结构 702
27.11.2  SQL查询结果序列化成XML 703
27.11.3  在关系数据上提供XML视图 703
27.11.4  在XML上提供关系视图 704
27.12  小结 704
文献注解 704
第九部分  附   录
附录A  网状模型
A.1  基本概念 A1
A.2  数据结构图 A2
A.3  DBTG CODASYL模型 A7
A.4  DBTG数据检索工具 A13
A.5  DBTG更新工具 A20
A.6  DBTG Set处理工具 A22
A.7  网状结构到文件的映像 A27
A.8  小结 A31
习题 A32
文献注解 A35
附录B  层次模型
B.1  基本概念 B1
B.2  树形结构图 B2
B.3  数据检索工具 B13
B.4  更新工具 B18
B.5  可视记录 B21
B.6  层次结构到文件的映像 B22
B.7  IMS数据库系统 B24
B.8  小结 B25
习题 B26
文献注解 B29
附录C  高级关系设计
C.1  多值依赖 C1
C.2  连接依赖 C5
C.3  域-码范式 C8
C.4  小结 C10
习题 C10
文献注解 C11
参考文献 706
索引 734

教学资源推荐
作者: (美)AnHai Doan,Alon Halevy,Zachary Ives 著
作者: 彭智勇 彭煜玮 编著
作者: 丁兆云 周鋆 杜振国 著
作者: [美] 翟成祥(Chengxiang Zhai) 肖恩·马森(Sean Massung) 著
参考读物推荐
作者: 梁晶 李银兵 丁卫颖 编著
作者: (英)C.J. Date 著