第一篇 基础篇 3
第1章 绪论 3
1.1 数据库系统概述 3
1.1.1 数据库的4个基本概念 3
1.1.2 数据管理技术的产生和发展 6
1.1.3 数据库系统的特点 9
1.2 数据模型 14
1.2.1 两类数据模型 15
1.2.2 概念模型 16
1.2.3 数据模型的组成要素 17
1.2.4 常用的数据模型 18
1.2.5 层次模型 19
1.2.6 网状模型 22
1.2.7 关系模型 25
1.3 数据库系统的结构 27
1.3.1 数据库系统模式的概念 27
1.3.2 数据库系统的三级模式结构 28
1.3.3 数据库的二级映像功能与数据独立性 29
1.4 数据库系统的组成 30
1.5 小结 33
习题 33
本章参考文献 34
第2章 关系数据库 36
2.1 关系数据结构及形式化定义 37
2.1.1 关系 37
2.1.2 关系模式 41
2.1.3 关系数据库 42
2.1.4 关系模型的存储结构 42
2.2 关系操作 42
2.2.1 基本的关系操作 42
2.2.2 关系数据语言的分类 43
2.3 关系的完整性 44
2.3.1 实体完整性 44
2.3.2 参照完整性 44
2.3.3 用户定义的完整性 47
2.4 关系代数 47
2.4.1 传统的集合运算 48
2.4.2 专门的关系运算 49
2.5 关系演算 56
2.5.1 元组关系演算语言ALPHA 56
2.5.2 元组关系演算 61
2.5.3 域关系演算语言QBE 63
2.6 小结 69
习题 69
实验 71
本章参考文献 71
第3章 关系数据库标准语言SQL 73
3.1 SQL概述 73
3.1.1 SQL的产生与发展 73
3.1.2 SQL的特点 74
3.1.3 SQL的基本概念 76
3.2 学生-课程数据库 77
3.3 数据定义 78
3.3.1 模式的定义与删除 79
3.3.2 基本表的定义、删除与修改 80
3.3.3 索引的建立与删除 85
3.3.4 数据字典 87
3.4 数据查询 87
3.4.1 单表查询 88
3.4.2 连接查询 97
3.4.3 嵌套查询 101
3.4.4 集合查询 109
3.4.5 基于派生表的查询 111
3.4.6 SELECT语句的一般格式 112
3.5 数据更新 113
3.5.1 插入数据 113
3.5.2 修改数据 115
3.5.3 删除数据 116
3.6 空值的处理 117
3.7 视图 119
3.7.1 定义视图 119
3.7.2 查询视图 122
3.7.3 更新视图 124
3.7.4 视图的作用 126
3.8 小结 127
习题 128
实验 129
本章参考文献 129
第4章 数据库安全性 131
4.1 数据库安全性概述 131
4.1.1 数据库的不安全因素 131
4.1.2 安全标准简介 132
4.2 数据库安全性控制 135
4.2.1 用户身份鉴别 136
4.2.2 存取控制 138
4.2.3 自主存取控制方法 138
4.2.4 授权:授予与收回 139
4.2.5 数据库角色 143
4.2.6 强制存取控制方法 145
4.3 视图机制 147
4.4 审计 147
4.5 数据加密 149
4.6 其他安全性保护 151
4.7 小结 152
习题 153
实验 154
本章参考文献 154
第5章 数据库完整性 156
5.1 实体完整性 157
5.1.1 定义实体完整性 157
5.1.2 实体完整性检查和违约处理 158
5.2 参照完整性 159
5.2.1 定义参照完整性 159
5.2.2 参照完整性检查和违约处理 159
5.3 用户定义的完整性 162
5.3.1 属性上的约束条件 162
5.3.2 元组上的约束条件 163
5.4 完整性约束命名子句 164
5.5 域中的完整性限制 165
5.6 断言 166
5.7 触发器 167
5.7.1 定义触发器 168
5.7.2 激活触发器 170
5.7.3 删除触发器 171
5.8 小结 171
习题 172
实验 172
本章参考文献 172
第二篇 设计与应用开发篇 177
第6章 关系数据理论 177
6.1 问题的提出 177
6.2 规范化 180
6.2.1 函数依赖 180
6.2.2 码 181
6.2.3 范式 182
6.2.4 2NF 182
6.2.5 3NF 184
6.2.6 BCNF 184
6.2.7 多值依赖 185
6.2.8 4NF 188
6.2.9 规范化小结 189
6.3 数据依赖的公理系统 190
6.4 模式的分解 194
6.4.1 模式分解的三个定义 194
6.4.2 分解的无损连接性和保持函数依赖性 196
6.4.3 模式分解的算法 198
6.5 小结 201
习题 202
本章参考文献 204
第7章 数据库设计 205
7.1 数据库设计概述 205
7.1.1 数据库设计的特点 206
7.1.2 数据库设计方法 207
7.1.3 数据库设计的基本步骤 207
7.1.4 数据库设计过程中的各级模式 210
7.2 需求分析 211
7.2.1 需求分析的任务 211
7.2.2 需求分析的方法 212
7.2.3 数据字典 213
7.3 概念结构设计 215
7.3.1 概念模型 215
7.3.2 E-R模型 215
7.3.3 扩展的E-R模型 218
7.3.4 UML 223
7.3.5 概念结构设计 224
7.4 逻辑结构设计 231
7.4.1 E-R图向关系模型的转换 231
7.4.2 数据模型的优化 233
7.4.3 设计用户子模式 234
7.5 物理结构设计 234
7.5.1 数据库物理设计的内容和方法 235
7.5.2 关系模式存取方法选择 235
7.5.3 确定数据库的存储结构 237
7.5.4 评价物理结构 238
7.6 数据库的实施和维护 238
7.6.1 数据的载入和应用程序的调试 238
7.6.2 数据库的试运行 239
7.6.3 数据库的运行和维护 240
7.7 小结 241
习题 241
实验 242
本章参考文献 242
第8章 数据库编程 244
8.1 嵌入式SQL 244
8.1.1 嵌入式SQL的处理过程 244
8.1.2 嵌入式SQL语句与主语言之间的通信 245
8.1.3 不用游标的SQL语句 248
8.1.4 使用游标的SQL语句 250
8.1.5 动态SQL 251
8.2 过程化SQL 252
8.2.1 过程化SQL的块结构 252
8.2.2 变量和常量的定义 252
8.2.3 流程控制 253
8.3 存储过程和函数 254
8.3.1 存储过程 255
8.3.2 函数 257
8.3.3 过程化SQL中的游标 257
8.4 ODBC编程 258
8.4.1 ODBC概述 258
8.4.2 ODBC工作原理概述 259
8.4.3 ODBC API基础 260
8.4.4 ODBC的工作流程 262
8.5 OLE DB 266
8.6 JDBC编程 268
8.7 小结 269
习题 269
实验 270
本章参考文献 270
第三篇 系统篇 273
第9章 关系查询处理和查询优化 273
9.1 关系数据库系统的查询处理 273
9.1.1 查询处理步骤 273
9.1.2 实现查询操作的算法示例 275
9.2 关系数据库系统的查询优化 277
9.2.1 查询优化概述 278
9.2.2 一个实例 278
9.3 代数优化 280
9.3.1 关系代数表达式等价变换规则 281
9.3.2 查询树的启发式优化 282
9.4 物理优化 284
9.4.1 基于启发式规则的存取路径选择优化 284
9.4.2 基于代价估算的优化 285
9.5 查询计划的执行 287
9.6 小结 287
习题 288
实验 289
本章参考文献 289
第10章 数据库恢复技术 291
10.1 事务的基本概念 291
10.2 数据库恢复概述 292
10.3 故障的种类 293
10.4 恢复的实现技术 295
10.4.1 数据转储 295
10.4.2 登记日志文件 296
10.5 恢复策略 298
10.5.1 事务故障的恢复 298
10.5.2 系统故障的恢复 298
10.5.3 介质故障的恢复 299
10.6 具有检查点的恢复技术 299
10.7 数据库镜像 301
10.8 小结 302
习题 303
实验 304
本章参考文献 304
第11章 并发控制 306
11.1 并发控制概述 307
11.2 封锁 309
11.3 封锁协议 309
11.4 活锁和死锁 312
11.4.1 活锁 312
11.4.2 死锁 312
11.5 并发调度的可串行性 314
11.5.1 可串行化调度 314
11.5.2 冲突可串行化调度 314
11.6 两段锁协议 316
11.7 封锁的粒度 317
11.7.1 多粒度封锁 318
11.7.2 意向锁 318
11.8 其他并发控制机制 320
11.8.1 多版本并发控制 320
11.8.2 改进的多版本并发控制 321
11.9 小结 322
习题 323
实验 324
本章参考文献 324
第12章 数据库管理系统 326
12.1 数据库管理系统的基本功能 326
12.2 数据库管理系统的系统结构 327
12.2.1 数据库管理系统的层次结构 327
12.2.2 关系数据库管理系统的运行过程示例 328
12.3 语言处理层 330
12.3.1 语言处理层的任务和工作步骤 330
12.3.2 解释方法 332
12.3.3 预编译方法 333
12.4 数据存取层 334
12.4.1 数据存取层的系统结构 335
12.4.2 数据存取层的功能子系统 336
12.5 缓冲区管理 338
12.6 数据库的物理组织 340
12.7 小结 341
习题 342
本章参考文献 343
第四篇 新技术篇 347
第13章 数据库技术发展概述 347
13.1 数据库技术发展历史回顾 347
13.2 数据库发展的三个阶段 348
13.2.1 第一代数据库系统 348
13.2.2 第二代数据库系统 349
13.2.3 新一代数据库系统 349
13.3 数据库系统发展的特点 350
13.3.1 数据模型的发展 350
13.3.2 数据库技术与相关技术相结合 353
13.3.3 面向应用领域的数据库新技术 355
13.4 数据管理技术的发展趋势 357
13.4.1 数据管理技术面临的挑战 357
13.4.2 数据管理技术的发展与展望 358
13.5 小结 360
习题 360
本章参考文献 361
第14章 大数据管理 363
14.1 大数据概述 363
14.1.1 什么是大数据 363
14.1.2 大数据的特征 364
14.2 大数据的应用 367
14.2.1 感知现在 预测未来——互联网文本大数据管理与挖掘 367
14.2.2 数据服务 实时推荐——基于大数据分析的用户建模 373
14.3 大数据管理系统 375
14.3.1 NoSQL数据管理系统 375
14.3.2 NewSQL数据库系统 376
14.3.3 MapReduce技术 377
14.3.4 大数据管理系统的新格局 378
14.4 小结 380
习题 381
本章参考文献 381
第15章 内存数据库系统 383
15.1 概述 383
15.2 内存数据库的发展历程 384
15.3 内存数据库的特性 387
15.4 内存数据库的关键技术 387
15.4.1 数据存储 388
15.4.2 查询处理及优化 390
15.4.3 并发与恢复 401
15.5 小结 403
习题 403
本章参考文献 404
第16章 数据仓库与联机分析处理技术 406
16.1 数据仓库技术 406
16.2 联机分析处理技术 410
16.3 数据挖掘技术 411
16.4 大数据时代的新型数据仓库 413
16.5 小结 416
习题 417
本章参考文献 417