上册 2
第一篇 序篇 2
第1章 数据库系统引论 2
1.1 数据管理的发展 2
1.2 数据库系统 5
1.3 数据、数据模型和数据模式 7
1.3.1 数据 7
1.3.2 数据模型 7
1.3.3 数据模式 8
1.4 数据库的生存周期 9
习题 10
第2章 数据模型 12
2.1 层次数据模型 12
2.1.1 基本概念和结构 12
2.1.2 约束 16
2.1.3 操作 16
2.2 网状数据模型 17
2.2.1 基本概念和结构 17
2.2.2 约束 20
2.2.3 操作 21
2.3 关系数据模型 22
2.3.1 基本概念和定义 22
2.3.2 约束 24
2.3.3 操作 26
2.3.4 关系演算 30
2.4 对传统数据模型的评价 31
2.5 E-R数据模型 33
2.5.1 基本概念 33
2.5.2 E-R图 36
2.5.3 扩充E-R数据模型 37
2.6 面向对象数据模型 40
2.6.1 对象 40
2.6.2 类和实例 41
2.6.3 类层次结构和继承 42
2.6.4 对象的标识 44
2.7 基于逻辑的数据模型 45
2.7.1 一阶谓词逻辑作为数据模型 45
2.7.2 有关基于逻辑的数据模型的语法问题 46
2.7.3 有关基于逻辑的数据模型的语义问题 49
习题 54
第二篇 关系数据库系统 58
第3章 关系数据库语言 58
3.1 数据库的用户接口 58
3.2 SQL语言概况 59
3.3 SQL数据定义语言 60
3.3.1 术语和数据类型 60
3.3.2 基表模式的定义 60
3.3.3 基表模式的修改 62
3.3.4 索引的建立和撤销 63
3.4 SQL查询语言 64
3.4.1 基本SQL查询语言 64
3.4.2 查询条件比较复杂的SQL查询语句 66
3.4.3 GROUP BY和ORDER BY子句的应用 70
3.3.4 包含UNION的查询 71
3.5 SQL数据操纵语言 71
3.5.1 INSERT语句 71
3.5.2 DELETE语句 72
3.5.3 UPDATE语句 73
3.6 SQL中的视图 73
3.6.1 普通视图 73
3.6.2 临时视图和递归查询 75
3.7 嵌人式SQL 77
3.7.1 嵌入式SQL的介绍 77
3.7.2 嵌入式SQL的说明部分 77
3.7.3 嵌入式SQL的可执行语句 78
3.7.4 嵌入式SQL的处理过程 80
3.8 动态SQL 81
3.8.1 直接执行的动态SQL 81
3.8.2 带动态参数的动态SQL 82
3.8.3 查询类动态SQL 82
3.9 SQL的存储过程 83
3.10 QBE数据库语言 84
3.10.1 QBE的查询操作 85
3.10.2 QBE的更新操作 87
3.10.3 QBE的其他功能 87
习题 88
第4章 数据库管理系统引论 90
4.1 数据库管理系统结构简介 90
4.2 事务 91
4.3 DBMS的进程结构 92
4.4 DBMS的系统结构 95
4.5 数据目录 97
习题 99
第5章 数据库的存储结构 100
5.1 数据库存储介质的特点 100
5.2 记录的存储结构 101
5.2.1 记录的物理表示 101
5.2.2 记录在物理块上的分配 102
5.2.3 物理块在磁盘上的分配 103
5.2.4 数据压缩技术 104
5.3 文件结构和存取路径 105
5.3.1 访问文件的方式 105
5.3.2 数据库对文件的要求 106
5.3.3 文件的基本类型 106
5.4 动态索引 111
5.5 动态散列 115
5.6 多键查询 117
5.7 存储系统的发展 118
习题 121
第6章 查询处理和优化 122
6.1 引言 122
6.2 代数优化 123
6.3 依赖于存取路径的规则优化 127
6.3.1 选择操作的实现和优化 127
6.3.2 连接操作的实现和优化 129
6.3.3 投影操作的实现 132
6.3.4 集合操作的实现 132
6.3.5 组合操作 134
6.4 代价估算优化 134
6.4.1 查询执行代价的组成和代价模型 134
6.4.2 选择操作的代价估算 135
6.4.3 连接操作的代价估算 138
6.5 结束语 140
习题 140
第7章 事务管理 142
7.1 恢复引论 142
7.2 运行记录的结构 144
7.3 更新事务的执行与恢复 146
7.4 易地更新恢复技术 148
7.5 消息的处理 149
7.6 失效的类型及恢复的对策 150
7.7 并发控制引论 151
7.7.1 数据库系统中的并发 151
7.7.2 并发的目的 152
7.7.3 并发所引起的问题 152
7.7.4 并发控制的正确性准则 153
7.8 加锁协议 156
7.8.1 X锁 156
7.8.2 两段封锁协议 157
7.8.3 (S,X)锁 158
7.8.4 (S,U,X)锁 159
7.9 死锁的检测、处理和防止 159
7.9.1 死锁的检测和处理 159
7.9.2 死锁的防止 161
7.10 多粒度封锁 162
7.11 索引的并发控制 164
7.12 幽灵及其防止 165
7.13 事务的隔离等级 167
7.14 基于时间标记的并发控制技术 168
7.14.1 基本的时间标记协议 168
7.14.2 多版本并发控制技术 170
7.15 乐观并发控制技术 170
习题 172
第8章 数据库的安全和完整性约束 174
8.1 数据库的安全 174
8.1.1 视图定义和查询修改 174
8.1.2 访问控制 175
8.1.3 数据加密 179
8.1.4 跟踪审查 179
8.2 统计数据库的安全 179
8.3 完整性约束 183
8.3.1 完整性约束的类型 183
8.3.2 完整性约束的说明 184
8.3.3 完整性约束的实施 185
习题 185
第9章 触发子和主动数据库系统 187
9.1 主动数据库系统引论 187
9.2 规则的表示 188
9.3 规则的执行 190
9.4 规则的实现 192
9.5 规则的应用 194
习题 200
第10章 数据依赖和关系模式的规范化 201
10.1 关系模式设计中的一些数据语义问题 201
10.2 函数依赖 203
10.3 多值依赖 207
10.4 连接依赖 210
10.5 关系模式的分解及其问题 211
10.6 关系模式的规范化 218
习题 225
第11章 数据库设计 227
11.1 数据库设计引论 227
11.2 数据库的概念设计 229
11.2.1 数据库概念设计的基本方法 229
11.2.2 视图设计 230
11.2.3 视图集成 231
11.3 数据库的逻辑设计 233
11.3.1 E-R图到关系模式的转换 233
11.3.2 逻辑模式的规范化、调整和实现 239
11.3.3 外模式的设计 240
11.4 数据库的物理设计 241
11.4.1 簇集设计 241
11.4.2 索引的选择 244
11.4.3 分区设计 246
11.5 计算机辅助数据库设计工具 246
习题 247
第12章 数据库管理 249
12.1 数据库的建立 249
12.2 数据库的调整 250
12.3 数据库的重组 251
12.4 数据库的重构 253
12.5 数据库的安全控制 253
12.6 数据完整性控制 254
12.7 DBA的作用和职责 254
习题 255
参考文献 256