- 科学出版社
- 9787030743138
- 1版
- 2023-03
- 工学
- 计算机类
- 电子与信息大类
- 计算机类
- 软件工程
- 本科
内容简介
本书全面讲述了数据库的基本原理、数据库安全的相关概念与技术及数据库系统的设计与方法。全书分4个部分:第1部分讲述数据库系统的基本概念、关系代数及关系数据库模型、SQL基础及数据定义功能、数据查询和更新、索引和视图、关系数据库理论、关系查询处理与优化及事务与并发控制的相关概念;第2部分讲述数据库安全的基本概念、数据库访问控制技术、数据库恢复技术、数据库安全技术及数据库攻击与防范;第3部分讲述数据库编程和数据库设计的相关知识及基于PHP的数据库应用系统开发;第4部分给出了9个上机实验内容,以供实践教学使用。
本书理论和实践相结合,既阐述了数据库的基本概念和数据库安全理论,又结合了数据库管理系统的应用和安全防范。本书体系完整,内容翔实,实例丰富,通俗易懂,有助于读者理解数据库原理与数据库安全的基本概念,提升数据库实践和安全防护能力。
本书可作为高等院校网络空间安全、信息安全等专业相关课程的教学用书,也可以作为培养数据库系统工程师、安全工程师的培训教材,还可以供数据库管理人员、开发人员及数据库安全人员参考。
本书理论和实践相结合,既阐述了数据库的基本概念和数据库安全理论,又结合了数据库管理系统的应用和安全防范。本书体系完整,内容翔实,实例丰富,通俗易懂,有助于读者理解数据库原理与数据库安全的基本概念,提升数据库实践和安全防护能力。
本书可作为高等院校网络空间安全、信息安全等专业相关课程的教学用书,也可以作为培养数据库系统工程师、安全工程师的培训教材,还可以供数据库管理人员、开发人员及数据库安全人员参考。
目录
第1部分 数据库基本原理
第1章 绪论 3
1.1 数据管理技术 3
1.1.1 信息和数据 3
1.1.2 数据管理技术的发展 4
1.2 数据库系统的组成和结构 6
1.2.1 数据库系统的组成 6
1.2.2 数据库系统的结构 8
1.3 数据模型 9
1.3.1 从现实世界到数据世界 9
1.3.2 数据模型的概念 10
1.3.3 E-
模型 11
1.3.4 常用的数据模型 13
1.4 习题 13
第2章 关系数据库 14
2.1 关系模型的数据结构和基本概念 14
2.1.1 关系数据结构及其形式化定义 14
2.1.2 关系数据模型的基本概念 15
2.1.3 关系的性质 17
2.1.4 关系模型的优缺点 17
2.2 关系代数 18
2.2.1 传统的集合运算 18
2.2.2 专门的关系运算 19
2.2.3 关系演算 21
2.3 关系完整性 22
2.3.1 实体完整性 22
2.3.2 参照完整性 22
2.3.3 用户自定义完整性 23
2.4 习题 23
第3章 SQL 25
3.1 概述 25
3.1.1 SQL的特点 25
3.1.2 数据类型 26
3.2 学生-课程数据库 27
3.3 数据定义 29
3.3.1 数据库操作 29
3.3.2 基本表操作 31
3.3.3 建立和删除索引 33
3.4 数据查询 34
3.4.1 单表查询 34
3.4.2 连接查询 40
3.4.3 嵌套查询 43
3.4.4 集合查询 48
3.5 数据更新 49
3.5.1 插入数据 49
3.5.2 修改数据 50
3.5.3 删除数据 51
3.6 视图 51
3.6.1 定义视图 52
3.6.2 查询视图 53
3.6.3 更新视图 54
3.6.4 视图的作用 55
3.7 习题 55
第4章 关系数据库理论 57
4.1 问题的提出 57
4.2 规范化 58
4.2.1 函数依赖 58
4.2.2 键 60
4.2.3 范式 60
4.3 数据依赖的公理系统 64
4.3.1 函数依赖的推理规则 64
4.3.2 闭包及候选键求解方法 65
4.4 模式的分解 68
4.5 习题 69
第5章 关系查询处理与优化 71
5.1 关系数据库系统的查询处理 71
5.1.1 查询处理步骤 71
5.1.2 查询操作的实现 73
5.2 关系数据库系统的查询优化 74
5.2.1 一个简单的示例 74
5.2.2 查询优化的必要性 76
5.3 代数优化 77
5.3.1 变换规则 77
5.3.2 启发式优化——查询树 79
5.4 物理优化 82
5.4.1 基于规则的启发式优化 82
5.4.2 基于代价的优化 83
5.5 习题 84
第6章 事务与并发控制 85
6.1 事务的基本概念 85
6.1.1 事务 85
6.1.2 事务的ACID特性 86
6.1.3 事务处理模型 86
6.2 并发控制 88
6.2.1 并发控制的概念 88
6.2.2 并发带来的问题 89
6.2.3 可串行化调度 92
6.3 基于锁的并发控制 92
6.3.1 锁的概念 92
6.3.2 利用锁解决并发产生的问题 93
6.3.3 活锁和死锁 95
6.3.4 锁的粒度 97
6.3.5 封锁协议 97
6.3.6 两段锁协议 98
6.4 习题 99
第2部分 数据库安全
第7章 数据库安全概述 103
7.1 数据库安全的概念 103
7.2 数据库安全的威胁 104
7.2.1 数据安全面临的威胁 105
7.2.2 国家标准中安全问题定义的威胁 107
7.2.3 数据库安全问题 108
7.3 数据库安全技术 109
7.3.1 技术体系架构 109
7.3.2 D
MS安全特性 116
7.4 安全标准简介 117
7.5 数据安全的政策和法律法规 119
7.5.1 《中华人民共和国网络安全法》解析 119
7.5.2 网络安全等级保护2.0解析 120
7.5.3 《中华人民共和国数据安全法》解析 120
7.5.4 《中华人民共和国个人信息保护法》简介 122
7.5.5 政策和其他法律法规 122
7.6 习题 122
第8章 数据库访问控制技术 123
8.1 数据库访问控制 123
8.1.1 安全控制模型 123
8.1.2 用户标识与鉴别 124
8.1.3 存取控制 124
8.2 自主存取控制 125
8.2.1 服务器认证 126
8.2.2 数据库认证 128
8.2.3 角色 131
8.2.4 权限管理 134
8.3 强制存取控制 137
8.4 习题 138
第9章 数据库恢复技术 139
9.1 故障的种类 139
9.2 备份 141
9.2.1 备份概述 141
9.2.2 备份的类型 142
9.2.3 日志文件 143
9.2.4 数据库镜像 144
9.3 恢复技术 145
9.3.1 事务故障的恢复 145
9.3.2 系统故障的恢复 145
9.3.3 介质故障的恢复 146
9.3.4 基于检查点的恢复 146
9.4 容灾技术 148
9.4.1 容灾备份 148
9.4.2 容灾的分类 149
9.4.3 容灾恢复能力的评价标准 150
9.4.4 容灾备份的关键技术 152
9.5 习题 153
第10章 数据库安全技术 154
10.1 加密技术 154
10.1.1 数据加密的概念 154
10.1.2 数据加密分类 155
10.1.3 数据库加密 156
10.2 数据完整性保护技术 158
10.2.1 杂凑算法 158
10.2.2 数字签名 158
10.3 隐私保护技术 159
10.3.1 数据脱敏 159
10.3.2 匿名化 161
10.3.3 差分隐私 162
10.4 数据库的安全审计 162
10.4.1 数据库审计 162
10.4.2 数据安全审计 163
10.5 主流数据库的安全机制与实现机理 164
10.5.1 SQL Se
ve
164
10.5.2 MySQL 164
10.5.3 O
acle 165
10.6 习题 166
第11章 数据库攻击与防范 167
11.1 数据库攻击 167
11.2 SQL注入攻击 169
11.2.1 SQL注入攻击的概念 169
11.2.2 SQL注入原理 170
11.2.3 动态构造SQL语句 171
11.2.4 SQL注入攻击实例 171
11.2.5 常见的SQL注入工具 173
11.3 SQL注入攻击的防范 175
11.3.1 领域驱动的安全 175
11.3.2 使用参数化语句 176
11.3.3 输入验证 176
11.3.4 编码输出 177
11.3.5 规范化方法 177
11.3.6 通过设计来避免SQL注入的危险 178
11.4 习题 180
第3部分 数据库系统开发
第12章 数据库编程 183
12.1 T-SQL编程基础 183
12.1.1 T-SQL元素 183
12.1.2 常量 185
12.1.3 变量 186
12.1.4 运算符 187
12.1.5 T-SQL流程控制语句 189
12.2 函数 196
12.2.1 系统内置函数 196
12.2.2 用户定义函数 200
12.3 存储过程 204
12.3.1 存储过程概述 204
12.3.2 存储过程的类型 205
12.3.3 存储过程的创建和调用 206
12.3.4 存储过程的查看 208
12.3.5 存储过程的修改和删除 208
12.4 触发器 209
12.4.1 触发器概述 209
12.4.2 触发器的分类 210
12.4.3 触发器的工作原理 211
12.4.4 触发器的创建 212
12.4.5 触发器的修改 215
12.4.6 禁用、启用和删除触发器 215
12.5 习题 216
第13章 数据库设计 217
13.1 数据库设计概述 217
13.1.1 数据库设计的方法 217
13.1.2 数据库设计的内容 218
13.1.3 数据库设计的步骤 218
13.2 需求分析 219
13.2.1 需求分析的任务 219
13.2.2 需求分析的方法 220
13.2.3 需求分析的结果 221
13.3 概念结构设计 222
13.3.1 概念结构 222
13.3.2 概念结构设计的方法 222
13.3.3 概念结构设计的步骤 223
13.4 逻辑结构设计 226
13.4.1 将基本E-
图转换为关系数据模型 226
13.4.2 关系模式的优化 228
13.4.3 用户子模式的设计 228
13.5 物理结构设计 228
13.6 数据库实施、运行和维护 229
13.6.1 数据库的实施 229
13.6.2 数据库运行和维护 229
13.7 习题 229
第14章 基于PHP的数据库应用系统开发 230
14.1 We
开发准备知识 230
14.1.1 PHP语言简介 230
14.1.2 HTML简介 230
14.1.3 We
服务器搭建 231
14.1.4 配置网站根目录 231
14.2 数据库的设计与连接 232
14.2.1 数据库的设计 232
14.2.2 数据库连接模块的设计 232
14.3 功能模块的实现 233
14.3.1 系统登录模块 233
14.3.2 图书管理模块 236
14.3.3 图书添加模块 240
14.3.4 图书信息修改模块 242
14.3.5 图书删除模块 245
14.4 习题 246
第4部分 上机实验
上机实验 249
实验1 数据库的定义 249
实验2 数据库单表查询 250
实验3 数据库复杂查询 251
实验4 视图与索引 252
实验5 事务处理 254
实验6 安全管理 255
实验7 备份与恢复 257
实验8 SQL注入攻击 258
实验9 函数、存储过程与触发器 259
参考文献 261
第1章 绪论 3
1.1 数据管理技术 3
1.1.1 信息和数据 3
1.1.2 数据管理技术的发展 4
1.2 数据库系统的组成和结构 6
1.2.1 数据库系统的组成 6
1.2.2 数据库系统的结构 8
1.3 数据模型 9
1.3.1 从现实世界到数据世界 9
1.3.2 数据模型的概念 10
1.3.3 E-
模型 11
1.3.4 常用的数据模型 13
1.4 习题 13
第2章 关系数据库 14
2.1 关系模型的数据结构和基本概念 14
2.1.1 关系数据结构及其形式化定义 14
2.1.2 关系数据模型的基本概念 15
2.1.3 关系的性质 17
2.1.4 关系模型的优缺点 17
2.2 关系代数 18
2.2.1 传统的集合运算 18
2.2.2 专门的关系运算 19
2.2.3 关系演算 21
2.3 关系完整性 22
2.3.1 实体完整性 22
2.3.2 参照完整性 22
2.3.3 用户自定义完整性 23
2.4 习题 23
第3章 SQL 25
3.1 概述 25
3.1.1 SQL的特点 25
3.1.2 数据类型 26
3.2 学生-课程数据库 27
3.3 数据定义 29
3.3.1 数据库操作 29
3.3.2 基本表操作 31
3.3.3 建立和删除索引 33
3.4 数据查询 34
3.4.1 单表查询 34
3.4.2 连接查询 40
3.4.3 嵌套查询 43
3.4.4 集合查询 48
3.5 数据更新 49
3.5.1 插入数据 49
3.5.2 修改数据 50
3.5.3 删除数据 51
3.6 视图 51
3.6.1 定义视图 52
3.6.2 查询视图 53
3.6.3 更新视图 54
3.6.4 视图的作用 55
3.7 习题 55
第4章 关系数据库理论 57
4.1 问题的提出 57
4.2 规范化 58
4.2.1 函数依赖 58
4.2.2 键 60
4.2.3 范式 60
4.3 数据依赖的公理系统 64
4.3.1 函数依赖的推理规则 64
4.3.2 闭包及候选键求解方法 65
4.4 模式的分解 68
4.5 习题 69
第5章 关系查询处理与优化 71
5.1 关系数据库系统的查询处理 71
5.1.1 查询处理步骤 71
5.1.2 查询操作的实现 73
5.2 关系数据库系统的查询优化 74
5.2.1 一个简单的示例 74
5.2.2 查询优化的必要性 76
5.3 代数优化 77
5.3.1 变换规则 77
5.3.2 启发式优化——查询树 79
5.4 物理优化 82
5.4.1 基于规则的启发式优化 82
5.4.2 基于代价的优化 83
5.5 习题 84
第6章 事务与并发控制 85
6.1 事务的基本概念 85
6.1.1 事务 85
6.1.2 事务的ACID特性 86
6.1.3 事务处理模型 86
6.2 并发控制 88
6.2.1 并发控制的概念 88
6.2.2 并发带来的问题 89
6.2.3 可串行化调度 92
6.3 基于锁的并发控制 92
6.3.1 锁的概念 92
6.3.2 利用锁解决并发产生的问题 93
6.3.3 活锁和死锁 95
6.3.4 锁的粒度 97
6.3.5 封锁协议 97
6.3.6 两段锁协议 98
6.4 习题 99
第2部分 数据库安全
第7章 数据库安全概述 103
7.1 数据库安全的概念 103
7.2 数据库安全的威胁 104
7.2.1 数据安全面临的威胁 105
7.2.2 国家标准中安全问题定义的威胁 107
7.2.3 数据库安全问题 108
7.3 数据库安全技术 109
7.3.1 技术体系架构 109
7.3.2 D
MS安全特性 116
7.4 安全标准简介 117
7.5 数据安全的政策和法律法规 119
7.5.1 《中华人民共和国网络安全法》解析 119
7.5.2 网络安全等级保护2.0解析 120
7.5.3 《中华人民共和国数据安全法》解析 120
7.5.4 《中华人民共和国个人信息保护法》简介 122
7.5.5 政策和其他法律法规 122
7.6 习题 122
第8章 数据库访问控制技术 123
8.1 数据库访问控制 123
8.1.1 安全控制模型 123
8.1.2 用户标识与鉴别 124
8.1.3 存取控制 124
8.2 自主存取控制 125
8.2.1 服务器认证 126
8.2.2 数据库认证 128
8.2.3 角色 131
8.2.4 权限管理 134
8.3 强制存取控制 137
8.4 习题 138
第9章 数据库恢复技术 139
9.1 故障的种类 139
9.2 备份 141
9.2.1 备份概述 141
9.2.2 备份的类型 142
9.2.3 日志文件 143
9.2.4 数据库镜像 144
9.3 恢复技术 145
9.3.1 事务故障的恢复 145
9.3.2 系统故障的恢复 145
9.3.3 介质故障的恢复 146
9.3.4 基于检查点的恢复 146
9.4 容灾技术 148
9.4.1 容灾备份 148
9.4.2 容灾的分类 149
9.4.3 容灾恢复能力的评价标准 150
9.4.4 容灾备份的关键技术 152
9.5 习题 153
第10章 数据库安全技术 154
10.1 加密技术 154
10.1.1 数据加密的概念 154
10.1.2 数据加密分类 155
10.1.3 数据库加密 156
10.2 数据完整性保护技术 158
10.2.1 杂凑算法 158
10.2.2 数字签名 158
10.3 隐私保护技术 159
10.3.1 数据脱敏 159
10.3.2 匿名化 161
10.3.3 差分隐私 162
10.4 数据库的安全审计 162
10.4.1 数据库审计 162
10.4.2 数据安全审计 163
10.5 主流数据库的安全机制与实现机理 164
10.5.1 SQL Se
ve
164
10.5.2 MySQL 164
10.5.3 O
acle 165
10.6 习题 166
第11章 数据库攻击与防范 167
11.1 数据库攻击 167
11.2 SQL注入攻击 169
11.2.1 SQL注入攻击的概念 169
11.2.2 SQL注入原理 170
11.2.3 动态构造SQL语句 171
11.2.4 SQL注入攻击实例 171
11.2.5 常见的SQL注入工具 173
11.3 SQL注入攻击的防范 175
11.3.1 领域驱动的安全 175
11.3.2 使用参数化语句 176
11.3.3 输入验证 176
11.3.4 编码输出 177
11.3.5 规范化方法 177
11.3.6 通过设计来避免SQL注入的危险 178
11.4 习题 180
第3部分 数据库系统开发
第12章 数据库编程 183
12.1 T-SQL编程基础 183
12.1.1 T-SQL元素 183
12.1.2 常量 185
12.1.3 变量 186
12.1.4 运算符 187
12.1.5 T-SQL流程控制语句 189
12.2 函数 196
12.2.1 系统内置函数 196
12.2.2 用户定义函数 200
12.3 存储过程 204
12.3.1 存储过程概述 204
12.3.2 存储过程的类型 205
12.3.3 存储过程的创建和调用 206
12.3.4 存储过程的查看 208
12.3.5 存储过程的修改和删除 208
12.4 触发器 209
12.4.1 触发器概述 209
12.4.2 触发器的分类 210
12.4.3 触发器的工作原理 211
12.4.4 触发器的创建 212
12.4.5 触发器的修改 215
12.4.6 禁用、启用和删除触发器 215
12.5 习题 216
第13章 数据库设计 217
13.1 数据库设计概述 217
13.1.1 数据库设计的方法 217
13.1.2 数据库设计的内容 218
13.1.3 数据库设计的步骤 218
13.2 需求分析 219
13.2.1 需求分析的任务 219
13.2.2 需求分析的方法 220
13.2.3 需求分析的结果 221
13.3 概念结构设计 222
13.3.1 概念结构 222
13.3.2 概念结构设计的方法 222
13.3.3 概念结构设计的步骤 223
13.4 逻辑结构设计 226
13.4.1 将基本E-
图转换为关系数据模型 226
13.4.2 关系模式的优化 228
13.4.3 用户子模式的设计 228
13.5 物理结构设计 228
13.6 数据库实施、运行和维护 229
13.6.1 数据库的实施 229
13.6.2 数据库运行和维护 229
13.7 习题 229
第14章 基于PHP的数据库应用系统开发 230
14.1 We
开发准备知识 230
14.1.1 PHP语言简介 230
14.1.2 HTML简介 230
14.1.3 We
服务器搭建 231
14.1.4 配置网站根目录 231
14.2 数据库的设计与连接 232
14.2.1 数据库的设计 232
14.2.2 数据库连接模块的设计 232
14.3 功能模块的实现 233
14.3.1 系统登录模块 233
14.3.2 图书管理模块 236
14.3.3 图书添加模块 240
14.3.4 图书信息修改模块 242
14.3.5 图书删除模块 245
14.4 习题 246
第4部分 上机实验
上机实验 249
实验1 数据库的定义 249
实验2 数据库单表查询 250
实验3 数据库复杂查询 251
实验4 视图与索引 252
实验5 事务处理 254
实验6 安全管理 255
实验7 备份与恢复 257
实验8 SQL注入攻击 258
实验9 函数、存储过程与触发器 259
参考文献 261

















