····························································
第3版前言Foreword国家精品资源共享课“数据库系统及应用”于2014在“爱课程”网上线,已经3年多了。第一批“十二五”普通高等教育本科国家级规划教材、国家精品资源共享课配套教材《数据库系统原理与设计》(第2版)及配套教材《数据库系统原理与设计实验教程》(第2版)于2012年出版,也已近5年了。该套教材引起数据库界同仁和学生的很大反响,已被全国50余所高校选作教材,4年多共印刷了9次。笔者所在学校针对“数据库系统原理”课程开展翻转课堂教学,从2013年试点到2015年全面实施也已经4年多了。为了更好地适应大数据时代对数据库课程的教学需求,我们从2016年下半年开始着手对本书进行修订。本次修订仍然坚持“培养学生‘三会’数据库”的目标,即会设计数据库、会管理数据库、会开发数据库应用程序,强调数据库设计与应用能力的培养,着重培养学生的应用建模能力,重点是数据库概念模型。第3版对章节进行了适当的调整,使得结构更加合理、可用性更强。
本次修订的主要内容包括:
(1) 对第4、6两章涉及的大学选课系统、网上书店系统数据库设计实例的数据库设计流程进行了重新梳理和调整,以便更好地指导学生开展数据库设计大作业的实践活动。重新梳理和调整后的数据库设计流程为:系统需求分析(需求概述和系统边界、主要业务处理流程、功能需求分析、数据需求分析、业务规则及完整性约束分析)→数据库概念设计(确定基本实体集及属性、主要业务局部概念建模、定义联系集及属性、设计完整ER模型、检查是否满足需求)→数据库逻辑设计及模式求精→数据库物理设计→数据库应用与安全设计。
(2) 将原第3章中的SQL数据定义与更新语言,第9章中的游标、存储过程和触发器等数据库编程的内容独立出来构成新版的第7章SQL数据定义、更新及数据库编程,并新增TSQL语言简介的内容,这样有利于提高学生的数据库编程能力。因此,新版的第3章集中介绍SQL查询语言,有利于学生深刻理解关系数据库逻辑模型,灵活掌握关系代数和SQL查询语言;第3版的第9章集中介绍数据库安全性与完整性,并深入地介绍触发器应用于数据库安全控制和复杂的用户自定义完整性约束。◆数据库系统原理与设计(第3版)(3) 对原第7、8章的内容进行了适当的压缩,并合并作为第3版的第8章数据库存储结构与查询处理。
(4) 删除了原书第12章Web数据库,新增了第12章数据管理技术前沿,主要内容包括:大数据的兴起、大数据处理平台和框架、数据库面临的挑战、NoSQL数据库、NewSQL数据库。设计这一章的目的是让学生了解数据管理技术的前沿,扩展学生的知识面。今后改版时,这一章的内容将与时俱进,不断更新。
(5) 将原第11.3节数据库应用开发实践的主要内容放到与本书配套的《数据库系统原理与设计实验教程》(第3版)中;考虑到ASP开发技术已经过时,将原来的ASP设计实例改为JSP设计实例;第3版的第11.3节简单介绍了对象\|关系映射框架。
(6) 调整了部分章节的内容和顺序,增加和调整了部分章节的例题和习题,对部分概念和文字进行了修改。
(7) 将配套教材《数据库系统原理与设计实验教程》(第3版)中使用的SQL Server 2005平台改为SQL Server 2014。
与其他教材相比,本书的主要特点如下。
(1) 强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库逻辑模型,灵活掌握关系代数和SQL查询语言。
(2) 以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,着力培养学生应用建模的能力,重点是使学生深刻理解数据库概念模型,提高数据库设计能力。
(3) 涵盖了关系数据库物理存储结构、查询处理和查询优化等内容,这些内容一是有利于学生更好地理解关系数据库的物理模型,二是有利于学生更好地理解关系数据库管理系统(DBMS)的基本原理,三是有利于学生从底层的角度理解SQL查询。
(4) 从使用者的角度,以应用需求为驱动介绍数据库的安全性、完整性以及事务、并发和恢复等内容,使学生深刻理解关系数据库管理系统(DBMS)的基本原理。
(5) 增加数据库应用开发和数据管理技术前沿介绍,一方面增强学生的实践能力,另一方面让学生了解数据库的前沿和发展方向,为后续的数据库应用开发实践和进一步学习打下基础。
本次修订方案由万常选、廖国琼、吴京慧、刘喜平、刘爱红等讨论确定,万常选负责第1、2、8章的修订,廖国琼负责第4、5、6、10章的修订,吴京慧负责第3、7、9章的修订,刘喜平负责第11、12章的修订。最后,万常选对全书的修订稿进行了修改、补充和总纂。
本书在编写和修订过程中,参阅了大量的参考书目和文献资料,在此向参考资料的作者表示衷心的感谢。
在整个编写和修订过程中,尽管我们一直怀着敬畏的心情、保持严谨的态度,也付出了辛勤的劳动,限于水平,书中不足之处仍然在所难免,敬请各位读者批评指正,并将您的宝贵意见反馈给我们(wanchangxuan@263.net)。我们对您的厚爱致以崇高的敬意!
编者
2017年6月
········································
第2版前言Foreword《数据库系统原理与设计》及配套教材《数据库系统原理与设计实验教程》于2009年出版后,得到了数据库界同仁和学生的很大反响,已被全国40余所高校选作教材,于2010年12月获得江西省第四届普通高等学校优秀教材一等奖,并被江西省教育厅推荐参评教育部普通高等教育“十二五”国家级规划教材。以该教材为基础的课程建设、教材建设和教学方法研究不断深入,我们于2010年6月完成了江西省高等学校教学改革研究课题“‘数据库系统及应用’课程的双主体教学模式与教学方法改革研究”,并于2010年12月获得江西省第12次优秀教学成果一等奖(成果名称: “数据库系统及应用”国家精品课程建设的探索与实践)。2011年,“‘数据库系统原理’课程探究式教学方法的探索与实践”立项为江西省高等学校教学改革研究课题。
本书第1版出版后,我们不断地收集来自教学一线的师生们的反馈。反馈意见认为,本书具有鲜明的特色,尤其是数据库设计的内容对于学习“如何设计数据库”有很大帮助,但是学生在实际分析及建模中仍然存在一些困惑,例如,复杂业务中如何在联系集和实体集之间取舍,如何标识联系集,如何处理多元联系,业务语义对E\|R建模有什么影响等。针对这些问题,并带着自己的一些新的思考,我们着手对本书进行修订。本次修订仍然围绕“培养学生会‘用’数据库”的目标,进一步提升学生的概念建模能力,培养学生会“设计”数据库。此外,第2版章节更加合理,可用性更强。
本次修订的主要内容有:
(1) 对第4章数据库建模(实体联系模型)和第6章关系数据库设计实例(网上书店)进行了重写。通过引入实体集与联系集之间的依赖约束、多值联系等概念,将实体集分为基本实体集、弱实体集、依赖实体集和联系实体集4类,较好地解决了ER建模中经常遇到的一些困惑。
(2) 为了适用于不同课时、不同层次的开课需要,将部分章、节的内容作为选讲内容,通过在章节前加标注。◆数据库系统原理与设计(第3版)(3) 调整了部分章节的顺序,增加和调整了部分章节的例题和习题,对部分概念和文字进行了修改。
(4) 将配套教材《数据库系统原理与设计实验教程》中使用的SQL Server 2000平台改为SQL Server 2005。
与其他教材相比,本书的主要特点如下。
(1) 强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库逻辑模型,灵活掌握关系代数和SQL查询语言。
(2) 以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,着力培养学生应用建模的能力,重点是使学生深刻理解数据库概念模型,提高数据库设计能力。
(3) 涵盖了关系数据库物理存储结构、查询处理和查询优化等内容,这些内容一是有利于学生更好地理解关系数据库的物理模型,二是有利于学生更好地理解关系数据库管理系统(DBMS)的基本原理,三是有利于学生从底层的角度理解SQL查询。
(4) 从使用者的角度,以应用需求为驱动介绍数据库的事务、并发、恢复和完整性、安全性等内容,使学生深刻理解关系数据库管理系统(DBMS)的基本原理。
(5) 增加数据库应用开发和Web数据库技术介绍,使学生能了解数据库常用访问方法和Web数据库的实现技术,为后续学习和数据库应用开发实践打下一定的基础。
本次修订由万常选执笔,廖国琼、吴京慧、刘喜平、刘爱红等参与了讨论,并对修改稿进行了审阅,提出了许多宝贵的建议和意见。
本书及配套的《数据库系统原理与设计实验教程》(第2版)是国家精品课程“数据库系统及应用”的建设教材,有配套的教学PPT(需要者请到清华大学出版社网站下载)和课程网站。本书可作为计算机相关专业本科生的数据库系统原理课程教材,也可供数据库爱好者自学和参考。
本书在编写过程中,参阅了大量的参考书目和文献资料,在此向参考资料的作者表示衷心的感谢。同时,也对所有关心本书和帮助我们的老师和学生表示衷心的感谢。
限于水平,书中不足之处在所难免,敬请各位读者批评指正。对本书的意见请反馈给我们(wanchangxuan@foxmail.com),谢谢。
编者
········································
第1版前言Foreword数据库系统是计算机系统的重要组成部分,是企业、机构、互联网乃至整个信息社会赖以运转的基础,在当今社会中扮演着越来越重要的角色。正是由于数据库具有重要的基础地位,数据库理论与技术教育已成为现代计算机科学和相关学科教育中的核心部分,所有计算机及其相关专业的学生都有必要掌握和熟悉数据库理论与技术。
通过多年的数据库课程教学,我们发现学生在学习数据库课程之后,仍然不会“用”数据库——不会设计数据库,不会管理数据库,不会开发数据库应用程序。带着这些问题,我们进行了一系列的数据库课程的教学改革探索与实践,并取得了一定的成绩,如“数据库系统及应用”于2007年获得国家精品课程立项。目前,虽然数据库教材很多,但是很难找到完全适合教学需要的教材。于是,我们决定动手编写一套让学生会“用”数据库的教材,一本“够用”的教材,这便是编写本书的初衷。本书虽然不一定能完全达到目标,但至少开始了有益的尝试。
数据库技术发展至今,已经相当成熟,相关知识博大精深。本书定位于面向计算机及其相关专业本科生的第一本数据库入门教材,在内容选择上颇费思量。在构思本书之前,本书作者一直在思考: 对于计算机及其相关专业的本科生来说,需要掌握哪些数据库知识?回答这个问题并不容易,这是因为数据库知识非常丰富,而且由于课时有限,学生不可能了解所有数据库知识。另外,不同用户在使用数据库时,他们的视角是不同的。数据库系统的用户大致可分为4类: 数据库管理员、数据库系统分析员、数据库设计人员、数据库应用程序员及终端用户。我们认为,计算机及其相关专业的学生既可能做数据库管理员,也可能成为系统分析员和数据库设计员,更可能是数据库应用程序员。因此,作为一本数据库入门教材,必须要提供这些方面的知识,为学生以后的深入学习打下基础。◆数据库系统原理与设计(第3版)第1版前言基于这些考虑,本书内容包括以下几个部分。
数据库系统基本概念(第1章)。该部分介绍了数据、数据管理、数据库、数据库管理系统和数据库系统等基本概念。同时,也介绍了数据模型、数据抽象、数据库模式等概念。
关系数据库基础(第2章和第3章)。第2章介绍了关系模型(关系数据结构、关系操作和关系完整性约束条件)以及关系代数;第3章介绍了关系数据库的标准语言——SQL,包括数据定义DDL语言、数据控制DCL语言和数据操纵DML语言。
关系数据库设计(第4章~第6章)。第4章介绍了数据库建模方法,包括实体联系模型基本概念、概念模型设计过程以及如何将ER模型转化为关系模型;第5章介绍了关系数据库设计理论,着重讲述了函数依赖及规范化理论;第6章通过一个实例演示了关系数据库设计过程。
关系数据库管理系统(第7章~第10章)。第7章介绍了关系数据库物理存储结构,包括文件组织、记录组织、索引技术以及物理数据库设计;第8章介绍了查询处理技术,包括查询处理过程、各种关系操作算法以及查询优化技术;第9章讲述了数据库完整性和安全技术,包括数据库安全性、完整性的基本概念和措施,游标、存储过程和触发器,以及应用与安全设计;第10章阐述了事务管理和恢复相关技术。
数据库应用开发(第11章和第12章)。第11章介绍了数据库应用系统的体系结构、常用数据库访问技术和数据库应用开发技术;第12章介绍了Web数据库基本概念,讨论了Web数据库访问技术,并介绍了XML数据库基本概念。
与其他教材相比,本书的主要特点如下。
(1) 强化对关系数据库模式的理解,以模式导航图为工具,使学生深刻理解关系数据库查询原理,灵活掌握关系代数和SQL查询语言。
(2) 以案例为驱动,通过分析应用需求来介绍数据库建模的基本方法,使学生深刻理解关系数据库设计思想,提高数据库设计能力。
(3) 增加关系数据库物理存储结构、查询处理和查询优化等内容,一是有利于学生从底层的角度理解SQL查询,二是有利于学生更好地理解关系数据库的物理设计,三是有利于学生更好地理解关系数据库的优点和缺点。该部分内容可根据授课对象的不同有选择地教学。
(4) 从使用者的角度,以应用需求为驱动介绍数据库的事务、并发、恢复和完整性、安全性等内容。
(5) 增加数据库应用开发和Web数据库技术介绍,使学生能了解数据库常用访问方法和Web数据库的原理和实现技术,为后续学习和数据库应用开发实践打下一定的基础。
本书由万常选、廖国琼、吴京慧和刘喜平编写,其中,第1、2、7、8章由万常选执笔,第4、5、6、10章及7.6节、9.6节由廖国琼执笔,第3、9章及11.1节由吴京慧执笔,第11、12章由刘喜平执笔。万常选提出本书的编写大纲,并对全书的初稿进行了修改、补充和总纂。
本书及配套的《数据库系统原理与设计实验教程》是国家精品课程“数据库系统及应用”的建设教材,有配套的电子课件和教学网站(http://skynet.jxufe.edu.cn/jpkc/sjk),可作为计算机相关专业本科生的数据库系统原理课程教材,也可供数据库爱好者自学和参考。
本书在编写过程中,参阅了大量的参考书目和文献资料,在此向参考资料的作者表示衷心的感谢。
由于作者学识浅陋,书中不足之处在所难免,敬请各位读者批评指正。编者