Ⅰ 预备篇 2
第一章 数据库系统引论 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
第二章 数据模型 11
2.1 层次数据模型 11
2.1.1 基本概念和结构 11
2.1.2 约束 14
2.1.3 操作 15
2.2 网状数据模型 16
2.2.1 基本概念和结构 16
2.2.2 约束 18
2.2.3 操作 19
2.3 关系数据模型 20
2.3.1 基本概念及定义 20
2.3.2 约束 22
2.3.3 操作 24
2.3.4 关系演算 27
2.4 对传统数据模型的评价 29
2.5 E-R数据模型 31
2.5.1 基本概念 31
2.5.2 E-R图 34
2.5.3 扩充E-R数据模型 35
2.6 面向对象数据模型 38
2.6.1 对象 38
2.6.2 类和实例 39
2.6.3 类层次结构和继承 40
2.6.4 对象的标识 41
2.7 基于逻辑的数据模型 42
2.7.1 一阶谓词逻辑作为数据模型 43
2.7.2 有关基于逻辑的数据模型的语法问题 44
2.7.3 有关基于逻辑的数据模型的语义问题 46
习题 52
第三章 数据库语言 53
3.1 数据库的用户接口 53
3.2 SQL语言概况 54
3.3 SQL数据定义语言 55
3.3.1 术语和数据类型 55
3.3.2 基表模式的定义 55
3.3.3 基表模式的修改 57
3.3.4 索引的建立和撤销 58
3.4 SQL查询语言 59
3.4.1 基本SQL查询语句 59
3.4.2 查询条件比较复杂的SQL查询语句 64
3.4.3 GROUP BY和ORDER BY子句的应用 66
3.4.4 包含UNION的查询 67
3.5 SQL数据操纵语言 67
3.5.1 INSERT语句 67
3.5.2 DELETE语句 69
3.5.3 UPDATE语句 69
3.6 SQL中的视图 70
3.7 嵌入式SQL 71
3.7.1 嵌入式SQL介绍 71
3.7.2 嵌入式SQL的说明部分 72
3.7.3 嵌入式SQL的可执行语句 73
3.7.4 嵌入式SQL的实现 75
3.8 动态SQL 75
3.8.1 直接执行的动态SQL 75
3.8.2 带动态参数的动态SQL 76
3.8.3 查询类动态SQL 77
3.9 QBE数据库语言 78
3.9.1 QBE的查询操作 78
3.9.2 QBE的更新操作 80
3.9.3 QBE的其他功能 80
习题 81
Ⅱ 系统篇 84
第四章 数据库管理系统引论 84
4.1 数据库管理系统结构简介 84
4.2 事务 85
4.3 DBMS的进程结构 86
4.4 DBMS的系统结构 88
4.5 数据目录 91
习题 93
第五章 数据库的存储结构 94
5.1 数据库存储介质的特点 94
5.2 记录的存储结构 96
5.2.1 记录的物理表示 96
5.2.2 记录在物理块上的分配 96
5.2.3 物理块在磁盘上的分配 97
5.2.4 数据压缩技术 98
5.3 文件结构和存取路径 99
5.3.1 访问文件的方式 99
5.3.2 数据库对文件的要求 99
5.3.3 文件的基本类型 100
5.4 动态索引 105
5.5 动态散列 109
5.6 多键查询 111
习题 112
第六章 查询处理和优化 114
6.1 引言 114
6.2 代数优化 115
6.3 依赖于存取路径的规则优化 119
6.3.1 选择操作的实现和优化 120
6.3.2 连接操作的实现和优化 121
6.3.3 投影操作的实现 124
6.3.4 集合操作的实现 125
6.3.5 组合操作 125
6.4 代价估算优化 127
6.4.1 查询执行代价的组成和代价模型 127
6.4.2 选择操作的代价估算 128
6.4.3 连接操作的代价估算 130
6.5 结束语 133
习题 133
第七章 事务管理 135
7.1 恢复引论 135
7.2 运行记录的结构 137
7.3 更新事务的执行与恢复 139
7.4 易地更新恢复技术 141
7.5 消息的处理 142
7.6 失效的类型及恢复的对策 143
7.7 并发控制引论 144
7.7.1 数据库系统中的并发 144
7.7.2 并发的目的 144
7.7.3 并发所引起的问题 145
7.7.4 并发控制的正确性准则 146
7.8 加锁协议 149
7.8.1 X锁 149
7.8.2 两段封锁协议 150
7.8.3 (S,X)锁 151
7.8.4 (S,U,X)锁 152
7.9 死锁的检测、处理和防止 152
7.9.1 死锁的检测和处理 153
7.9.2 死锁的防止 154
7.10 多粒度封锁 155
7.11 基于时间标记的并发控制技术 157
7.11.1 基本的时间标记协议 157
7.11.2 多版本并发控制技术 159
7.12 乐观并发控制技术 160
习题 161
第八章 数据库的安全和完整性约束 163
8.1 数据库的安全 163
8.1.1 视图定义和查询修改 163
8.1.2 访问控制 164
8.1.3 数据加密 167
8.1.4 跟踪审查 167
8.2 统计数据库的安全 168
8.3 完整性约束 172
8.3.1 完整性约束的类型 172
8.3.2 完整性约束的说明 173
8.3.3 完整性约束的实施 174
习题 174
第九章 分布式数据库管理系统 175
9.1 分布式数据库系统 175
9.2 数据分布策略 176
9.2.1 数据分布的目的 176
9.2.2 数据分布的方式 176
9.2.3 关系的分割 177
9.2.4 数据分布带来的问题 179
9.3 分布式数据库系统结构 179
9.4 数据目录的分布及管理 180
9.4.1 数据目录分布的策略 181
9.4.2 分布式数据库系统中的命名 181
9.4.3 分布式DBMS数据目录管理举例 182
9.5 查询分解和优化 184
9.5.1 查询树的变换 185
9.5.2 复本的选择 186
9.5.3 查询树的分解 186
9.5.4 全局查询优化的一般问题 187
9.5.5 半连接在分布连接中的应用 188
9.5.6 用直接连接进行分布连接 190
9.5.7 多复本的更新 191
9.6 分布式数据库系统中的恢复技术 192
9.6.1 两步提交协议 192
9.6.2 三步提交协议 193
9.7 分布式数据库系统中的并发控制 194
9.7.1 分布式数据库系统中的两步封锁 194
9.7.2 全局死锁的检测 196
9.8 逻辑上分布的DDBS的概念 197
习题 199
本篇结束语 200
Ⅲ 应用技术篇 204
第十章 数据依赖和关系模式的规范化 204
10.1 关系模式设计中的一些数据语义问题 204
10.2 函数依赖 206
10.3 多值依赖 211
10.4 连接依赖 213
10.5 关系模式的分解及其问题 214
10.6 关系模式的规范化 221
习题 228
第十一章 数据库设计 230
11.1 数据库设计引论 230
11.2 数据库的概念设计 232
11.2.1 数据库概念设计的基本方法 232
11.2.2 视图设计 233
11.2.3 视图集成 234
11.3 数据库的逻辑设计 236
11.3.1 E-R图到关系模式的转换 236
11.3.2 逻辑模式的规范化、调整和实现 241
11.3.3 外模式的设计 243
11.4 数据库的物理设计 244
11.4.1 簇集设计 245
11.4.2 索引的选择 247
11.4.3 分区设计 249
11.5 分布式数据库的设计 250
11.5.1 数据的分割设计 251
11.5.2 数据的分布设计 252
11.6 计算机辅助数据库设计工具 253
习题 254
第十二章 数据库管理 255
12.1 数据库的建立 255
12.2 数据库的调整 256
12.3 数据库的重组 257
12.4 数据库的重构 259
12.5 数据库的安全控制 260
12.6 数据完整性控制 260
12.7 DBA的作用和职责 260
习题 261
参考文献 262