
本书系统、完整地讲述了当前数据库技术的基本原理和应用实践。主要内容包括数据模型、数据库系统结构、关系数据库、SQL语言、数据库编程、数据库安全性与完整性、数据库并发控制与恢复、关系数据库设计理论、数据库设计、数据库技术新进展等。每章后均附有习题。
本书可作为高等院校数据库课程的教材,也可供从事计算机开发与应用的科研人员、工程技术人员以及其他有关人员参考。
第2版
数据库技术自20世纪60年代末诞生以来,在应用需求的推动下,一直在不断地向前发展。为了反映数据库学科的新技术和新进展,编者对本书的第1版进行了修订。但编写的基本宗旨和风格不变,保持讲述数据库的基本概念、基本理论和基本技术为主的特点。
第2版主要的修改包括如下内容。
(1) 在第1章数据库体系结构中,增加了最新的云数据库架构的介绍。因数据库管理系统的实现方法已有较大变化,因此删除了相关内容。
(2) 为了帮助读者更好地理解数据库的基础理论,在关系代数、结构查询语言(SQL)、数据库保护等内容中增加了一些图示和例子。
(3) 在第3章关系数据库标准语言SQL中,加强了对SQL标准的介绍,补充了不同DBMS对视图更新的约定。
(4) 根据SQL的发展,删除了目前已不常使用的嵌入式SQL。同时新增了一章数据库编程,重点介绍几种目前常见的数据库编程方法,包括PL/SQL、存储过程和函数、ODBC编程和JDBC编程。
(5) 因数据库产品在不断的变化中,第2版删除了对数据库产品的介绍,包括第1版第5章数据库保护中对Oracle安全性、完整性、并发控制、恢复技术的介绍,以及第1版第7章关系数据库管理系统实例。
(6) 对数据库保护技术进行了扩充。在数据库安全性内容中补充了对强制存取控制的介绍,增加了SQL中的安全性控制,介绍如何用SQL定义安全性措施。数据库完整性中增加了SQL中的完整性控制,介绍如何用SQL定义各类完整性规则,如何用触发器定义复杂的完整性规则。
(7) 数据库设计中,补充了UML的简要介绍。
(8) 根据数据库技术的最新进展,修订了第1版第8章数据库技术新进展。增加了反映数据库最新发展的重要技术,包括数据模型的发展、云数据库、内存数据库、开源数据库等,并介绍了数据管理技术的发展趋势。
书中带“”的章节为选学内容。
在修订本书的过程中,努力跟踪数据库学科的技术发展,有选择地把它们纳入教材中。但由于水平有限,书中难免存在不足之处,恳请读者批评指正。
陈红 王珊 张孝2021年4月于中国人民大学信息学院第1版
数据库技术产生于20世纪60年代末,发展至今已有约30年的历史。数据库技术作为数据管理的最有效的手段,它的出现极大地促进了计算机应用的发展,目前基于数据库技术的计算机应用已成为计算机应用的主流。
30年来,数据库技术本身也在不断地发展和完善。关系数据库已取代了早期的层次数据库与网状数据库,成为主流数据库,而新一代数据库也崭露头角。本书以关系数据库为重点,比较全面系统地介绍了数据库的基本概念和基本技术。取材上力图反映当前数据库技术的发展水平和发展趋势。
本书共8章。
第1章绪论,概述了数据管理的进展、数据模型、数据库管理系统和数据库工程的基本概念。
第2~4章讲解了关系数据库的数据模型、数据语言和设计理论,其中对关系数据库的标准语言SQL进行了深入介绍。
第5章详细讨论了数据库的安全性、完整性、并发控制和恢复等数据库保护技术,并以一个关系数据库产品为例,说明数据库保护技术在实际产品中是如何实现的。
第6章讲述了设计数据库应用系统的方法。重点放在设计关系数据库应用系统上。
第7章介绍关系数据库产品的发展过程和5个关系数据库产品实例。
第8章数据库技术的新进展,介绍了数据库技术的发展过程和新一代数据库系统,包括分布式数据库、并行数据库、多媒体数据库、主动数据库、对象关系数据库、数据仓库、工程数据库、统计数据库、空间数据库等。
为了方便读者学习,每章后面都附有一定量的习题。
在本书的编写过程中,张基温教授提出了许多宝贵意见,在此表示诚挚的谢意。由于水平有限,书中难免存在不足之处,恳请读者批评指正。
王珊陈红
于中国人民大学信息学院数据与知识工程研究所
第1章绪论1
1.1引言1
1.1.1数据、数据库、数据库管理系统、数据库系统1
1.1.2数据库技术的产生与发展3
1.2数据模型8
1.2.1数据模型的组成要素8
1.2.2概念模型9
1.2.3常用的数据模型13
1.3数据库系统结构22
1.3.1数据库系统的模式结构22
1.3.2数据库系统的体系结构25
1.4数据库管理系统28
1.4.1数据库管理系统的功能与组成28
1.4.2数据库管理系统的工作过程29
1.5数据库工程与应用30
1.5.1数据库设计的目标与特点31
1.5.2数据库设计方法31
1.5.3数据库设计步骤32
1.5.4数据库系统的组成33
习题35
第2章关系数据模型36
2.1关系数据库概述36
2.2关系数据结构37
2.3关系的完整性41
2.4关系代数44
2.4.1传统的集合运算45
2.4.2专门的关系运算46
2.5关系演算51
2.5.1元组关系演算语言ALPHA51
2.5.2域关系演算语言QBE56
2.6关系数据库管理系统61
习题63
第3章关系数据库标准语言SQL65
3.1SQL概述65
3.1.1SQL的特点66
3.1.2SQL的基本概念67
3.2数据定义68
3.2.1创建、修改与删除基本表68
3.2.2创建与删除索引71
3.3查询73
3.3.1单表查询74
3.3.2连接查询84
3.3.3嵌套查询88
3.3.4集合查询97
3.3.5小结99
3.4数据更新100
3.4.1插入数据100
3.4.2修改数据101
3.4.3删除数据103
3.5视图104
3.5.1定义视图104
3.5.2查询视图108
3.5.3更新视图109
3.5.4视图的用途111
习题112
第4章数据库编程113
4.1PL/SQL113
4.1.1PL/SQL的块结构113
4.1.2变量和常量的定义113
4.1.3流程控制114
4.1.4游标115
4.2存储过程和函数116
4.2.1存储过程117
4.2.2函数119
4.3ODBC编程120
4.3.1开放式数据库互连概述121
4.3.2ODBC工作原理121
4.3.3ODBC编程123
4.3.4ODBC的工作流程124
4.4JDBC编程128
4.4.1概念128
4.4.2实用例子131
4.4.3主要接口分类138
习题139
第5章数据库保护140
5.1安全性140
5.1.1安全性控制的一般方法140
5.1.2SQL中的安全性控制145
5.2完整性149
5.2.1完整性约束条件149
5.2.2完整性控制151
5.2.3SQL中的完整性控制154
5.3并发控制159
5.3.1并发控制概述160
5.3.2并发操作的调度162
5.3.3封锁163
5.3.4活锁和死锁167
5.4恢复169
5.4.1恢复的原理169
5.4.2恢复的实现技术171
5.5数据库复制与数据库镜像175
5.5.1数据库复制175
5.5.2数据库镜像177
习题178
第6章关系数据库设计理论180
6.1数据依赖180
6.1.1关系模式中的数据依赖180
6.1.2数据依赖对关系模式的影响181
6.1.3有关概念182
6.2范式183
6.2.1第一范式(1NF)184
6.2.2第二范式(2NF)185
6.2.3第三范式(3NF)186
6.2.4BC范式(BCNF)188
6.2.5多值依赖与第四范式(4NF)189
6.3关系模式的规范化192
6.3.1关系模式规范化的步骤192
6.3.2关系模式的分解193
习题196
第7章数据库设计198
7.1数据库设计的步骤198
7.2需求分析199
7.2.1需求分析的任务199
7.2.2需求分析的方法200
7.2.3数据字典204
7.3概念结构设计206
7.3.1概念结构设计的方法与步骤206
7.3.2抽象数据并设计局部视图207
7.3.3集成局部视图210
7.3.4UML214
7.4逻辑结构设计215
7.4.1ER图向数据模型的转换216
7.4.2数据模型的优化218
7.4.3设计用户子模式220
7.5数据库物理设计220
7.6数据库实施222
7.7数据库运行与维护225
7.8小结226
习题228
第8章数据库技术新进展229
8.1数据库技术发展概述229
8.2数据模型及数据库系统的发展230
8.2.1第一代数据库系统230
8.2.2第二代数据库系统231
8.2.3新一代数据库系统232
8.3数据库系统发展的特点232
8.3.1数据模型的发展233
8.3.2数据库技术与相关计算机技术相结合236
8.3.3小结249
8.4数据仓库与数据分析250
8.4.1从数据库到数据仓库250
8.4.2数据仓库的基本特征251
8.4.3分析工具253
8.4.4基于数据库技术的数据仓库系统254
8.5开源数据库255
8.5.1开源数据库的特色256
8.5.2三类开源数据库256
8.6数据管理技术的发展趋势258
8.6.1数据管理与应用所面临的巨大变化258
8.6.2数据管理技术面临的挑战259
8.6.3数据管理技术的发展与展望260
习题261
参考文献262
本书为第2版,跟踪数据库学科的技术发展,有选择地把它们纳入教材中来。在原版基本宗旨和风格不变的基础上,保持讲述数据库的基本概念、基本理论和基本技术为主的特点,语言简练,通俗易懂。
陈红,中国人民大学信息学院教授,党委书记兼副院长,数据工程与知识工程教育部重点实验室学术委员会副主任。长期从事数据库教学和科研,作为项目负责人先后承担了国家重点研发计划项目、国家自然科学基金重点项目、国家核高基重大专项课题、国家863项目等20多项;发表论文300余篇;获国家科技进步二等奖、教育部科技进步一等奖和二等奖、北京市科技进步二等奖等奖项。王珊,中国人民大学信息学院教授,博士生导师,国家级教学名师,大数据管理与分析方法研究北京市重点实验室学术委员会主任。长期从事数据库教学和科研,作为项目负责人先后承担了国家自然科学基金重点和重大项目、国家攻关项目、国家重大科技专项项目、国家863项目等50多项;发表论文300余篇。主持研发了一系列具有自主知识产权的数据库管理系统,获电子部科技进步特等奖、国家科技进步二等奖、教育部科技进步一等奖、北京市科技进步一等奖等十余次。张孝,中国人民大学信息学院教授,博士生导师,副院长。长期从事数据库教学和科研,主持和参与了国家自然科学基金项目、国家核高基重大专项项目、国家863重点项目等;发表论文数十篇;获国家科技进步二等奖、教育部科技进步一等奖和二等奖、北京市科技进步一等奖和二等奖等奖项。