《数据库系统设计与原理》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:冯建华,周立柱编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:730208811X
  • 页数:242 页
图书介绍:本书主要讲述数据库系统的设计与原理,分为四个部分。第一部分主要介绍数据库的设计内容和设计方法,其中包括数据库的概念设计、逻辑设计和物理设计,相关的模型主要介绍了实体-联系模型和关系模型。第二部分主要介绍数据库的底层数据存储结构和数据库索引的细节,侧重于文件组织、文件结构和索引结构。第三部分主要介绍数据库管理系统的核心技术;包括查询处理、事务管理、并发控制和故障恢复等。第四部分主要介绍数据库管理系统体系结构的扩展和数据库技术的研究进展,以及当前出现的一些新的有关数据库研究的课题和应用领域。

1.1数据库管理系统的产生 1

1.1.1数据管理的进展 1

引言 1

1.1.2文件处理系统 2

1.1.3数据库管理系统 4

1.2数据视图 4

1.2.1数据抽象 4

1.2.2实例和模式 6

1.3.1数据模型的分类 7

1.2.3数据独立性 7

1.3数据模型 7

1.3.2实体-联系模型 8

1.3.3面向对象模型 9

1.3.4关系模型 10

1.3.5网状模型 10

1.3.6层次模型 11

1.5.1问题的提出 12

1.5事务管理 12

1.4.2数据操纵语言 12

1.4数据库语言 12

1.4.1数据定义语言 12

1.5.2事务的定义 13

1.5.3事务管理器 13

1.5.4并发控制管理器 13

1.6存储管理 13

1.7数据库用户 13

1.8数据库管理系统的总体结构 14

1.8.1查询处理器部件 14

1.8.3必要的数据结构 15

1.8.2存储管理器部件 15

1.9商业数据库管理系统 16

1.9.1 Oracle数据库系统 16

1.9.2 Sybase数据库系统 16

1.9.3 Microsoft与IBM数据库系统 17

小结 17

习题 18

2 实体-联系模型 19

2.1.1实体集与属性 20

2.1.2属性类型的划分 20

2.1基本概念 20

2.1.3联系集与属性 21

2.2 E-R模型设计中的问题 23

2.2.1用实体集还是用属性 23

2.2.2用实体集还是用联系集 23

2.2.3用二元联系集还是n元联系集 24

2.3映射约束 25

2.3.1 映射基数 25

2.3.2映射基数与联系集的属性位置 26

2.3.3存在依赖 27

2.4.2实体集的码 28

2.4码 28

2.4.1码的作用 28

2.4.3联系集的码 29

2.5实体-联系图 29

2.5.1 E-R图的主要构件 29

2.5.2 E-R图的作用与好处 30

2.5.3 E-R图举例 30

2.6弱实体集 33

2.6.1基本概念 33

2.6.4数据库设计中弱实体集的处理 34

2.6.2分辨符 34

2.6.3弱实体集的E-R图 34

2.7扩展E-R特性 35

2.7.1特殊化 35

2.7.2概括 36

2.7.3聚集 37

2.8数据库的E-R模式设计 38

2.8.1 E-R模式设计的主要任务 38

2.9 将E-R模式转换为表 39

2.9.1为什么要将E-R模式转换为表 39

2.8.2 E-R模式设计中的问题 39

2.9.2用表表示强实体集 40

2.9.3用表表示弱实体集 40

2.9.4用表表示联系集 40

2.9.5用表表示多值属性 43

2.9.6用表表示概括 43

2.9.7用表表示聚集 43

小结 44

习题 44

3 关系模型 45

3.1.1 基本概念 46

3.1关系数据库的结构 46

3.1.2数据库模式 48

3.1.3码 51

3.1.4查询语言 52

3.2关系代数 53

3.2.1选择运算 53

3.2.2投影运算 54

3.2.3并运算 55

3.2.4集合差运算 56

3.2.5笛卡儿积运算 56

3.2.6命名运算 58

3.2.7关系代数的形式化定义 60

3.2.8集合交运算 61

3.2.9自然连接运算 61

3.2.10除运算 63

3.2.11赋值运算 64

3.3关系演算 65

3.3.1元组关系演算 65

3.3.2域关系演算 66

3.3.3表达式的安全性与等价性 66

3.4.1 广义投影 67

3.4扩展关系代数运算 67

3.4.2外连接 68

3.4.3 聚集函数 71

3.4.4分组聚集 71

3.5数据库的修改 72

3.5.1 删除 72

3.5.2插入 73

3.5.3更新 73

3.6视图 73

3.6.1什么是视图 73

3.6.3实体化视图 74

3.6.2视图的使用 74

小结 75

习题 75

4 SQL 77

4.1 背景 78

4.1.1 SQL的起源 78

4.1.2 SQL的标准 78

4.1.3结构化查询语言SQL 78

4.2.1 select-from-where 79

4.2基本结构 79

4.2.2更名操作 80

4.2.3字符串操作 81

4.3集合操作 82

4.4聚集函数 82

4.4.1 SQL中的聚集函数 82

4.4.2分组聚集 83

4.5.2空值对SQL表达式的影响 84

4.6嵌套子查询 84

4.5.1空值的测试 84

4.5空值 84

4.6.1集合成员资格的确认 85

4.6.2集合的比较 85

4.6.3集合基数的测试 85

4.7派生关系 86

4.8视图 86

4.9数据库的修改 87

4.9.1删除 87

4.9.2插入 87

4.9.3更新 88

4.10.2举例 89

4.10关系的连接 89

4.10.1连接类型和条件 89

4.11 SQLDDL 92

4.11.1 SQL中的域类型 92

4.11.2 SQL的模式定义 93

4.11.3模式的删除与修改 94

4.12嵌入式SQL 94

4.13其他SQL特性 95

小结 95

习题 96

5 完整性约束与模式分解 97

5.1域约束 98

5.2参照完整性 98

5.2.1基本概念 98

5.2.2E-R模型中的参照完整性 99

5.2.3数据库的修改 100

5.2.4 SQL中的参照完整性 100

5.3断言 101

5.4触发器 102

5.5.1基本概念 103

5.5函数依赖 103

5.5.2举例 104

5.5.3函数依赖集的闭包 105

5.5.4 Armstrong公理 106

5.6码与范式 106

5.7关系数据库设计 107

5.8模式分解 108

5.8.1问题的提出 108

5.8.2无损连接分解 110

5.8.3规范化 110

习题 112

小结 112

6 数据库的物理设计 114

6.1数据库设计的六阶段 115

6.1.1数据库的设计过程 115

6.1.2数据库的三级模式 117

6.2数据库的物理组织 118

6.3数据库的物理设计 119

6.4数据的存储结构 120

6.5数据的存取路径 121

6.6物理设计的相关因素 122

习题 123

小结 123

7 存储结构和文件结构 124

7.1物理存储介质 125

7.1.1 级存储体系 125

7.1.2磁盘 125

7.1.3 RAID 126

7.2文件组织 128

7.2.1定长记录 128

7.1.4第三级存储 128

7.2.2变长记录 131

7.3文件中记录的组织 134

7.3.1堆文件组织 134

7.3.2顺序文件组织 134

7.3.3散列文件组织 135

7.3.4簇集文件组织 136

7.4数据字典的存储 137

7.4.5系统表 138

7.4.3统计数据和描述数据 138

7.4.4索引的元数据 138

7.4.2用户的元数据 138

7.4.1关系的元数据 138

小结 139

习题 139

8 索引和散列 141

8.1基本概念 142

8.1.1基本的索引结构 142

8.1.2评价索引的标准 142

8.2.1索引顺序文件 143

8.2顺序索引 143

8.2.2多级索引 144

8.2.3索引的更新 145

8.2.4辅助索引 147

8.3 B+树索引文件 148

8.3.1 B+树索引结构 148

8.3.2 B+树索引的缺点 149

8.3.3 B+树上的查询 150

8.3.4 B+树的更新 150

8.3.5 B+树文件组织 151

8.4.2散列函数 152

8.4.1散列文件的操作 152

8.4散列文件组织 152

8.4.3桶溢出控制 153

8.5 散列索引 154

8.6顺序索引和散列的比较 155

8.7 SQL中索引的定义 155

8.8 多码访问 156

小结 157

习题 157

9 查询处理 158

9.1.2查询优化器 159

9.1查询处理的过程 159

9.1.1语法分析与翻译器 159

9.1.3执行引擎 161

9.2关系代数表达式的转换 161

9.2.1等价规划 162

9.2.2表达式转换举例 163

9.3查询代价的度量 164

9.3.1查询处理的代价 164

9.3.2代价模型 164

9.4.1选择运算 165

9.3.3用于估计代价的统计信息 165

9.4实现关系运算的算法代价 165

9.4.2连接运算 166

9.5表达式的求值方法 168

9.5.1实体化计算方法 168

9.5.2流水线计算方法 169

9.6查询优化 170

9.7查询优化器的构造 172

小结 172

习题 174

10 事务 175

10.1事务的概念 176

10.1.1背景知识 176

10.1.2事务的特性 176

10.2事务的状态 178

10.2.1基本术语 178

10.2.2抽象事务模型 179

10.3原子性和持久性的实现 179

10.4事务的并发执行 180

10.4.1为什么要并发执行 180

10.4.2调度 181

10.5.1调度中指令的可交换性 182

10.5调度的可串行化 182

10.5.2冲突可串行化 184

10.5.3视图可串行化 184

10.6调度的可恢复性 185

10.7隔离性的实现 186

10.8 SQL中事务的定义 187

10.9冲突可串行化的判定 187

10.9.1判定方法 187

10.9.3举例 188

10.9.2优先图 188

小结 190

习题 191

11并发控制 193

11.1封锁协议 194

11.1.1锁 194

11.1.2基本的封锁协议 194

11.1.3基本封锁协议的问题 196

11.1.4两阶段封锁协议 197

11.1.5加强的两阶段封锁协议 198

11.2树形协议 200

11.2.1树形协议的提出 200

11.1.6商用DBMS中封锁协议的实现 200

11.2.2树形协议内容 201

11.3时间戳排序协议 202

11.3.1时间戳 202

11.3.2时间戳排序协议 203

11.3.3Thomas写规则 204

11.4有效性检查协议 205

11.6多版本机制 206

11.5多粒度机制 206

11.7死锁处理 207

11.7.1死锁问题 207

11.7.2死锁预防 207

11.7.3死锁检测与恢复 209

11.8插入与删除 210

11.8.1删除 210

11.8.2插入 210

小结 211

习题 212

12.1集中式系统 213

12 数据库系统的体系结构 213

12.2客户/服务器系统 214

12.3并行系统 216

12.4分布式系统 218

小结 219

习题 220

13 数据仓库 221

13.1数据库技术的发展 222

13.2.1数据仓库的概念 223

13.2数据仓库 223

13.2.2数据仓库的结构 227

13.2.3数据仓库的特点 229

13.3数据集市 230

13.4数据仓库的开发过程 230

13.5基于数据仓库的决策支持系统的解决方案 233

小结 234

习题 235

附录清华大学本科生课程概况 236

参考文献 241