数据库系统概念亚伯拉罕西尔伯沙茨(Abpdf下载pdf下载

数据库系统概念亚伯拉罕西尔伯沙茨(Ab百度网盘pdf下载

作者:
简介:本篇主要提供数据库系统概念亚伯拉罕西尔伯沙茨(Abpdf下载
出版社:互动创新图书专营店
出版时间:
pdf下载价格:9.00¥


预览


内容介绍

5b62b57bNd3cb9f8a.png


 书名:  数据库系统概念(原书第7版)|8081317  图书定价: 149元  图书作者: [美] 亚伯拉罕·西尔伯沙茨 (Abraham Silberschatz) [美] 亨利·F. 科思 (Henry F. Korth) [印] S. 苏达尔尚(S. Sudarshan)  出版社:  机械工业出版社  出版日期:  2021/6/2 0:00:00  ISBN号: 9787111681816  开本: 16开 页数: 820 版次: 1-1 内容简介《数据库系统概念》是数据库系统方面的经典教材之一,其内容由浅入深,既包含数据库系统基本概念,又反映数据库技术新进展。它被国际上许多大学所采用,包括斯坦福大学、耶鲁大学、得克萨斯大学、康奈尔大学、伊利诺伊大学等。

 目录

出版者的话

译者序

前言

关于作者

第1章 引言1

1.1 数据库系统应用1

1.2 数据库系统的目标3

1.3 数据视图6

1.3.1 数据模型6

1.3.2 关系数据模型6

1.3.3 数据抽象7

1.3.4 实例和模式8

1.4 数据库语言9

1.4.1 数据定义语言9

1.4.2 SQL数据定义语言10

1.4.3 数据操纵语言10

1.4.4 SQL数据操纵语言11

1.4.5 从应用程序访问数据库11

1.5 数据库设计12

1.6 数据库引擎12

1.6.1 存储管理器13

1.6.2 查询处理器14

1.6.3 事务管理14

1.7 数据库和应用体系结构15

1.8 数据库用户和管理员16

1.8.1 数据库用户和用户界面16

1.8.2 数据库管理员17

1.9 数据库系统的历史17

1.10 总结20

术语回顾21

实践习题22

习题22

工具22

延伸阅读23

参考文献23

*部分 关系语言

第2章 关系模型介绍26

2.1 关系数据库的结构26

2.2 数据库模式28

2.3 码29

2.4 模式图32

2.5 关系查询语言32

2.6 关系代数33

2.6.1 选择运算33

2.6.2 投影运算34

2.6.3 关系运算的复合34

2.6.4 笛卡儿积运算35

2.6.5 连接运算36

2.6.6 集合运算37

2.6.7 赋值运算38

2.6.8 更名运算39

2.6.9 等价查询40

2.7 总结40

术语回顾41

实践习题41

习题42

延伸阅读43

参考文献44

第3章 SQL介绍45

3.1 SQL查询语言概览45

3.2 SQL数据定义46

3.2.1 基本类型46

3.2.2 基本模式定义47

3.3 SQL查询的基本结构49

3.3.1 单关系查询49

3.3.2 多关系查询51

3.4 附加的基本运算55

3.4.1 更名运算55

3.4.2 字符串运算56

3.4.3 select子句中的属性说明57

3.4.4 排列元组的显示次序 57

3.4.5 where子句谓词58

3.5 集合运算58

3.5.1 并运算59

3.5.2 交运算60

3.5.3 差运算60

3.6 空值61

3.7 聚集函数62

3.7.1 基本聚集62

3.7.2 分组聚集63

3.7.3 having子句65

3.7.4 对空值和布尔值的聚集66

3.8 嵌套子查询67

3.8.1 集合成员资格67

3.8.2 集合比较68

3.8.3 空关系测试69

3.8.4 重复元组存在性测试70

3.8.5 from子句中的子查询71

3.8.6 with子句72

3.8.7 标量子查询73

3.8.8 不带from子句的标量73

3.9 数据库的修改74

3.9.1 删除75

3.9.2 插入76

3.9.3 更新77

3.10 总结78

术语回顾79

实践习题79

习题81

工具83

延伸阅读84

参考文献84

第4章 中级SQL85

4.1 连接表达式85

4.1.1 自然连接85

4.1.2 连接条件88

4.1.3 外连接89

4.1.4 连接类型和条件92

4.2 视图92

4.2.1 视图定义93

4.2.2 在SQL查询中使用视图94

4.2.3 物化视图95

4.2.4 视图更新95

4.3 事务97

4.4 完整性约束98

4.4.1 单个关系上的约束99

4.4.2 非空约束99

4.4.3 唯一性约束100

4.4.4 check子句100

4.4.5 引用完整性100

4.4.6 给约束赋名102

4.4.7 事务中对完整性约束的违反103

4.4.8 复杂check条件与断言103

4.5 SQL的数据类型与模式105

4.5.1 SQL中的日期和时间类型105

4.5.2 类型转换和格式化函数105

4.5.3 缺省值106

4.5.4 大对象类型107

4.5.5 用户自定义类型108

4.5.6 生成唯一码值110

4.5.7 create table的扩展111

4.5.8 模式、目录与环境111

4.6 SQL中的索引定义112

4.7 授权113

4.7.1 权限的授予与收回114

4.7.2 角色115

4.7.3 视图的授权116

4.7.4 模式的授权117

4.7.5 权限的转移117

4.7.6 权限的收回118

4.7.7 行级授权119

4.8 总结119

术语回顾120

实践习题121

习题122

延伸阅读123

参考文献123

第5章 高级SQL125

5.1 使用程序设计语言访问SQL125

5.1.1 JDBC126

5.1.2 从Python访问数据库132

5.1.3 ODBC132

5.1.4 嵌入式SQL134

5.2 函数和过程136

5.2.1 声明及调用SQL函数和过程136

5.2.2 用于过程和函数的语言结构137

5.2.3 外部语言例程140

5.3 触发器141

5.3.1 对触发器的需求141

5.3.2 SQL中的触发器141

5.3.3 何时不用触发器144

5.4 递归查询146

5.4.1 使用迭代的传递闭包146

5.4.2 SQL中的递归148

5.5 高级聚集特性149

5.5.1 排名150

5.5.2 分窗153

5.5.3 旋转154

5.5.4 上卷和立方体155

5.6 总结158

术语回顾158

实践习题158

习题160

工具161

延伸阅读162

第二部分 数据库设计

第6章 使用E-R模型的数据库设计164

6.1 设计过程概览164

6.1.1 设计阶段164

6.1.2 设计选择165

6.2 实体-联系模型166

6.2.1 实体集166

6.2.2 联系集167

6.3 复杂属性169

6.4 映射基数171

6.5 主码174

6.5.1 实体集174

6.5.2 联系集175

6.5.3 弱实体集176

6.6 从实体集中删除冗余属性177

6.7 将E-R图转换为关系模式180

6.7.1 强实体集的表示180

6.7.2 具有复杂属性的强实体集的表示180

6.7.3 弱实体集的表示182

6.7.4 联系集的表示182

6.7.5 模式的冗余183

6.7.6 模式的合并184

6.8 扩展的E-R特性184

6.8.1 特化185

6.8.2 概化186

6.8.3 属性继承186

6.8.4 特化上的约束187

6.8.5 聚集187

6.8.6 转换为关系模式188

6.9 实体-联系设计问题190

6.9.1 E-R图中的常见错误190

6.9.2 使用实体集还是属性191

6.9.3 使用实体集还是联系集192

6.9.4 二元还是n元联系集193

6.10 数据建模的可选表示法194

6.10.1 可选的E-R表示法195

6.10.2 统一建模语言196

6.11 数据库设计的其他方面198

6.11.1 功能要求198

6.11.2 数据流、工作流198

6.11.3 模式演化198

6.12 总结199

术语回顾200

实践习题200

习题202

工具203

延伸阅读204

参考文献204

第7章 关系数据库设计205

7.1 好的关系设计的特点205

7.1.1 分解206

7.1.2 无损分解207

7.1.3 规范化理论208

7.2 使用函数依赖进行分解208

7.2.1 符号惯例209

7.2.2 码和函数依赖209

7.2.3 无损分解和函数依赖211

7.3 范式212

7.3.1 Boyce-Codd范式212

7.3.2 第三范式214

7.3.3 BCNF和3NF的比较215

7.3.4 更高级的范式216

7.4 函数依赖理论216

7.4.1 函数依赖集的闭包216

7.4.2 属性集的闭包218

7.4.3 正则覆盖219

7.4.4 保持依赖222

7.5 使用函数依赖的分解算法223

7.5.1 BCNF分解223

7.5.2 3NF分解225

7.5.3 3NF算法的正确性226

7.6 使用多值依赖的分解227

7.6.1 多值依赖227

7.6.2 第四范式229

7.6.3 4NF分解229

7.7 更多的范式230

7.8 原子域和*范式231

7.9 数据库设计过程232

7.9.1 E-R模型和规范化232

 编辑推荐数据库领域的殿堂级作品,数据库理论与实战兼修的必备之选

1  前 言1

Database System Concepts, Seventh Edition

 

 

 

 

 

数据库管理已经从一种专门的计算机应用发展为几乎所有企业中的个核心成分, 因此, 有关数据库系统的知识已成为计算机科学教育中必不可少的部分 在本书中, 我们讲述数据库管理的基本概念, 这些概念包括数据库设计、数据库语言、数据库系统实现等多个方面

本书可作为年级或四年级本科生数据库入门课程的教科书, 也可作为一年级研究生的教科书。除了涵盖入门课程的基本内容外,本书还包括可作为课程补充材料或作为高级课程  介绍性材料的高级内容

我们仅要求读者熟悉基本的数据结构、计算机组成和一种高级程序设计语言,例如Java、C、C叶 或 Python概念都以直观的方式加以描述 , 其中的许多概念基于我们大学运行的例子加以阐释。本书中包括重要的理论结果,但省略了形式化证明,取而代之的是用图  表和例子来说明为什么结论是正确的。对于形式化描述和研究结果的证明,读者可以参见参  考文献中列出的研究论文和高级教材。

本书中包括的基本概念和算法通常基于当今商用或试验性的数据库系统中采用的概念    和算法我们的目标是在通用环境下描述这些概念和算法 , 没有与某个特定的数据库系统绑定,虽然在恰当的时候我们确实提供了对某些特定系统的引用。

在第 7 版中, 我们保持了前面版本的总体风格 , 同时对内容和结构进行了更新来反映数据库设计、管理和使用的方式所发生的变化。其中一个重要的变化是“大数据”系统的广泛   应用我们还考虑了数据库概念在教学方面的发展趋势 , 并在适当的地方做出了推动这些趋势的修改。

本版本中最值得注意的变化如下:

· 广泛涵盖了大数据系统的内容, 既从用户的角度介绍(第10 章), 也从系统内部的角度介绍(第 20~  23 章), 与第 6 版相比有大量的内容扩充和改进

· 增加了新的一章 ”区块链数据库” (第 26 章), 介绍区块链技术及其在企业应用中日益增长的作用这一章的一个重要焦点是区块链系统与数据库系统之间的交互

· 对涉及数据库内部的所有各章(第12~ 19 章)进行了修改 , 以融人固态硬盘、主存数据库、多核系统和列存储等当代技术。

· 对千使用 JSON R DF 和 S PA RQL 进行半结构化数据管理做了更多的描述

( 8.1 节)

·更新了对于时态数据(·7.10 节)、数据分析(第11 章)和诸如 写优化的索引等高级索引技术 ( 14.8 节和 24.2 节)的描述。

·为更好地支持含有实操部分的课程(对千任何数据库课程,这都是我们强烈推荐的     方式),对一些章节进行了重新组织和更新,包括使用当代的应用开发工具和大数据 系统, 如 Apache Hadoop 和 Spark

所有更新源千我们收到的许多意见和建议 , 这些意见和建议来自第 6 版的读者以及我们在耶鲁大学理海大学印度理工学院孟买校区的学生, 也源千我们自己对数据库技术发展的观察和分析


VII

 

 


本书的内容

除第 1 章外 , 本书共十一部分 ,具体 如下:

· 引 言(第 1 章)章对数据库系统的性质和目标进行一般性综述我们解释了数据库系统的概念是如何发展的,各数据库系统的共同特性是什么,数据库系统能为    用户做什么,以 及 数据库系统如何与操作系统交互我们还引入了一个数据库应用的例子: 一个包括多个系、教师、学生和课程的大学这个应用作为贯穿全书的运行实例这一章本质上是激励性、历史性和解释性的

· 第一部分: 关系语言 (第 2~ 5 章)第 2 章介绍数据的关系模型, 包括关系数据库的结构、数据库模式、码、模式图、关系查询语言、关系运算和关系代数等基本概    念章主要介绍最具影响力的面向用户的关系语言: SQL对千一个设 计完成的模式,  这部分描述了查询、修改、插入和删除等数据操作虽然这里详细讲述了数据定义的语法, 但关千模式设计的问 题将推迟到第二部分讲述

· 第二部分 :  数据库设计(第 6~  7 章)第 6 章概要介绍数据库设计过程并详细描述实体-联系数据模型。实体-联系模型为数据库设计问题以及在数据模型的约束下        捕获现实应用的语义时所遇到的问题提供了一个高层视图UML        类图表示也在这一章中讲述。第  7   章介绍关系数据库设计这一章讲述了函数依赖和规范化的理论, 重点强调了提出各种范式的动机,以    及它们的直观含义这一章以关系设计的概览开始,依    赖于对函数依赖的逻辑蕴涵的直观理解这使得规范化的概念可以在全面讨论函数依赖理论之前先做介绍,而函数依赖理论将在本章稍后部分讨论。授课教        师可以只选用这些直观描述的内容,而不会丢失连贯性。不过,完整地讲授这一章        将有利于学生对规范化概念形成较好的理解,从而引导他们去学习函数依赖理论中        一些较艰深的概念这一章的最后一 节讲述时态数据建模

· 第三部分 : 应用程序设计和开发(第 8章)。第 8 章讨论几种对于应用程序设计

和开发非常重要的复杂数据类型,包括半结构化数据、基于对象的数据、文本数据        和空间数据虽然 XML 在数据库环境中的流行度正在消减,但  我们还是保留了对XML 的介绍,同 时 增 加了对 JSON RDF 和SPARQL 的介绍第 9 章讨论用于构建交互式的基于   Web     的数据库应用和移动数据库应用的工具与技术这一章对服务器端和客户端都进行了详细介绍,所 包 括的主题有: Java 服务器端程序 ( servlet )、JSP Django、Java 描述语言 ( JavaScript )  和 We服务同时, 还对以下主题进行了讨论: 应用体系结构、对象-关系映射系统(包括 Hi bernate  和 Django )、性能(包括使用 memcacheRedis 的 缓存)和确保We应用安 全的独特挑战

· 第四部分 :  大数据分析(第 10~  1!  章)第 10 章概述大规模数据分析应用, 重点讲述与传统的数据库应用相比,这些应用如何对数据管理提出不寻常的要求,然后讨        论了这些要求是如何得到满足的所阐述的主题有:包 括分布式文件系统在内的大 数据存储系统、键值存储和 NoSQL 系统、Map Reduce 、Apache   Spark 、流数 据和图数据库这里对这些系统和概念与前面介绍的数据库概念之间的关联做了重点讲解    第 11   章讨论  为大规模数据分析而设计的系统的结 构和使用章首先解释了数据分析、商业智能和决策支持的概念,并在此基础上讨论了数据仓库的结构和将数据        收集到仓库中的过程然后, 讲述了仓库中的数据在 OLAP 应用中的使用,并 对数


VIII

 

 


据挖掘算法和技术进行了概述

· 第五部分: 存储管理和索引(第 12~ 14 章)第 12 章讨论存储设备以及这些设备的特性如何影响数据库的物理组织和性能。第 l 3 章讨论数据存储结构,包 括文件组织和缓冲区管理第 14 章讲述多种数据存取技术首先对基多级索引的数据存取进行描述, 进而对 订 树进行详细介绍然后介绍订 树不太适用的那些应用的索引结构, 包括诸如 LSM 树和缓冲树等写优化的索引, 位图索引, 使用 k-d 树、四分树和R 树的空间数据索引等

· 第六部分: 查询处理和优化(第15~ 16 章)。第15 ~ 16 章阐述查询处理和查询优化第 15 章重点讲述数据库操作的实现算法, 特别是为无法完全放入主存中的非常大的数据而设计的各种各样的连接算法。这一章还讲述了用于主存数据库的查询处理技    术第 16 章讲述查询优化,首先 展示了如何使用转换规则将查询计划转换为与之等价的其他计划,然后描述了如何估计查询执行代价,以及如何高效地找出代价最小    的查询执行计划

· 第七部 分: 事务管理(第 17~ 19 章)。第 17 章着重介绍事务处理系统的基本概念: 原子性、一致性、隔离性和持久性。这一章概述了用于保证这些特性的方法,包括       基于日志的恢    复和使用锁的并发控制、基于时间戳的技术以及快照隔离仅需要对事务概念进行综述的课程 可以只使用第 17  章, 而不必使用这部分的其他章 节,那些章 节的内容要深入得多。第 18 章重点讲述并发控制,并  介绍几种保证可串行化的技术,包括封锁丫时间戳和乐观(有效性检查)技术。这一章讲述了多版本并发控制技     术,包 括广泛使用的快 照隔离技术,以 及 一个  保证可串行化的扩展技术这一章还讨论了弱一致性级别、索引结构中的并发、主存数据库系统中的并发、长持续时间       的事务、操作级别的并发和实时事务处理。第   19     章讨论在系统崩溃和存储器故障的情况下保证事务正确执行的主要技术,包括日志、检查点和数据库转储,以及使用       远程备份系统的高可用性。这  一章还介绍了提前释放锁的恢复和广泛使用的  ARIES 算法,讨论了 主存数据库系统中的恢复以及 NVRAM 的使用。

·  第八部分:  井行和分布式数据库(第 20~  23 章)。第 20 章介绍计算机系统体系结 构,并    描述基本的计算机系统对于数据库系统的影响这一章讨论了集中式系统客户-服务器系统、并行和分布式体系结构以及基千云的系统。本部分的其余三章      分别讲述并行和分布式数据库的不同方面, 第 21 章讲述存储和索引,第  22 章讲述查询处理, 第 23 章讲述事务处理。第 21 章讨论分 区和数据偏斜、复制、并行索引、分布式文件系统(包括 Hadoop   文件系统)和并行的键值存储。第 22  章讨论多个查询间的并行和单个查询内的并行,  包括并行和分布式排序与连接、MapReduce     、流水线、Volcano 交换算子模型、线程级并行、流数据以及地理上分散的查询的优化第 23 章讨论传统的分布式处理方法(如两阶段提交),以  及 更复杂的解决方案(如 Paxos   和 Raft   )这一章讲述了分布式并发控制的各种算法, 包括副本管理和弱一致性级别, 还讨论了 CAP 定理所包含的权衡和协调,以 及 使 用 版本向量和默克尔树(Merkle tree ) 来检测不一致性的方法

· 第九部分 : 附录附录 A 给出我们 的大学模式的细节,包 括完整的模式DDL 和所有的表

· 第十部 分: 中文在线章节(第24~ 26 章)第 24 章对第 14 章的索引结构进行了扩展,详 细讲述 LSM 树及其变种、位图索引、空间索引和动态散列 技术。第 25 章扩展了第 9 章所涵盖的内容,讨论  性能调整、基准测试,以  及从遗产系统中移植、标准化和分布式目录系统第 26  章从数据库的角度审视区块链技术, 描述了区块链数据结构,以及使用加密散列函数和公钥加密来保证匿名性、无可辩驳性、防篡改性        等区块链性质这一章描述和比较了用千保证去中心化的分布式共识算法,包    括工作批证明、权益证明和拜占庭  (  Byzantine   )   共识这一章的大部分内容讨论使得区块链成为重要的数据库概念的那些特性,包括许可区块链的作用、智能合约中业务        逻辑和协议的编码,以    及跨区块链的互操作性这一章还讨论了为达到数据库级别的事务处理性能所采用的技术 最后对当前和未来的企业区块链应用进行了综述

· 第十一部 分: 英文在线章节(第27 ~ 32 章)可以在 db-book.com  上在线获取这些章节我们提供了 6 章, 涵盖了具有历史意义或者具有先进性的材料。 第 27 章讲述“纯“ 查询语言:元 组和域关系演算,以  及 Datalog(它的语法是仿照 Prolog 语言的)第 28 章讲述关 系数据库设计中的高级主题,包  括多值依赖理论和第四范式, 以  及更高的范式第 29   章讲述基千对象的数据库、诸如数组和多重集合类型等更复杂的数据类型 ,以 及 非 I NF 的表第 30 章对第 8 章关于 XML 的讨论进行扩展。第31 章讲述信息检索,讨  论 非结构化的文本数据的查询。第 32 章提供对 PostgreSQL 数据库系统的综述,面向的是专注于数据库内部层面的课程。这一章对千学生在 PostgreSQL 数据库的开放源码库上做课题特别有用。

在每一章的末尾我们都提供了一节一延伸阅读,其中的参考资料有助千学生对各章所包含的内容或者所涉及的相关领域的新进展继续深入学习有时,  延伸阅读一节会包括已成为尽人皆知的经典 之作的原始渊源论文另外, 在线提供每一章的详细参考文献,并且 为那些有意对各章所包含内 容的某些部分进行深入学习的读者提供了参考资料

 

第 7 版

第 7 版是由以下因素驱动产生的: 我们收到的关千前面儿版的意见和建议, 我们在耶鲁大学、理海大学、印度理工学院孟买校区讲授本课程的体会,以及我们对千数据库技术发展  方向的分析

前面我们列举了这一版的主要新特性,包括:对大数据内容的广泛涵盖,为反映当代的   硬件技术对所有各章所做的更新,半结构化数据管理,高级索引技术,以及关千区块链数据   库的新的·除了 这些主要的改动之外, 我们对每一章都进行了修改, 对较旧的内容进行了更新, 增加了对数据库技术当前进展的讨论, 改进了对学生认为难以理解的主题的描述我们还增加了新的 习题,并对参 考文献进行了更新

下面我们为原先使用第 6 版的教师列出这一版的较为重要的改变

· 将关系代数移到了第 2 章,以 帮助学生更好地理解作为 SQ 等查询语言的基础的关系运算更深入地讲述关系代数还有利千学生更好地理解后面讨论查询处理和优化所需的代数运算关系演算的 两种变体现在都在在线章节中讲述, 因为我们认为它们现在仅对更加面向理论化的课程有价值,而对于大多数的数据库课程来说是可以略掉的

. . 现在关于 SQL 的章包含了数据库系统特定的 SQL 变体的更多细节,以 帮助学生更好地完成实践作业对千 SQL 与多重集合关系代数之间的关联也做了更详细的讲解。现在第 4 章包含了关于连接的所有材料, 而以前自然连接是放在前 面的章节中 _

这一章还增加了用于生成唯一码值的序列 和行级安全性的相关内容 特别有用的对 JDBC API 的当前扩展现在放到了第 5 章中, 而对 OLAP 的讲述从这一章移到了第 11 章中

· 

对第 6 章进行了修改, 将 E-R 图和 E-R 概念都放到了这一章中, 而不是像以前的版本那样先讲述概念然后再介绍 E-R 图我们认为这会帮助学生更好地理解 E-R 模型

· 第 7 章改进了对时态数据建模的介绍, 融入了SQL:2011 时态数据库的特性。

· 第 8 章是新的一章, 讲述复杂数据类型, 包括诸如 XML 、JSON、RDFSPARQL 等半结构化数据 , 以及基千对象的数据、文本数据和空间数据。在第 6 版中详细介绍了基千对象的数据库、 XML 和文本数据上的信息检索 , 这些主题现在被简化后包含在第 8 章中, 而第 6 版中原来的那些章节现在可以在线阅读


第 9 章被大大地改写了, 以反映当前的应用开发工具和技术, 包括扩展了对JavaScript 和用于构建动态 Web 界面的 JavaScript 库的介绍、对 Python 中采用Django 架构的应用开发的介绍、对 Web 服务的介绍和对使用 HTML5 的断连操作的介绍, 增加了使用Django 的对象-关系映射内容, 还对能够处理大事务负载的高性能应用的开发技术进行了讨论。


第 10   章是关千大数据的新的一章,  从用户的角度讨论了大数据的概念和工具。这一章的内容包括大数据存储系统、Map Reduce 范式Apache Hadoop  和 Apache  Spark流数据库和图数据库,目的是使读者对表象背后的事情有个大致的了解,以便能够    使用大数据系统后续的几章详细介绍了大数据的内部构件

· 存储和文件结构被分成了两章讲述存储的第12 章经过更新后,  更充分地描述了闪存, 并包含了若干新技术一— 面向列的存储和主存数据库中的存储组织 。讲述数据存储结构的第13 章经过扩展后 , 现在包含了许多细节, 例如自由空间图、划分, 最重要的是面向列的存储

· 讲述索引的第 14 章增加了写优化的索引结构, 包括 LSM 树及其变种和缓冲树, 它们有很好的应用前景这一章对空间索引的介绍比较简短 。在讲述高级索引技术的第 24 章中有对 LSM 树和空间索引的更详细介绍现在第 14 章仅对位图索引进行了简单介绍, 更详细的介绍则移到了第24 章中。动态索引技术也被移到了第24 章中, 目前这一技术对实践不太重要

· 讲述查询处理的第15  章大大扩展了对查询处理中的流水线技术的介,绍增加了主存中关千查询处理的新素材, 包括查询编译以及对空间连接的简单介绍。讲述查询优化的第 16 章包含了外连接和聚集等算子的等价规则的更多示例, 更新了用千代价估计的统计信息的内容, 改进了关于连接顺序优化算法的介绍。这一章中还增加了使用半连接和反连接运算对嵌套子查询去除相关的技术的介

· 讲述并发控制的第 18 章包含了主存中并发控制的新素材。讲述恢复系统的第 19 章对千使用远程备份系统的高可用性给予了更多的重视

· 关千并行数据库和分布式数据库的介绍进行了全面的修改  由于这两个领域从低层次的并行到地理上分散的系统都演进到了连续体 ( continuum ) 状态, 因此我们现在一起展示这些主题。

0 第 20 章讲述数据库系统体系结构, 在以前版本的基础上有很大的改变, 包含了关于实际的互联网络(诸如树形或胖树结构)的新素材,大大扩展和更新了关于共享内存体系结构和缓存一致性的素材这一章中有个关于基千云的服务的新节 , 它涵盖了虚拟机和容器 、平台即服务软件即服务以及弹性

0 第 21 章讲述并行和分布式存储,只 有少部分内容在第 6 版中讲过, 例如分区技术, 本章中的其他内容都是新的

0 第 22 章讲述并行和分布式查询处理, 还是只有少数 节已经包含在第 6 版中, 例如排序连接和少数几 个关系运算的并行算法,本章中的其 他内容 几乎都是新的

0 第 23 章讲述并行和分布式事务处理这一章中有一些内容已经包含在第 6 版中, 例如关千分布式数据库中的 2PC持久消息和并发控制的那几节, 本章中的其他内容几乎都是新的

与第 6 版一样, 我们在附录 A 和用到大学数据库例子的各章中列出了该数据库的模式和样例关系实例,以 便 千理解另外, 我们在网站 db-book.com 上提供 了整个例子的 SQL 数据定义语句,以 及创 建 样 例关系实例的 SQL 语句这能激励学生 直接在数据库系统上运行样例查询,并 修改这些查询去进行更多的试验上面没有列出的所有主题都在第 6 版的基础上有所更新, 但总体结构相对来说没有改动

 


章末材料

在每一章的末尾除了总结之外,还有一个术语回顾列表,用来帮助读者回顾这一章中讨  论的关键主题

与第 6 版一样,习题被   划分成两部分:  实践习题和习题。实践习题的解决方案在本书英文版的网站上公开发布。我们鼓励学生独立解决实践习题,然后用网站上的解决方案来检查自己的答 案。习题的解答只有授课教师能得到(参看下面的 "授课教师注意事项", 以获取如何得到题解的信息 )

许多章的末尾都有一个“工具”节,它提供了与该章的主题相关的软件工具的信息,其中一些工具可以用于实验室练习大学数据库和习题中用到的其他关系的 SQL DDL 和样例数据在本书英文版的网站上可以得到,也 可以用千实验室练习

 


授课教师注意事项

可以用本书各章的不同子集来设计课程, 某些章也可以用不同于本书中的顺序来讲授下面列出了一些可能的安排

· 第 5 章(高级SQL )章可以跳过或推迟到后面讲授, 而不会影响连续性建议大

.多数课程至少较早地讲授5.1.1 节,因 为 JDBC 很可能会是学生实习的一个有用工具

· 第 6 章(使用 E-R 模型的数据库设计)如果教师愿意, 这一章可以在第 3~ 5 章之前讲,因 为第 6 章完全不依赖千 SQL 但是,那 些 强调编程实习的课程可能会在学习 SQL 之后有各种各样的实验室练习, 对这样的课程我们推荐在讲数据库设计之前

先讲 SQL

· 第 15 章(查询处理)和第 16 章(查 询优 化)。入门性的课程可以去掉这两章, 这对于任何其他章的讲授都没有影响

· 第七部分(事务管理)我们的讲述包括一章综述(第17   章)和后续各章的详细讨论如果计划把后面的章推迟到高级课程中去讲授, 可以选择仅讲述第 17 章, 而省略第 18 和 1、9 章

· 第八 部分 (并行和分布式数据库)我们的讲述包括一章综述(第 20 章)与后续各章关千存储、查询处理和事务等主题的讨论。如果计划把后面的章推迟到高级课程中去讲授, 可以选择仅讲述第 20 章, 而省略第 21~ 23 章。

· 第十一部分(英文在线章节)。第 27 章(形式关系查询语言)可以 在第 2 章之后讲SQL 之前讲授, 入门性课程也可以省略这一章。另外 5 个英文在线章节(高级关系数据库设计、基千对象的数据库、XML 、信息 检索 和 PostgreSQL  )  可以用作自学材料,入门性课程可以去掉它们。

基千本书的教学大纲可以在本书英文版的网站上找到

 

本书英文版网站和英文补充材料

本书英文版网站的网址是db-book.com , 其中包括:

· 本书所有各章的幻灯片。

· 实践习题的答案

• 6 个在线章节

· 实验素材,包 括大学模式和习题中用到的 SQL DDL 和样例数据, 大蜇实验练习和相关项目示例,以 及关于建立和使用各种数据库系统和工具的说明

· 最新勘误表

下列附加材料仅有教师可以获得

· 包括书中所有习题的答案的教师手册。

· 包括额外习题的问题库。

 


扫描二维码可获得的中文材料

本书采用一书一码的方式,即一本书对应一个专有的二维码(见本书前面的衬纸)。扫  描二维码获取阅读权限后, 可浏览以下电子数据资源

· 第十部分(包括高级索引 技术、高级应用开发、区块链数据库等高级主题)

· 索引未来我们还可能通过该二维码提供更多的增值服务, 例如习题答案、老师的授课视频等

 


 

致谢

许多人对第 7 版以及之前的 6 版提供了帮助, 我们对他们致以诚挚 的谢意

第 7 版

• Ioannis  Alagiannis   和 Renata    Boro vica-Gajic    撰写了可以在线获取的描述 PostgreSQL 数据库的第 32 章章是对第 6 版中 PostgreSQL 章的完全重写 , 第 6 版中的那一章 是 由 Anastasia   Ailamaki  、Sailesh   Krishnamurthy 、Spiros Papad imi triou 、Bianca SchroederKarl Sc hnaitter 和 Gavin She rry 撰写的

• Judi Paige 帮助制作了插图和演示幻灯片 ,并 处理了文字编辑等事宜

• Mark Wogahn 保证了生成本书文本的软件正常工作 , 包括 LaTex 宏和字体等

• Sriram Srinivasan 对千并行和分布式数据库部分的反馈使我们受益匪浅

• N. L. Sarda 对第 6 版和第 7 版的一些节给出了具有洞察力的反馈

• Bikash  Chandra  和 Venkatesh   Emani  协助对“应用程序开发”一章 进行了更新 ,并 创建了样例代码

· 印度理工学院孟买校区的学生(特别是 Ashish Mithole ) 对预印本中有关并行和分布式数据库的章节提出了意见

· 耶鲁大学、理海大学和印度理工学院孟买校区的学生对第 6  提给出了意见

• Jeffrey Anthony ( Synaptic 公司的合伙人兼 CTO ) 以及理海大学的学生 Corey Caplan

(现在是 Leavi tt Innovations 的联合创始人之Gregory Cheng Timothy LaRowe

和 Aaron Rotem 对新的区块链章节提出了有益的意见 和建议前面各版

• Hakan Jakobsson ( Oracle ) 撰写了第 6 版中关千 Oracle 数据库系统的一章; Sriram Padmanabhan ( IBM ) 撰写了第 6 版中关千 IBM DB2 数据库系统的章; S ameet Agarwa l 、Jo se A. Blake le yThierry D' He rs 、Gerald Hinson 、Dirk Mye rs 、Vaqar Pirzada Bill Ramos Balaji Rathakrishnan 、Michael Rys 、Florian Waas 和 Michael Zwill in g 撰写了第 6 版中关于 Microsoft SQL Server 数据库系统的一章, 特别是Jose Blake le y 组织和编辑了这一章, 遗憾的是他现在已经不和我们在一起了; Cesar Galindo-Legaria 、Goetz Graefe 、Kalen De laney 和 Thomas Casey 对 Microsoft SQL Server 这一章以前的版本做出了贡献 , 现在, 这些章没有包含在第 7 版中

• Anastasia Ai la maki 、Sai les h Kr is hna mur th y 、Spi ro s Pa pad im it r io u B ia nc a Schroeder 、Ka rl Schnai tter 和 Gavin She rry 撰写了第 6 版中关Postgre SQL 的一章

• Daniel Abadi 审阅了第 5 版的目录,并协 助进行了调整

· 作为本书的审阅人, S teve  Dolins(佛罗里达大学)、Rolando   Fernanez(乔治· 华盛顿大学)Frantisek     Franek (麦克马斯特大学)、Lati fu r    Khan(得克萨斯大学 达拉斯分校)Sanjay Madria (密苏里科技大学)、Aris O uksel(伊利诺伊大学)和 Richard Snodg rass(滑铁卢大学 的意见对于第 6 版的最终定稿帮助很大

• Judi Paige 帮助制作了插图和演示幻灯片

• Mark Wogahn 保证了生成本书文本的软件正 常工作, 包括 LaTex 宏和字体

• N. L. Sarda 的反馈帮助我们改进了好几 章, Vikram Pu山促使我们替换掉早先的银行


XIV

 

 

模式, Shetal Shah 对几内容给出了反馈

· 耶鲁大学理海大学和印度理工学院孟买校区的学生对5 版以及第 6 版的预印给出了意见

• Chen Li 和 Sharad Mehro tra 为第 5 版提供了关于 JDBC 和安全性的素材

• Marilyn Turnamian 和 Nandprasad Joshi 为第 5 版提供了秘书服务 , Marilyn 还为第 5

版准备了一个封面设计的早 期版本

• Lyn Dupre 对第 3 版进行了审查 , S ara Strandtman 对第 3 版进行了文字编辑

• Nilesh Dalvi 、Sumit Sanghai 、Gaurav Bhalotia 、Arvind Hulgeri 、K. V. Raghavan Prateek KapadiaSara Strandtman、Greg Speegle 和 Dawn Bezviner 协助准备了前面各版的教师手册。

· 用船作为封面概念的部分想法最初是 Bruce Stephan 建议的

· 以下人士对本书的第 5 版和前面各版提出了建议和意见: R. B. Abhyankar, Hani Abu­ Salem, Jamel R. Alsabbagh, Raj Ashar, Don Batory, Phil Bernhard, Christian Breimann, Gavin M. Bierman, JanekBogucki, Haran Bora!, Paul Bourgeois, Phi!Bohannon, Robert Brazile, Yuri Breitbart, Ramzi Bualuan, M.ichael Carey, Soumen Chakrabarti, Tom Chappell, Zheng)!:in Chen, Y. C. Chin, Jan Chomicki, Laurens Darnen, Prasanna Ohan­ dapani, Qin Ding, Valentin Dinu, J. Edwards, Christos Faloutsos, Homma Farian, Alan Fekete, Frantisek Franek, Shashi Gadia, Hector Garcia-Molina, Goetz Graefe, Jim Gray, Le Gruenwald, Eitan M. Gurari, William Hankley, Bruce Hillyer, Ron Hitchens, Chad Hogg, Arvind Hulgeri, Yannis Ioannidis, Zheng Jiaping, Randy M. Kaplan , Graham J.

L. Kemp, Rami Khouri, Hyoung-Joo Kim, Won Kim, Henry Korth (father of Henry F.), Carol Kroll, Hae Choon Lee, SangWon Lee, Irwin Levinstein, Mark Llewellyn, Gary Lindstrom, Ling Liu, Dave Maier, Keith Marzullo, Marty Maskarinec, Fletcher Mattox, Sharad Mehrotra, Jim Melton, Alberto Mendelzon, Ami Motro, Bhagirath Narahari, Yiu-Kai Dennis. Ng, Thanh-Duy  Nguyen, Anil Nigam, Cyril Orji, Meral Ozsoyoglu,   D.

B. Phatak,  Juan Altmayer  Pizzomo,  Bruce  Porter,  Sunil  Prabhakar,  JimPeterson,  K.  V. Raghavan, Nahid Rahman, Rajarshi Rakshit, Krithi Ramamritham, Mike Reiter , Greg Riccardi, Odinaldo Rodriguez, Mark Roth, Marek Rusinkiewicz, Michael Rys, Sunita Sarawagi, N. L. Sarda, Patrick Schmid, Nikhil Sethi, S. Seshadri, Stewart Shen, Shashi Shekhar, Amit Sheth, Max Smolens, Nandit Soparkar, Greg Speegle, Jeff Storey, Dilys

Thomas, Prem Thomas, Tim Wahls, Anita Whitehall, Christopher Wilson, Marianne Winslett, Weining Zhang, Liu Zhenming 。

个人注记

Sudarshan 感谢他的 妻子 Sita 的爱 、耐心 和支持,感谢 他的孩子 Madhur Advaith 的爱和乐观精神Hank 感谢他的妻子 Joan孩子 Abby 和 Joe 的爱和理解Avi 感谢 Valerie 在本书修订期间的爱耐心和支持


Database System Concepls,

 

 

 

 

Abraham S il be rs c ha tz 是耶鲁大学计算机科学系 Sidney J. Weinberg 教授。在 2003 年加人耶鲁大学之前, 他是贝尔实验室信息科学研究中心的副主任他曾担任得克萨斯大学奥斯汀分校的教授, 一直在该校任教至 1993 年Silberschatz 是 ACM 会士、IEEE 会士以及康涅狄格科 学与工程学会的成员他获得了 2002 年 IEEE Taylor L. Booth 教育奖、1998 年ACM Karl V. Karlst rom 杰出教育家奖以及 1997 年 ACM SIGMOD 贡献奖,并 于 1998 年、1999 年和 2004 年三次被授予贝尔实验室总裁奖他在许多期刊、会议、研讨会上发表论

他获得 48 项专利和 24 项授权他还是教科书《操作系统概念》的作者。

 

Henry F. Korth 是理海大学计算机科学与工程系教授和计算机科学与商业项目联合主任在加入理海大学之前, 他是贝尔实验室的数据库原理研究中心主任、松下科技副总裁得克萨斯大学奥斯汀分校副教授以及 IBM 研究中心的研究 人员。Korth 是 ACM 会士和IEEE 会士、VLDB  会议 10 年贡献奖的获得者他发表的众多研究成果涉及数据库系统的方方面面,包 括并行和分布式系统中的事务管理实时系统、查询处理以及现代计算体系结构对这些领域的影响最近, 他的研究致力千解决区块链在企业数据库中的应用问题

 

S. S uda rs ha n 目前 是印度理工学院孟买校区 Subrao M. Nilekani 讲席教授他千 1992 年在威斯康星大学获得博士学位,在加入印度理工学院孟买校区之前他是贝尔实验室的技        术人员:   Sudarshan 是 ACM  会士他的研究跨越了数据库系统的多个领域,其 重点是查询处理和查询优化他在 2002 年发表的关千数据库中关键字检索的论文获得了 2012 年 IEEE ICDE  最具影响力论文奖,并   且他在主存数据库方面的工作千 1999 年获得了贝尔实验室总裁奖他目前的研究领域包括   SQL    查询的测试和分级、通过重写命令式代码来优化数据库应用程序,以 及并行数据库的查询优化, 他发表了 100 余篇论文并获得 15 项专利