目录


第一部分数据库的基本概念和基础知识
第1章绪论31.1数据库系统概述3
1.1.1数据库的基本概念3
1.1.2数据库系统的目标5
1.1.3数据库系统的发展历史8
1.1.4数据管理技术的发展趋势10
1.2数据视图11
1.2.1数据抽象11
1.2.2实例和模式12
1.2.3数据模型13
1.3数据库管理系统概述14
1.3.1数据库语言14
1.3.2查询处理16
1.3.3数据存储17
1.3.4数据库体系结构17
1.4数据库设计18
1.4.1设计过程18
1.4.2ER模型18
1.4.3规范化19
1.5数据库用户和管理员20
1.5.1数据库用户20
1.5.2数据库管理员21
小结21
习题22
第2章关系模型23
2.1关系数据结构23
2.1.1关系的通俗解释23
2.1.2关系的定义24
2.1.3关系模式26
2.2关系模型的完整性约束26
2.2.1实体完整性27
2.2.2参照完整性27
2.2.3用户自定义完整性28
2.3关系操作28
2.3.1基本的关系操作28
2.3.2关系查询语言28
2.4关系代数29
2.4.1基本的关系运算29
2.4.2扩展的关系运算32
2.5查询优化35
2.5.1代数优化35
2.5.2查询执行38
2.6关系演算39
2.6.1元组关系演算39
2.6.2域关系演算41
小结42
习题42
目录〖3〗第二部分关系数据库的基本原理
第3章关系数据库语言——SQL473.1SQL简介47
3.2数据定义48
3.2.1基本表的定义48
3.2.2基本表的修改51
3.2.3基本表的删除51
3.3数据查询52
3.3.1单表查询52
3.3.2多表查询60
3.3.3嵌套子查询62
3.3.4集合查询66
3.4数据更新67
3.4.1数据插入67
3.4.2删除数据68
3.4.3修改数据69
小结70
习题70
第4章视图和索引72
4.1视图72
4.1.1视图的定义72
4.1.2视图的查询74
4.2视图的更新74
4.2.1更新视图75
4.2.2删除视图76
4.3索引76
4.3.1索引类型77
4.3.2创建索引79
4.3.3选择索引82
4.4数据库系统的模式结构83
4.4.1三级模式结构83
4.4.2数据独立性85
小结86
习题86
第5章约束和触发器87
5.1主码和外码约束87
5.1.1主码约束87
5.1.2主外码约束88
5.2基于属性和元组的约束90
5.2.1非空值约束91
5.2.2UNIQUE约束91
5.2.3CHECK子句91
5.2.4用户自定义域92
5.3约束的修改93
5.4断言94
5.4.1创建断言94
5.4.2使用断言94
5.5触发器96
5.5.1定义触发器96
5.5.2触发器的执行101
5.5.3删除触发器102
小结102
习题102
第6章数据库的安全性104
6.1数据库的安全性概述104
6.1.1数据库安全的基本概念104
6.1.2数据库的潜在安全风险105
6.1.3数据库安全常用的关键技术105
6.2数据库安全性控制106
6.2.1用户身份鉴别106
6.2.2存取控制109
6.2.3自主存取控制110
6.2.4强制存取控制119
6.3审计120
6.3.1审计事件120
6.3.2审计功能120
6.3.3PostgreSQL的审计121
6.4数据库加密技术122
6.4.1数据加密122
6.4.2PostgreSQL加密技术123
6.5数据脱敏技术124
小结127
习题128
第7章事务管理129
7.1事务129
7.1.1事务的ACID性质129
7.1.2事务的原子性和持久性131
7.1.3事务的一致性和隔离性132
7.2可串行化134
7.2.1串行调度134
7.2.2可串行化调度135
7.2.3冲突可串行化调度136
7.2.4事务隔离性级别138
7.3并发控制139
7.3.1基于锁的协议139
7.3.2两段锁协议141
7.3.3死锁处理142
7.3.4多粒度封锁143
7.3.5基于时间戳的协议145
7.3.6多版本机制146
7.4数据库恢复146
7.4.1故障类型147
7.4.2恢复技术147
7.4.3检查点恢复技术151
7.4.4恢复算法151
7.5PostgreSQL的备份与恢复153
7.5.1PostgreSQL的备份153
7.5.2PostgreSQL的恢复157
小结160
习题161
第8章数据库应用162
8.1三层体系结构162
8.1.1Web服务器层162
8.1.2应用服务器层163
8.1.3数据库服务器层163
8.2存储过程和函数163
8.2.1定义部分165
8.2.2流程控制171
8.2.3存储过程和函数的创建173
8.2.4存储过程和函数的调用176
8.3JDBC177
8.3.1概述177
8.3.2JDBC访问数据库的基本流程179
8.3.3JDBC的游标与参数绑定182
8.4应用程序安全性185
8.4.1SQL注入186
8.4.2应用程序认证189
8.4.3应用级授权190
8.4.4审计追踪190
小结191
习题191
第三部分数据库的设计
第9章数据库设计1959.1概述195
9.1.1需求分析196
9.1.2概念模型的设计197
9.1.3逻辑模型的设计200
9.1.4物理结构的设计200
9.2ER模型201
9.2.1实体集201
9.2.2联系集201
9.2.3属性集202
9.2.4扩展的ER特性203
9.3约束204
9.3.1映射基数204
9.3.2参与约束205
9.3.3码205
9.4ER图205
9.4.1主要构件206
9.4.2映射基数207
9.4.3角色208
9.4.4弱实体集208
9.4.5多元联系208
9.4.6ISA联系209
9.5ER设计问题209
9.5.1消除冲突和冗余209
9.5.2实体集与属性210
9.5.3实体集与联系集210
9.5.4二元联系与多元联系集211
9.6ER模型转换为关系模式212
9.6.1实体集到关系的转换213
9.6.2弱实体集的处理213
9.6.3联系集到关系的转换213
9.6.4泛化的表示214
9.7统一建模语言215
9.7.1UML常用概念215
9.7.2UML图到关系的转换216
小结217
习题218
第10章关系数据库设计理论220
10.1设计选择220
10.2第一范式222
10.3规范化222
10.3.1函数依赖222
10.3.2码223
10.3.3BCNF范式223
10.3.4第三范式224
10.4函数依赖理论224
10.4.1函数依赖集的闭包224
10.4.2属性子集的闭包226
10.4.3正则覆盖226
10.4.4无损分解228
10.4.5保持函数依赖性231
10.5分解算法232
10.5.1候选码的求解算法232
10.5.2分解为BCNF233
10.5.3分解为3NF235
10.6反规范化的定义236
10.6.1反规范化的定义236
10.6.2常用的反规范化技术237
10.6.3反规范化下的数据完整性237
小结238
习题238
第四部分数据库管理的新技术
第11章NoSQL数据库24311.1概述243
11.1.1NoSQL数据库243
11.1.2NoSQL的理论基础245
11.2键值数据库247
11.2.1基本概念247
11.2.2Redis数据库的结构248
11.2.3Redis数据库的操作252
11.3列簇数据库255
11.3.1基本概念255
11.3.2HBase的数据模型256
11.3.3HBase的存储结构258
11.3.4HBase的系统架构259
11.3.5HBase的操作264
11.4文档数据库270
11.4.1基本概念270
11.4.2MongoDB的数据模型271
11.4.3MongoDB集群架构278
11.4.4MongoDB的基本语法280
11.5图数据库294
11.5.1基本概念294
11.5.2Neo4j介绍295
11.5.3Neo4j的存储结构296
11.5.4Neo4j的查询语言CQL301
小结307
习题307
第12章大数据管理309
12.1概述309
12.1.1大数据的概念309
12.1.2大数据的影响310
12.1.3大数据技术311
12.2分布式文件系统312
12.2.1计算机集群结构312
12.2.2HDFS简介313
12.3分布式并行处理314
12.3.1MapReduce的基本架构315
12.3.2MapReduce工作过程317
12.3.3MapReduce编程实践319
12.4云数据库323
12.4.1云数据库产品324
12.4.2关系数据服务326
12.4.3华为云数据库GaussDB(for MySQL)328
12.4.4华为云数据库GaussDB(openGauss)331
12.4.5NoSQL数据服务334
小结336
习题336
参考文献337