译 者 序随着计算机硬件、软件技术的飞速发展和计算机系统在各行各业的广泛应用,数据已经成为各种机构的宝贵资源,数据库系统对于当今科研部门、政府机关、企事业单位等来说都是至关重要的。而数据库系统中的核心软件是数据库管理系统(DBMS)。DBMS用于高效地创建和存储大量的数据,并对数据进行有效的管理、处理和维护,是数据库专家和技术人员数十年研究开发的结果,是当前最复杂的系统软件之一。要深入掌握数据库系统的原理和技术,进而从事数据库管理软件和工具的开发,必须学习和研究数据库管理系统实现技术。要深入了解数据库系统的内部结构,以开发出高效的数据库应用系统,也需要学习和研究数据库管理系统实现技术。 Hector Garcia-Molina、Jeffrey D. Ullman和Jennifer Widom是斯坦福大学著名的计算机科学家,多年来他们在数据库系统领域中做了大量的开创性工作。由他们撰写的《数据库系统实现》一书是关于数据库系统实现方面,内容最为全面的著述之一。书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分—存储管理器、查询处理器和事务管理器的实现技术。书中还对信息集成的最新技术,例如数据仓库、OLAP、数据挖掘、Mediator(集成层软件)、数据立方体系统等进行了介绍。该书已经作为斯坦福大学计算机科学专业数据库系列课程第二门课的教科书使用。我们在北京大学计算机系研究生课程的教学中也使用了该书中的部分内容。我们认为该书内容深入且全面,技术实用且先进,叙述深入浅出,是一本难得的高层次的教科书。我们将这本书译成中文,介绍给国内广大读者。我们认为这本书既适合于作为高等学校计算机专业研究生教材或本科生课程参考书,又适合于作为从事相关的研究或开发工作的专业技术人员的高级参考资料。杨冬青全面组织了本书的翻译,唐世渭和徐其钧在本书的翻译和审校中做了大量的工作。参加翻译的还有杨良怀、王爱华、王腾蛟、叶茂盛、赵绍军、赵畅。另外,高桂英协助进行了译稿的整理、录入等工作。在本书的翻译过程中,译者参照该书的WWW主页中的勘误表,对书中的疏漏之处进行了更正。此外,对于未包括在勘误表中的明显的笔误和排版错误,我们也做了订正。限于译者水平,译文中疏漏和错误难免,欢迎批评指正。译者 2000年10月于北京大学
前 言本书是为斯坦福大学数据库系列课程的第二门课CS245设计的。第一门课程CS145的内容包括数据库设计和数据库编程,Jeff Ullman和Jennifer Widom为该课程写的教科书《数据库系统入门教程》(A First Course in Database Systems)于1997年由Printice-Hall出版社出版。CS245的内容包括DBMS实现技术,特别是存储结构、查询处理和事务管理。本书的使用斯坦福大学实行每学年4个学期的制度,所以采用本书的主要课程CS245的教学时间仅为10周。在1999年冬季学期,Hector Garcia-Molina使用了本书的“试用”版,教学内容包括以下部分:2.1~2.4节,整个第3章和第4章,5.1节和5.2节,6.1~6.7节,7.1~7.4节,整个第8章,第9章去掉9.8节,10.1-10.3节,11.1节,以及11.5节。第6章和第7章的剩余部分(查询优化)在高级课程CS346中讲授。在该课程中,要求学生实现他们自己的DBMS。本书中未包括在CS245中的其他部分可以在另一门高级课程CS347中讲授,该课程讨论分布式数据库和高级事务处理。实行学期制的学校可以将本书与前一本教科书《数据库系统入门教程》结合使用。我们建议将《数据库系统入门教程》用于第一个学期,同时进行数据库应用程序设计实习。第二学期可以讲授本书的大部分或全部内容。将数据库的学习分为两门课程的好处是,不打算致力于DBMS研究的学生可以仅选修第一门课程,然后可以将数据库技术应用于他们所进入的计算机科学的任何分支。先修要求学生一般不会在大学的第一学年选修使用本书的课程,所以我们期望本书的读者具有计算机科学的传统领域中相当广泛的背景知识。我们假定读者已经学习过数据库程序设计,特别是SQL。读者最好了解关系代数,并且对于基本数据结构有一定程度的熟悉。同样地,关于文件系统和操作系统的知识也是很有帮助的。习题本书包括大量习题,几乎每一节都有习题。我们用惊叹号标记出难度较大的习题,或习题中难度较大的部分。对于特别难的习题,我们用两个惊叹号标记。某些习题或习题中的部分用星号标记。对于这些习题,我们将努力通过本书的Web页面提供解答。这些解答向公众发布,读者可以用来进行自我测试。注意,在有些情况下,习题B要求你对习题A的解答进行修正或改编。如果习题A的某些部分有Web发布的解答,那么在Web页面上也会有习题B的相应部分的解答。 WWW支持本书的主页为 http://www-db.stanford.edu/~ullmam/dbsi.html 在主页上你可以找到标注星号的习题的解答、勘误表以及辅助材料。我们打算在每一次讲授CS245和其他数据库课程的相关部分时,将注释也提供到主页中,包括作业、考试和解答等。 H. G.-M J.D.U. J. W. 加州,斯坦福大学