前言


数据库技术始于20世纪60年代末,它的诞生极大地推动了计算机技术的应用和发展,已成为计算机信息系统的核心技术和重要基础。进入21世纪后,随着云计算、大数据和机器学习等技术的迅速发展,数据库技术本身已是计算机科学技术中发展最快的分支之一,也是高等学校计算机相关专业的核心专业课程。
本教材的作者长期从事数据库技术的教学工作,在本书的内容选择和结构组织上凝聚了作者近35年数据库课程教学工作的实践经验。本书具有以下特点。
(1) 强调关系数据库,关注NoSQL技术。尽管关系数据库在某些大数据应用场景下显得有些力不从心,但对于大多数应用来说关系数据库还是最有效的解决方案。DBEngines数据库排行榜上排名前三位的均为关系数据库,而且其分值远高于其他产品,显示出其强大的生命力。因此,本书用了8章的篇幅来阐述关系数据库技术,为今后从事数据库应用系统的开发奠定了坚实的基础。同时,为了顺应大数据时代的需求,用单独一章来阐述蓬勃发展中的NoSQL数据库的基本概念和技术特点,为今后进一步学习和使用NoSQL数据库技术提供了良好的开端。现在这两种数据库技术也在相互融合,吸收彼此的优点,如关系数据库SQL Server中添加了文档存储功能,而NoSQL数据库MongoDB中添加了对事务ACID的支持。因此本书内容的选择,有利于学生充分了解两种数据库技术各自的长处,并能正确地选择和合理地使用。
(2) 强调理论联系实际,注重实践应用。选择主流的商用关系数据库产品SQL Server作为实践平台,在介绍关系数据库的基本方法和基本技术的同时,穿插介绍SQL Server中的相应方法和技术,如SQL Server中数据库和基本表的创建和管理、索引和视图的创建和应用、数据库安全技术、并发控制技术以及备份和恢复技术。选择主流的商用NoSQL数据库产品MongoDB来讲解NoSQL技术。附录中的实验指导与教学同步,实验内容具有针对性、启发性和综合设计性。所有这些安排都有利于学生掌握数据库系统的基本方法和基本技术。
第6章系统地介绍了SQL Server中函数、游标、存储过程和触发器的应用。第9章以“学校管理信息系统”为例完整地介绍了数据库设计的全过程。第10章以当前最受关注的Python语言为例介绍数据库应用系统的开发技术。这些内容的阐述有利于学生今后从事数据库应用系统的开发。另外限于篇幅,一个以SQL Server 2014为数据库、以Python 3.6为编程语言开发的针对中学的“排课系统”完整案例将通过电子稿的形式赠送给读者,用于加强实践应用教学。
(3) 数据库技术的概念众多,原理比较抽象,不易理解。作者精心选择和编写了数量多而且题型丰富的练习题,这些练习题不但与教学同步,而且不同题型覆盖不同的知识点,相互之间不重复。通过这些练习题的解答有利于学生对数据库技术的理解、消化和应用。
本书的适应性十分广泛,从初学者到有一定基础的读者,从师生到专业技术人员,具体来说: 
(1) 对于初学者可从本书全面系统地了解数据库技术的基本概念、基本方法和基本技术。
(2) 对于有一定基础的读者可从本书了解有关数据库的一些新概念和新技术,如NoSQL基本概念和技术特征,Python连接和操作SQL Server技术。
(3) 对于教师和学生,本书除了可以作为教材外,也是一本很好的教学参考书。第9章中的数据库设计实例、附录中的实验指导、各章的练习题以及赠送的中学排课系统,都是很好的教学参考资料。
(4) 对于专业技术人员,可从本书了解主流的商用关系数据库产品SQL Server和NoSQL数据库产品MongoDB的基本使用方法,从而在实践中掌握数据库技术。
考虑到学校机房以Windows 7平台为主,书中关系数据库例题在SQL Server 2014环境下调试通过,NoSQL数据库例题在MongoDB 3.4.18环境下调试通过,读者可根据自己的具体情况灵活选用。需要说明的是,本书不是SQL Server和MongoDB的使用手册,有关这两种数据库产品更详细、更深入、更全面完整的技术文档请查阅其官网。使用本书的老师若需要练习题答案、PPT文件、排课系统源代码、主要例题代码和创建实验用数据库代码、教学大纲、期末试卷等,可从清华大学出版社网站下载。
本书结构合理、概念清晰、图文并茂、例题丰富,适合作为高等学校计算机、软件工程、数据科学与大数据技术、大数据管理与应用、人工智能、物联网工程、电子商务等相关专业本科生数据库课程的教材,也可作为电器类专业研究生数据库课程的教材,还可作为计算机等级考试(三级数据库技术)的参考书和自学教材。
由于编者水平有限,虽然力求精准,但疏漏与不足之处在所难免,敬请专家和读者指正。
编者
2020年4月于上海