自本书第1版出版以来,已经多次印刷,受到了广大师生的普遍欢迎和喜爱。根据读者的反馈以及在教学实践中的体会,我们决定出版第2版,同时开发基于此教材的在线课程,以感谢读者的厚爱。
数据库技术是计算机技术的重要组成部分,也是发展最快、应用最广的计算机技术之一。数据库自20世纪60年代中后期出现以来,经历了五十多年的发展,目前日臻完善,造就了诸多的辉煌,出现了Oracle、DB2、SQL Server等十分成熟、深受用户喜爱的数据库管理软件,带动了一系列的软件产业。如今,不管是在工作中还是在生活和学习中,数据库已经成为各类信息系统和应用系统的技术基础,与人们的生活息息相关。随着新一代信息技术的发展,数据库技术将发挥着更重要的基础作用。
“数据库原理”课程是计算机科学与技术专业和相近专业的主干课程。这门课程的主要特点是实践性强,同时又要求具备良好的理论基础。根据多年的教学体会,我们发现有的学生学完这门课后,仍然难以胜任数据库设计、创建、开发、维护和管理的基本工作,觉得所学的数据库知识比较混乱。出现这种现象的原因可能是多方面的,但我们认为其主要原因之一就是学生类型和教材的搭配问题。高校人才培养的类型大致可以分为研究型人才和应用型人才。应该说,后者所占的比例比较高,他们希望能掌握技术性、实践性比较强的数据库知识,以便为他们毕业后的工作提供技术和方法支持。为此,本书第1版注重于技术型、应用型人才的培养。虽然第1版也提供了必要的理论知识,但其理论部分相对比较薄弱,尤其在关系规范化理论部分,尚未形成系统的理论知识体系。
根据以上考虑,本着“厚基础,重实践”的原则,面向培养基于系统理论知识的应用型、研究型人才,我们着手编著了本书的第2版。与第1版相比,我们在第2版丰富和完善了理论部分,特别是关系规范化理论部分,使之自成一体;同时,在实践部分增加了游标的相关知识,这样就形成了从数据库的理论设计到实践开发和维护的一整套方案。此外,在第2版中删除了介绍SQL Server安装的部分。为了避免内容的扩散,在第1和第2版中所阐述的数据库知识仅依托一种数据库管理系统SQL Server。在第2版中,所涉及的SQL代码都是在当前最新版本SQL Server 2017中调试完成的(实际上,绝大部分SQL代码也适用于其他版本的SQL Server)。本书第2版共分为13章,第1章介绍数据库系统涉及的基本概念,第2章介绍关系数据库的理论基础,尤其系统阐述了关系规范化理论,第3章介绍数据库的设计技术和方法,第4章比较系统地介绍了数据库查询语言SQL,以及数据表创建方法,第5章介绍TransactSQL程序设计方法,第6章介绍如何创建数据库和管理数据库,第7章介绍索引与视图的创建、管理和使用方法,第8章介绍存储过程和触发器的开发和使用方法,第9章介绍游标的创建和使用方法,这是第2版新增加的另一部分,第10章介绍事务管理及并发控制的技术和方法,第11章和第12章分别介绍如何实现和保证数据的完整性和安全性,第13章比较全面地介绍数据库的备份方法及其恢复技术。
本书的特点是,理论部分由浅入深、通俗易懂,在内容上提供了翔实而系统的数据库设计和优化理论;方法和技术部分覆盖面广,具有良好的可操作性,所述内容全部通过调试运行,涵盖数据库开发所需的核心技术和方法。本书是数据库理论知识和实践性知识按照适当比例有机结合的数据库教材,实例翔实,逻辑性强,结构清晰,条理清楚,重点突出。每一章后面都配有适量的习题(包括上机题)以及习题答案,供教学和学习参考使用。
本书适用于研究型本科院校和应用型本科院校,可作为计算机专业及相近专业的数据库课程教材,也可以作为数据库爱好者和初学者的学习教材,同时也可以为从事数据库系统开发的人员提供参考。本书提供所有的源代码,书中所有的实例代码以及面向工程教育认证的教学大纲和PPT课件都可以从清华大学出版社网站上免费下载。
全书由蒙祖强教授执笔,许嘉副教授修订了第1章和第2章并对全书进行审阅。此外,参与本书编写、资料整理和调试程序的还有秦亮曦、孙宇、梁斌梅、姚怡等。
感谢所有关心和支持本书编写和出版的人员,包括广西大学李陶深教授、陈宁江教授以及一些老师、研究生和技术人员,同时感谢清华大学出版社为本书的编写和出版提供的帮助。本书参考了相关文献和网络资源,在此,对这些资料的著者们表示衷心感谢。

蒙祖强许嘉2020年3月