目 录
第1章 数据库概述 1
1.1 数据库系统概述 1
1.1.1 数据库与数据库管理系统
简介 2
1.1.2 数据库系统简介 3
1.1.3 数据库管理技术的发展 3
1.2 数据库系统结构 4
1.2.1 数据库系统的三级模式结构 5
1.2.2 数据库的二级映像功能和数据
独立性 6
1.2.3 数据库管理系统的工作过程 6
1.3 常用数据库简介 7
1.3.1 关系型数据库 8
1.3.2 非关系型数据库 9
1.3.3 云数据库 11
1.4 Oracle数据库简介 12
1.4.1 Oracle数据库的发展历程 12
1.4.2 Oracle数据库的特点 13
1.4.3 Oracle数据库的工作模式 13
1.4.4 Oracle数据库的应用结构 14
1.5 国产数据库简介 16
1.5.1 国产数据库的发展现状 16
1.5.2 华为数据库简介 17
1.6 本章小结 18
1.7 习题与实践练习 18
第2章 数据模型 20
2.1 数据模型简介 20
2.1.1 数据模型的概念 21
2.1.2 数据模型的三要素 21
2.2 概念模型 22
2.2.1 基本概念 22
2.2.2 概念模型的E-R图表示 23
2.3 逻辑模型 26
2.3.1 层次模型 26
2.3.2 网状模型 27
2.3.3 关系模型 28
2.3.4 面向对象模型 28
2.4 概念模型向逻辑模型的转换 29
2.5 本章小结 31
2.6 习题与实践练习 32
第3章 关系模型与关系代数 34
3.1 关系模型 34
3.1.1 关系数据结构 34
3.1.2 关系操作 38
3.1.3 关系的完整性 38
3.2 关系代数及其运算 41
3.2.1 关系的数学定义 41
3.2.2 关系代数概述 43
3.2.3 传统的集合运算 43
3.2.4 专门的关系运算 45
3.3 关系演算 47
3.3.1 元组关系演算 47
3.3.2 域关系演算 48
3.4 关系代数表达式的优化 49
3.5 SQL简介 49
3.6 本章小结 50
3.7 习题与实践练习 50
第4章 关系型数据库设计理论 53
4.1 关系型数据库设计理论概述 53
4.2 函数依赖 55
4.2.1 函数依赖的概念 55
4.2.2 函数依赖的类型 56
4.2.3 FD公理 57
4.2.4 属性集闭包 57
4.2.5 F的最小依赖集Fm 58
4.2.6 候选码求解 59
4.3 关系模式的范式及规范化 60
4.3.1 1NF 61
4.3.2 2NF 62
4.3.3 3NF 63
4.3.4 BCNF 63
4.3.5 4NF 64
4.4 关系模式的分解 65
4.4.1 无损连接的分解 65
4.4.2 保持函数依赖的分解 67
4.4.3 模式分解算法 68
4.5 本章小结 70
4.6 习题与实践练习 71
第5章 数据库设计 73
5.1 数据库设计概述 73
5.1.1 数据库设计的相关内容 73
5.1.2 数据库设计的特点 74
5.1.3 数据库设计方法分类 75
5.1.4 数据库设计的6个阶段 75
5.2 需求分析 78
5.2.1 需求描述与分析 79
5.2.2 需求分析的分类 79
5.2.3 需求分析的内容与方法 79
5.2.4 需求分析的步骤 80
5.2.5 数据字典 82
5.3 概念结构设计 83
5.3.1 概念结构设计的必要性与
要求 83
5.3.2 概念结构设计的方法与步骤 84
5.3.3 采用E-R模型设计概念结构的
方法 86
5.4 逻辑结构设计 90
5.4.1 E-R图向关系模型的转换 90
5.4.2 关系模式的规范化 91
5.4.3 模式评价与改进 91
5.5 物理结构设计 92
5.5.1 物理结构设计的相关内容和
方法 92
5.5.2 评价物理结构 94
5.6 数据库实施 94
5.7 数据库运行和维护 95
5.8 本章小结 96
5.9 习题与实践练习 96
第6章 数据库开发环境 99
6.1 Oracle 18c数据库的新特性 99
6.2 Oracle 18c数据库的安装 101
6.2.1 安装要求和软件下载 101
6.2.2 Oracle 18c数据库的
安装步骤 102
6.3 Oracle数据库开发工具 106
6.3.1 SQL Developer 106
6.3.2 SQL*Plus 107
6.3.3 Oracle Enterprise Manager 111
6.4 Oracle 18c数据库的卸载 112
6.4.1 停止所有的Oracle服务 113
6.4.2 卸载所有的Oracle组件 113
6.4.3 手动删除Oracle的
残留部分 113
6.5 本章小结 116
6.6 习题与实践练习 116
第7章 Oracle数据库体系结构 118
7.1 物理存储结构 118
7.1.1 数据文件 119
7.1.2 控制文件 120
7.1.3 日志文件 121
7.1.4 其他文件 122
7.2 逻辑存储结构 122
7.2.1 表空间 123
7.2.2 段 124
7.2.3 区 125
7.2.4 数据块 125
7.3 内存结构 126
7.3.1 系统全局区 126
7.3.2 程序全局区 128
7.4 进程结构 129
7.5 数据字典 133
7.5.1 静态数据字典 133
7.5.2 动态数据字典 135
7.6 本章小结 137
7.7 习题与实践练习 138
第8章 表空间和数据文件管理 140
8.1 Oracle数据库的逻辑结构 140
8.2 表空间和数据文件概述 141
8.3 表空间中的磁盘空间管理 143
8.4 创建表空间 144
8.4.1 创建永久表空间 145
8.4.2 创建临时表空间 147
8.4.3 创建撤销表空间 147
8.4.4 创建非标准块表空间 147
8.4.5 创建大文件表空间 148
8.5 维护表空间和数据文件 149
8.5.1 重命名表空间和数据文件 149
8.5.2 改变表空间和数据文件的
状态 150
8.5.3 设置默认的表空间 151
8.5.4 扩展表空间 152
8.5.5 删除表空间和数据文件 153
8.6 查看表空间和数据文件的信息 154
8.7 本章小结 156
8.8 习题与实践练习 156
第9章 Oracle模式对象 159
9.1 表 159
9.1.1 创建表 159
9.1.2 管理表 162
9.2 表的约束 166
9.2.1 非空约束 167
9.2.2 唯一性约束 168
9.2.3 主键约束 169
9.2.4 外键约束 171
9.2.5 检查约束 173
9.2.6 禁用和激活约束 174
9.2.7 约束的验证状态 175
9.3 视图 176
9.3.1 创建视图 176
9.3.2 视图的DML操作 178
9.3.3 修改和删除视图 180
9.4 索引 180
9.4.1 索引的分类 181
9.4.2 创建索引 182
9.4.3 管理索引 184
9.5 序列 187
9.5.1 创建序列 187
9.5.2 使用序列 188
9.5.3 管理序列 189
9.6 同义词 190
9.7 本章小结 191
9.8 习题与实践练习 191
第10章 SQL基础知识 196
10.1 SQL概述 196
10.1.1 SQL的特点 197
10.1.2 SQL的种类 197
10.1.3 SQL规范与操作 199
10.1.4 SQL操作界面 199
10.2 Oracle 18c常用数据类型与
操作符 199
10.2.1 Oracle 18c常用数据类型 200
10.2.2 Oracle 18c常用操作符 200
10.3 数据操纵语言 201
10.3.1 基本查询语句SELECT 201
10.3.2 添加数据语句INSERT 207
10.3.3 修改数据语句UPDATE 208
10.3.4 删除数据语句DELETE或
TRUNCATE 208
10.3.5 其他数据操纵语句 209
10.4 数据控制语言 210
10.4.1 GRANT语句 210
10.4.2 REVOKE语句 210
10.5 事务控制语言 210
10.5.1 COMMIT语句 210
10.5.2 ROLLBACK语句 211
10.6 使用函数 211
10.6.1 字符串函数 211
10.6.2 数值函数 212
10.6.3 日期时间函数 213
10.6.4 转换函数 214
10.6.5 聚合函数 215
10.7 高级查询 216
10.7.1 简单连接查询 216
10.7.2 使用JOIN关键字的
连接查询 217
10.7.3 集合查询 221
10.7.4 子查询 222
10.8 案例分析 226
10.9 本章小结 232
10.10 习题与实践练习 232
第11章 PL/SQL编程基础 234
11.1 PL/SQL简介 234
11.1.1 PL/SQL体系结构 234
11.1.2 PL/SQL的特点 235
11.1.3 PL/SQL代码编写规则 235
11.1.4 PL/SQL的开发和
运行环境 236
11.2 PL/SQL程序块结构 237
11.3 常量和变量 238
11.3.1 PL/SQL标识符 239
11.3.2 数据类型 239
11.3.3 声明常量与变量 241
11.3.4 使用%TYPE和%ROWTYPE
定义变量 242
11.4 PL/SQL控制结构 244
11.4.1 条件结构 244
11.4.2 循环结构 247
11.5 游标的创建与使用 249
11.5.1 声明游标 250
11.5.2 打开游标 250
11.5.3 检索游标 251
11.5.4 关闭游标 251
11.5.5 游标的常用属性 251
11.5.6 简单的游标循环 252
11.5.7 游标FOR循环 253
11.5.8 带参数的游标 253
11.5.9 使用游标更新数据 254
11.6 PL/SQL异常处理 254
11.6.1 异常处理简介 254
11.6.2 系统异常 255
11.6.3 自定义异常 256
11.7 PL/SQL应用程序性能调优 258
11.7.1 PL/SQL性能问题的由来 258
11.7.2 确定PL/SQL的性能问题 259
11.7.3 PL/SQL性能优化的特性 259
11.8 本章小结 263
11.9 习题与实践练习 263
第12章 存储过程、触发器、
函数和包 267
12.1 存储过程 267
12.1.1 无参数存储过程的创建与
调用 268
12.1.2 带参数存储过程的创建与
调用 269
12.1.3 管理存储过程 271
12.1.4 存储过程中的异常处理 271
12.2 触发器 272
12.2.1 触发器概述 272
12.2.2 创建触发器 272
12.2.3 管理触发器 276
12.2.4 触发器相关数据字典 277
12.3 函数 277
12.3.1 创建和调用函数 277
12.3.2 修改和删除函数 278
12.4 程序包 278
12.4.1 创建程序包 279
12.4.2 包的开发步骤 280
12.4.3 删除程序包 280
12.4.4 包的管理 280
12.5 本章小结 281
12.6 习题与实践练习 281
第13章 事务和锁 284
13.1 事务概述 284
13.1.1 事务的概念 284
13.1.2 事务的特性 284
13.2 事务处理 285
13.2.1 事务的开始与结束 285
13.2.2 使用COMMIT语句
提交事务 286
13.2.3 使用ROLLBACK语句回退
全部事务 286
13.2.4 设置保存点回退部分事务 287
13.3 并发事务和锁 288
13.3.1 并发事务 288
13.3.2 事务隔离级别 289
13.3.3 锁机制 289
13.3.4 锁的类型 290
13.3.5 死锁 290
13.4 本章小结 291
13.5 习题与实践练习 291
第14章 Oracle安全性管理 293
14.1 用户 293
14.1.1 创建用户 294
14.1.2 管理用户 296
14.2 权限管理 297
14.2.1 权限概述 297
14.2.2 系统权限管理 298
14.2.3 对象权限管理 300
14.3 角色管理 303
14.3.1 角色概述 303
14.3.2 用户自定义角色 304
14.3.3 管理用户角色 305
14.4 概要文件和数据字典视图 307
14.4.1 创建概要文件 308
14.4.2 管理概要文件 310
14.4.3 数据字典视图 311
14.5 审计 313
14.5.1 审计启用与关闭 313
14.5.2 登录审计 314
14.5.3 语句审计 314
14.5.4 对象审计 315
14.5.5 权限审计 315
14.6 本章小结 316
14.7 习题与实践练习 316
第15章 数据库备份和恢复 318
15.1 数据库备份和恢复概述 318
15.1.1 数据库备份概述 318
15.1.2 数据库备份的方法 319
15.1.3 数据库备份的保留策略 320
15.1.4 数据库恢复概述 321
15.1.5 备份与恢复的关系 322
15.2 物理备份与恢复 323
15.2.1 冷备份与恢复 323
15.2.2 热备份与恢复 324
15.2.3 几种非完全恢复方法 326
15.3 逻辑备份与恢复 329
15.3.1 逻辑备份与恢复概述 329
15.3.2 导出和导入 329
15.3.3 数据泵 330
15.3.4 恢复管理器 335
15.4 案例分析 341
15.5 本章小结 342
15.6 习题与实践练习 342
第16章 大数据和云计算 344
16.1 大数据 344
16.1.1 大数据的基本概念 344
16.1.2 大数据的特点 345
16.2 云计算 346
16.2.1 云计算的基本概念 346
16.2.2 大数据和云计算的关系 346
16.2.3 云计算的层次结构 346
16.2.4 云计算的特点 348
16.3 大数据的处理过程 348
16.4 推动大数据发展的因素 349
16.5 云数据库 350
16.6 NoSQL数据库 352
16.6.1 NoSQL数据库的基本
概念 352
16.6.2 NoSQL数据库的种类 353
16.6.3 常用的NoSQL数据库 354
16.7 本章小结 356
16.8 习题与实践练习 356
第17章 openGauss数据库 358
17.1 华为数据库概述 358
17.1.1 华为数据库的发展历程 358
17.1.2 openGauss数据库概述 360
17.2 openGauss SQL引擎 363
17.2.1 SQL引擎概述 363
17.2.2 SQL解析 364
17.2.3 查询优化 364
17.3 openGauss执行器技术 365
17.3.1 openGauss执行器概述 366
17.3.2 openGauss执行引擎 367
17.3.3 执行算子 367
17.3.4 openGauss执行器简介 369
17.4 openGauss存储技术 370
17.4.1 openGauss存储概览 371
17.4.2 openGauss行存储引擎 371
17.4.3 openGauss列存储引擎 372
17.5 openGauss事务机制 374
17.5.1 openGauss事务概览 374
17.5.2 openGauss事务ACID
特性 375
17.5.3 openGauss分布式事务 377
17.6 openGauss安全 379
17.7 本章小结 380
17.8 习题与实践练习 380
第18章 数据库应用综合项目案例 382
18.1 系统设计 382
18.1.1 系统功能概述 382
18.1.2 系统功能模块设计 383
18.2 数据库设计 383
18.2.1 数据库需求分析 383
18.2.2 数据库逻辑结构设计 384
18.3 数据库实现 386
18.3.1 创建mmu用户 386
18.3.2 创建表、序列和约束 387
18.4 系统功能设计 389
18.4.1 逻辑分层结构设计 389
18.4.2 系统文件组织结构 390
18.4.3 实体对象设计 390
18.4.4 定义ActionForm 390
18.4.5 持久层结构设计 391
18.4.6 业务层结构设计 392
18.4.7 页面结构设计 392
18.5 系统功能实现 393
18.5.1 创建Web项目——
Medicine Manager 393
18.5.2 配置文件 393
18.5.3 实体及映射 396
18.5.4 公共类设计 398
18.5.5 系统登录模块设计 400
18.5.6 药品类别信息管理 402
18.5.7 药品信息管理 406
18.5.8 系统管理 408
18.5.9 运行项目 409
18.6 本章小结 410
参考文献 411