前言 数据库是信息技术领域的核心技术之一,是最重要的基础软件之一,在信息技术的发展中具有举足轻重的地位。本书重点讨论数据库管理系统的基础知识、基本原理和关键实现技术。 1. 编写缘由 2022年年初,我们针对国内本科生数据库教学、国外顶尖高校本科生数据库教学、企业对数据库人才满意度等进行了一系列调研,调查对象包括国内98所高校的170个数据库课堂,CS Ranking数据库排名前50的26所海外高校的37个课堂,以及部分用人企业。调查结果显示,国内数据库教学内容主要集中在数据库及数据库管理系统基本概念、SQL、数据库设计等内容上。海外70%以上的被调查高校提供了数据库管理系统内核实现的课程。国内用人企业对高校输送的数据库人才也不满意,认为难以找到了解数据库内核实现的人才,需要进行较长时间的再培训。究其原因,近年来随着中美关系的变化,国内企业越来越重视研发具有自主知识产权的系统软件,而国内高校的课堂教学内容未能及时进行调整。 中国人民大学信息学院从20世纪90年代开始,在研究生中开设数据库管理系统原理与实现的课程,但这个课不是针对零基础的学生,其先修课是数据库系统概论。从2020年开始,我们对图灵实验班(计算机拔尖班)进行数据库教学改革,针对零基础的学生讲授数据库内核实现技术,并研发了相应的实验平台RucBase。四年的实践证明,这种改革是可行的、成功的。但在教学中我们也发现,国内数据库概论类教材百花齐放,而数据库管理系统实现类教材凤毛麟角。 2022年,中国人民大学牵头了教育部“101计划”数据库系统课程建设以及教育部“101计划”数据库系统课程虚拟教研室,参与单位包括清华大学、北京大学、浙江大学、西北工业大学、哈尔滨工业大学、山东大学、武汉大学、西安电子科技大学、中国科技大学、华东师范大学、中山大学、东南大学、北京交通大学。在此平台上,大家合力完成了海外高校数据库教学调研,绘制了知识图谱,撰写了知识点教案。同时 “101计划”也给我们提供了契机,让我们终于下决心结合多年的授课经验,撰写了本书。 2. 内容与特色 本书面向数据库零基础的学生,系统讲授数据库的基本概念、SQL、数据库管理系统基本原理与实现技术。全书分为4篇共12章。 第一篇为基础篇,包括概述、关系数据模型、关系数据库标准语言SQL、高级SQL,共4章。 第二篇为数据存取篇,包括存储管理、索引,共2章。 第三篇为查询处理篇,包括查询处理、查询优化、查询执行,共3章。 第四篇为事务处理篇,包括事务处理概述、并发控制、故障恢复,共3章。 本书具有如下特色: (1) 视角新颖。有别于传统数据库教材教学生如何“用数据库”,本书重点教学生如何“造数据库”,从基本概念与基本原理,到数据库核心组件的实现技术,由浅入深,脉络清晰。 (2) 内容全面系统。面向数据库零基础的学生,在知识点选取上秉承“更基础、更核心”的理念,首先从数据库基本概念入手,讲解数据模型、数据库的模式结构、关系模型、SQL、SQL编程等内容,然后在此基础上,系统地介绍关系数据库的存储管理、查询处理、事务管理等知识点。 (3) 实现原理与实现算法合理取舍。本书以开源数据库系统为基础,系统讲解数据库内核实现原理的同时,配合部分实现算法,在易于理解与深度之间取得平衡。 (4) 提供配套实验平台。面向零基础学生讲授数据库管理系统内核实现的最大难点是如何做实验,为此我们研制了实验平台并在GitHub上开源。该实验平台为学生搭建好数据库管理系统的整体框架,配合本书的知识点设计了若干任务,每项任务又细化为多项子任务,供学生以“完形填空”的方式进行实践,包括按照要求设计数据结构、设计算法等。实验平台可以自动完成对学生实验的评估。 对于本书的使用建议如下: (1) 对于数据库零基础的学生,可以完整地使用本书进行教学。 (2) 对于已经掌握数据库基础知识,想进一步了解数据库管理系统实现原理与技术的学生,可以学习本书的第二、三、四篇。 3. 编写过程与分工 本书编写过程历时一年零八个月,其中经历了大纲编写和审定、书稿撰写和修改、龙岩导教班试用和反馈,再次修改交审稿组审稿,根据审稿意见修改和定稿。主要编写过程如下: 2022年3月,完成编写大纲,提交“101计划”秘书处。 2022年12月1日,“101计划”秘书处组织了对大纲以及样章的评审,评审组长为西北工业大学李战怀教授,评审专家包括中国人民大学王珊教授、清华大学周立柱教授、哈尔滨工业大学高宏教授、东北大学杨晓春教授、山东大学彭朝晖教授。会后,我们按照专家组的意见对大纲进行了修订,并于2023年6月30日完成了教材初稿。 2023年7月18日至22日,我们在龙岩召开了“数据库管理系统原理与实现”导教班,来自全国24所高校的34位教师参加了此次导教班。在导教班上我们印发了初稿,请老师们分组审阅并提出修改意见。 2023年8月至9月,我们按照导教班提出的修改意见,对书稿进行了修改和完善。 2023年10月,编写组内部交换互审,并进行再次修改。 2023年10月底,将书稿提交给评审委员会审稿。评审委员会由西北工业大学李战怀教授任组长,评审委员包括武汉大学彭志勇教授、华东师范大学王晓玲教授、宁夏大学杜方教授。评审专家认真审阅了书稿,并召开评审会进行讨论和意见反馈。会后,我们按照专家组的意见再次进行了认真修改,最终定稿,并提交出版社。 4. 致谢 本书的完成凝集了很多人的心血。焦敏老师帮助完成了本书的排版工作,博士生刘宇涵帮助完成了本书的图片修改工作。 由西北工业大学李战怀教授、武汉大学彭志勇教授、华东师范大学王晓玲教授、宁夏大学杜方教授组成的教材评审委员会,由西北工业大学李战怀教授、中国人民大学王珊教授、清华大学周立柱教授、哈尔滨工业大学高宏教授、东北大学杨晓春教授、山东大学彭朝晖教授组成的教材大纲和样章评审委员会对本书的编写提出了宝贵的修改意见。 在龙岩导教班上,山东大学彭朝晖,华东师范大学王晓玲,宁夏大学杜方,哈尔滨工业大学邹兆年,西北工业大学李宁、赵晓南,东北大学聂铁铮、刘思宇,内蒙古大学王少鹏,扬州大学陈才扣,厦门理工学院王琰,天津工业大学荣垂田,北京信息科技大学车蕾、王晓波,华中科技大学瞿彬彬、杨茂林,北京邮电大学郭迎,西安电子科技大学夏小芳,西安电子科技大学李翠敏、王小兵,大连海事大学张俊、张德珍,北京化工大学尚颖,吉林大学王新颖、康辉,昆明理工大学游进国、贾连印,华中师范大学罗昌银,山西农业大学樊建军、李小凡,西南科技大学张世铃,成都理工大学李红军,广东理工学院陈伟莲、梁玉英等审阅了本书初稿,并提出了中肯的建议。 在书稿的撰写和评审过程中,清华大学出版社龙启铭编辑提供了诸多帮助。 在此,一并向上述人员表示衷心的感谢。 本书编写分工情况如下: 第一篇由杜小勇、陈晋川完成;第二篇由陈红、冯玉完成;第三篇由冯玉、张孝完成;第四篇由卢卫完成。杜小勇和陈红审定了全书。 在编写过程中,编者参考了国外相关教材、专著、论文和网上资料,努力跟踪数据库管理系统的新发展和新技术,并有选择地将其纳入本书。由于作者水平有限,书中难免有不足之处 ,敬请读者不吝赐教。 杜小勇2023年10月于北京目录