第1章 数据库原理概述 1
1.1 数据库技术基本概念 1
1.1.1 信息与数据 1
1.1.2 数据库、数据字典、数据库管理系统、数据库系统 2
1.1.3 数据库系统中的人员 4
1.2 数据库数据管理方法的特点 5
1.2.1 数据管理技术发展的三个阶段 5
1.2.2 数据库方法的特点 5
1.3 数据库管理技术的发展历程 8
1.4 数据库的应用 10
1.4.1 多媒体数据库 10
1.4.2 移动数据库 11
1.4.3 空间数据库 11
1.4.4 电子商务 11
1.4.5 ERP和CRM 11
1.4.6 数据库技术与信息检索 11
1.5 数据库技术的研究领域 12
1.6 小结 13
习题 13
参考答案 14
第2章 数据模型和数据库系统的模式结构 15
2.1 数据模型和数据模型组成的 15
要素 15
2.1.1 数据模型的概念 15
2.1.2 数据模型组成的要素 16
2.2 数据模型的分类 16
2.3 概念数据模型——E-R模型 17
2.3.1 概念数据模型的基本概念 17
2.3.2 概念模型的一种表示方法——E-R图 20
2.4 常用的逻辑数据模型 22
2.4.1 层次模型和网状模型 22
2.4.2 关系模型 23
2.4.3 面向对象模型 23
2.4.4 对象-关系数据模型 24
2.5 数据库系统的模式结构 25
2.5.1 数据库系统中模式、实例和数据库状态 25
2.5.2 数据库系统的三级模式结构 28
2.5.3 数据库的两层映像与数据独立性 29
2.5.4 DBMS语言 30
2.6 小结 31
习题 32
参考答案 32
第3章 关系数据模型和关系数据库系统 33
3.1 关系数据库系统概述 33
3.1.1 关系数据库系统的发展历史 33
3.1.2 关系数据模型 34
3.2 关系模型的数据结构 36
3.2.1 关系模型的数据结构和基本术语 36
3.2.2 关系的形式定义和关系数据库对关系的限定 38
3.2.3 关系数据库中常用的表示法 41
3.3 关系模型的完整性约束 42
3.3.1 关系模型完整性约束的分类 42
3.3.2 实体完整性约束 42
3.3.3 参照完整性约束 42
3.3.4 用户定义完整性约束 44
3.3.5 关系模型完整性约束的检查 45
3.4 关系操作语言——关系代数 46
3.4.1 关系代数操作的分类 46
3.4.2 基于传统集合论的关系操作 48
3.4.3 一元的专门关系操作 49
3.4.4 二元的专门关系操作 52
3.4.5 扩展的关系操作 54
3.5 小结 56
习题 57
参考答案 59
第4章 关系数据库标准语言SQL 60
4.1 SQL概述 60
4.1.1 结构化查询语言SQL 60
4.1.2 SQL的语言特点 61
4.1.3 SQL的数据类型 62
4.1.4 SQL对关系数据库模式的支持 63
4.1.5 SQL语言的组成和语句类型 64
4.2 SQL的数据定义 65
4.2.1 模式的定义和删除 65
4.2.2 基本表的定义、删除和修改 66
4.2.3 索引的建立和删除 68
4.2.4 域的建立和删除 69
4.3 SQL的数据查询 70
4.3.1 简单查询 70
4.3.2 连接查询 73
4.3.3 嵌套查询 74
4.3.4 集合查询 76
4.3.5 SQL中的连接表和外连接 76
4.4 SQL的数据修改 78
4.4.1 插入数据 78
4.4.2 删除数据 78
4.4.3 更新数据 79
4.5 SQL的视图 80
4.5.1 视图的概念和定义 80
4.5.2 视图的查询 82
4.5.3 视图的修改 83
4.5.4 视图的作用 84
4.6 SQL的数据控制 85
4.6.1 权限授予 85
4.6.2 权限收回 87
4.7 小结 88
习题 88
参考答案 90
第5章 SQL与数据库程序设计 91
5.1 数据库程序设计概述 91
5.2 ODBC和IDBC 92
5.2.1 开放数据库互连ODBC 92
5.2.2 Java数据库连接JDBC 94
5.3 SQL的存储过程与函数 97
5.3.1 SQL存储过程与函数概述 97
5.3.2 SQL/PSM 97
5.3.3 创建、执行和删除存储过程和函数 98
5.3.4 存储过程和函数示例 99
5.4 SQL的触发器 100
5.4.1 触发器概述 100
5.4.2 创建触发器 101
5.4.3 激活触发器 101
5.4.4 删除触发器 102
5.4.5 触发器示例 102
5.5 嵌入式SQL 103
5.5.1 嵌入式SQL概述 103
5.5.2 使用嵌入式SQL时应解决的三个问题 103
5.5.3 嵌入式SQL程序的组成 104
5.5.4 在嵌入式SQL中使用游标检索多个元组 105
5.6 动态SQL 107
5.6.1 动态SQL的概念和作用 107
5.6.2 动态SQL的语句类型和执行方式 107
5.7 小结 109
习题 109
参考答案 111
第6章 关系数据库的规范化理论与数据库设计 112
6.1 “不好”的关系模式中存在的问题 113
6.2 函数依赖 113
6.2.1 函数依赖的定义 113
6.2.2 函数依赖的逻辑蕴涵 114
6.2.3 码 115
6.2.4 函数依赖的公理系统 115
6.3 1NF、2NF、3NF和BCNF 116
6.3.1 原子域和第一范式(1NF)及进一步规范化 116
6.3.2 第二范式(2NF) 117
6.3.3 第三范式(3NF) 117
6.3.4 Boyce-Codd范式(BCNF) 118
6.4 多值依赖和4NF 119
6.4.1 多值依赖 119
6.4.2 第四范式(4NF) 120
6.5 关系模式的分解 121
6.5.1 模式分解的等价标准 121
6.5.2 关于模式分解的几个事实 124
6.6 更多的范式 124
6.7 数据库设计 125
6.7.1 设计过程概览 125
6.7.2 概念结构设计 125
6.7.3 逻辑结构设计 126
6.7.4 物理结构设计 128
6.8 规范化理论在数据库设计中的应用 128
6.9 小结 129
习题 130
参考答案 131
第7章 数据库系统实现技术 132
7.1 数据库管理系统概述 132
7.1.1 数据库管理系统的基本功能 133
7.1.2 数据库管理系统的主要成分和工作流程 133
7.2 存储管理 134
7.2.1 物理存储介质简介 134
7.2.2 磁盘存储器 136
7.2.3 加速对辅助存储器的访问 137
7.2.4 数据存储组织 138
7.2.5 缓冲区管理 139
7.2.6 数据字典 139
7.2.7 索引结构 140
7.3 查询处理 145
7.3.1 查询处理概述 145
7.3.2 查询执行 147
7.3.3 查询优化 149
7.4 事务管理 152
7.4.1 事务的概念和特性 152
7.4.2 故障恢复 154
7.4.3 并发控制 156
7.5 小结 163
习题 163
参考答案 165
第8章 分布式、对象-关系、NOSQL数据库 166
8.1 分布式数据库系统 166
8.1 1.分布式数据库系统的主要特点 167
8.1.2 分布式数据库的设计技术 168
8.1.3 分布式数据库中的查询处理 170
8.1.4 分布式数据库系统的并发控制 170
8.1.5 分布式恢复 172
8.1.6 客户机/服务器数据库体系结构简介 172
8.2 对象及对象-关系数据库 176
8.2.1 面向对象数据库基本概念 177
8.2.2 对象数据库标准、语言和设计 180
8.2.3 对象-关系数据库对SQL的扩展 182
8.3 NOSQL数据库简介 183
8.3.1 NOSQL系统介绍 183
8.3.2 CAP原理 186
8.3.3 NOSQL系统分类 188
8.4 小结 190
习题 191
参考答案 192
第9章 数据库应用及安全性 193
9.1 数据仓库 193
9.1.1 数据仓库基本概念 193
9.1.2 数据仓库的数据模型 196
9.1.3 数据库仓库体系结构 198
9.1.4 联机分析处理 199
9.1.5 数据仓库与视图 202
9.2 数据挖掘 202
9.2.1 数据挖掘主要内容 202
9.2.2 关联分析 204
9.2.3 分类和聚类 205
9.3 数据库的安全性 207
9.3.1 数据库安全性问题概述 207
9.3.2 基于授予和收回权限的自主访问控制 209
9.3.3 多级安全性的强制访问控制 211
9.3.4 基于角色的访问控制 211
9.3.5 SQL注入(Injection) 212
9.3.6 统计数据库的安全性 213
9.3.7 加密 214
9.3.8 可信计算机系统评估标准 215
9.4 小结 216
习题 217
参考答案 218
附录1全国计算机等级考试四级数据库原理考试大纲(2018年版) 219
附录2全国计算机等级考试四级数据库原理样题及参考答案 221
参考文献 229