理论篇 3
第1章 数据库概述 3
1.1 数据库概述 4
1.1.1 数据库基本概念 4
1.1.2 数据库发展史 6
1.1.3 数据库特征 8
1.1.4 常见数据库 9
1.2 数据模型 10
1.2.1 概念模型 11
1.2.2 逻辑模型 13
1.3 关系模型理论 17
1.3.1 关系 18
1.3.2 关系模式 21
1.3.3 关系的完整性 21
1.3.4 关系代数 24
1.4 规范化理论 31
1.4.1 规范化理论的提出 31
1.4.2 函数依赖 34
1.4.3 函数依赖定义的码 37
1.4.4 范式及各范式的关系 37
1.4.5 规范化思想 45
1.5 数据库设计 46
1.5.1 数据库设计特点 47
1.5.2 需求分析 50
1.6 概念结构设计 51
1.6.1 概念结构设计定义 51
1.6.2 概念结构设计的方法和步骤 53
1.6.3 数据抽象 54
1.6.4 E-R图的生成 55
1.7 逻辑结构设计 58
1.7.1 初始关系模式设计 59
1.7.2 数据模型优化的方法 60
1.7.3 模式评价与改进 61
1.8 Oracle数据库概述 62
1.8.1 Oracle数据库简介 62
1.8.2 Oracle发展史 63
1.8.3 Oracle数据库的应用结构 65
本章小结 67
本章练习 68
第2章 客户端开发工具 73
2.1 SQL Developer概述 74
2.2 SQL Developer简介 74
2.2.1 SQL Developer下载 74
2.2.2 创建数据库连接 76
2.3 SQL Developer基本操作 78
2.3.1 数据操作 79
2.3.2 表的创建、修改 81
2.4 开发与调试 85
2.4.1 创建存储过程 85
2.4.2 运行存储过程 88
2.4.3 调试存储过程 89
2.4.4 调试PLSQL块 90
2.5 导入与导出 91
2.5.1 导出数据 91
2.5.2 导入数据 92
2.6 SQL*Plus概述 94
2.6.1 SQL*Plus启动 95
2.6.2 SQL*Plus使用 95
本章小结 97
本章练习 98
第3章 数据表对象 99
3.1 表 100
3.1.1 创建表 100
3.1.2 修改表 103
3.1.3 删除表 104
3.2 索引 105
3.2.1 创建索引 105
3.2.2 维护索引 107
3.2.3 索引使用原则 107
3.3 约束 108
3.3.1 创建约束 109
3.3.2 维护约束 113
本章小结 114
本章练习 114
第4章 SQL应用基础 117
4.1 SQL语言概述 118
4.1.1 SQL语言特点 118
4.1.2 SQL分类 119
4.1.3 SQL语句编写规则 120
4.2 数据查询 120
4.2.1 列查询 121
4.2.2 条件查询 122
4.2.3 算术运算符 123
4.2.4 排序 124
4.2.5 联合查询 124
4.2.6 模糊查询 125
4.2.7 查询NULL值 125
4.3 多表查询 125
4.3.1 内连接 126
4.3.2 外连接 127
4.4 子查询 130
4.4.1 单行和多行子查询 131
4.4.2 多列子查询 133
4.4.3 相关子查询 134
4.5 系统函数 135
4.5.1 单行函数 135
4.5.2 数据分组 150
4.6 数据操作 154
4.6.1 插入数据 155
4.6.2 更新数据 156
4.6.3 删除数据 158
4.7 DML事务操作 159
本章小结 163
本章练习 163
第5章 视图与序列 167
5.1 视图概述 168
5.2 建立视图 170
5.2.1 简单视图 170
5.2.2 复杂视图 171
5.2.3 连接视图 172
5.2.4 只读视图 172
5.2.5 CHECK约束 173
5.3 维护视图 173
5.3.1 修改视图 174
5.3.2 重新编译视图 174
5.3.3 删除视图 174
5.4 序列 175
5.4.1 序列概述 175
5.4.2 使用序列 176
5.4.3 维护序列 176
本章小结 177
本章练习 177
第6章 PL/SQL基础 179
6.1 PL/SQL简介 180
6.1.1 PL/SQL概述 180
6.1.2 PL/SQL结构 180
6.1.3 PL/SQL块分类 182
6.1.4 注释 183
6.2 基本数据类型 184
6.2.1 标量变量 185
6.2.2 使用%TYPE 187
6.3 记录类型 187
6.3.1 自定义PL/SQL记录类型 188
6.3.2 %ROWTYPE记录类型 189
6.4 集合类型 189
6.4.1 PL/SQL一维表 190
6.4.2 PL/SQL多维表 191
6.4.3 嵌套表 192
6.4.4 可变数组 193
6.4.5 集合方法 194
6.5 运算符与表达式 196
6.5.1 运算符 196
6.5.2 表达式 197
6.6 流程控制语句 198
6.6.1 条件分支语句 198
6.6.2 CASE语句 200
6.6.3 循环语句 202
6.6.4 GOTO语句 204
6.7 异常处理 204
6.7.1 异常简介 205
6.7.2 异常处理 205
本章小结 209
本章练习 209
第7章 PL/SQL进阶 211
7.1 游标 212
7.1.1 显式游标 212
7.1.2 使用游标 213
7.1.3 游标FOR循环 216
7.1.4 游标修改和删除操作 217
7.1.5 隐式游标 219
7.2 游标变量 220
7.2.1 游标变量定义 220
7.2.2 游标变量操作 221
7.3 存储过程 223
7.3.1 存储过程概述 223
7.3.2 无参存储过程 224
7.3.3 带输入参数的存储过程 224
7.3.4 带输出参数的存储过程 227
7.3.5 带输入输出参数的存储过程 229
7.3.6 维护存储过程 230
7.3.7 存储过程中使用DDL语句 231
7.4 自定义函数 231
7.4.1 函数概述 231
7.4.2 调用函数 232
7.4.3 函数返回类型 233
7.4.4 维护函数 235
7.5 包 236
7.5.1 包概述 236
7.5.2 调用包 237
7.5.3 使用集合类型 240
7.5.4 重载 241
7.5.5 构造过程 242
7.5.6 维护包 243
7.6 触发器 243
7.6.1 语句触发器 244
7.6.2 行触发器 246
7.6.3 维护触发器 250
本章小结 251
本章练习 251
第8章 事务管理与并发控制 255
8.1 事务的概念 256
8.1.1 事务概述 256
8.1.2 事务的状态 256
8.1.3 事务的特性与应用 257
8.2 事务控制 259
8.2.1 搭建事务演示环境 259
8.2.2 事务的开始与结束 261
8.2.3 事务的提交 261
8.2.4 事务的回滚与保存点 262
8.2.5 事务隔离级别 264
8.3 并发的概念 266
8.3.1 并发概述 266
8.3.2 锁、锁定和锁定协议 268
8.3.3 锁的粒度 273
8.4 锁在Oracle中的应用 273
8.4.1 Oracle中锁的分类 274
8.4.2 Oracle 中锁的级别 277
8.4.3 Oracle中锁争用的检测与解决 278
本章小结 283
本章练习 284
第9章 用户管理与安全 287
9.1 安全性概述 288
9.1.1 计算机安全性概述 288
9.1.2 数据库安全性控制 289
9.2 Oracle中的用户管理 293
9.2.1 数据库系统用户概述 293
9.2.2 Oracle用户概述 294
9.2.3 Oracle用户管理 294
9.3 Oracle中的权限管理 298
9.3.1 Oracle系统权限 299
9.3.2 Oracle对象权限 302
9.4 Oracle中的角色管理 303
9.4.1 角色概述 303
9.4.2 Oracle中角色概述 304
9.4.3 Oracle中角色管理与使用 304
本章小结 307
本章练习 307
第10章 Oracle数据备份与恢复 309
10.1 数据恢复与备份 310
10.1.1 数据库恢复概述 310
10.1.2 故障种类及恢复策略 311
10.1.3 Oracle数据库的备份与恢复 313
10.2 Oracle闪回技术 315
10.2.1 闪回查询 316
10.2.2 闪回版本查询 321
10.2.3 闪回事务查询 324
本章小结 326
本章练习 326
实践篇 329
实践1 Oracle 11g数据库系统 329
实践指导 329
实践1.1 329
实践1.2 344
实践1.3 346
知识拓展 348
实践2 数据操作 355
实践指导 355
实践2.1 355
实践2.2 357
实践2.3 358
实践2.4 358
知识拓展 360
实践3 视图与序列 369
实践指导 369
实践3.1 369
实践3.2 369
知识拓展 370
实践4 PL/SQL基础 372
实践指导 372
实践4.1 372
实践4.2 373
实践4.3 373
实践4.4 375
实践4.5 379
实践4.6 379
知识拓展 380
实践5 PL/SQL进阶 384
实践指导 384
实践5.1 384
实践5.2 385
实践5.3 387
实践5.4 389
实践5.5 390
知识拓展 393
实践6 Oracle数据库备份与恢复 398
实践指导 398
知识拓展 402
附录A 常用SQL*Plus命令 405
附录B Oracle数据隐式转换规则 413