理论篇 1
第1章 关系型数据库 2
1.1 数据库概述 4
1.1.1 数据库基本概念 4
1.1.2 数据库发展史 6
1.1.3 数据库特征 9
1.1.4 常见数据库 9
1.2 数据模型 11
1.2.1 概念模型 11
1.2.2 逻辑数据模型 14
1.3 关系模型理论 18
1.3.1 关系 20
1.3.2 关系模式 23
1.3.3 关系的完整性 24
1.3.4 关系代数 26
1.4 规范化理论 34
1.4.1 规范化理论的提出 34
1.4.2 函数依赖 37
1.4.3 函数依赖定义的码 40
1.4.4 范式及各范式的关系 41
1.4.5 多值依赖 50
1.4.6 规范化思想 51
1.5 数据库设计 52
1.5.1 数据库设计特点 53
1.5.2 需求分析 55
1.5.3 数据流图和数据字典 57
1.6 概念结构设计 58
1.6.1 概念结构设计定义 59
1.6.2 概念结构设计的方法和步骤 60
1.6.3 数据抽象 61
1.6.4 E-R图的生成 62
1.7 逻辑结构设计 66
1.7.1 初始关系模式设计 66
1.7.2 数据模型优化的方法 68
1.7.3 模式评价与改进 68
小结 70
练习 70
第2章 Oracle数据库 76
2.1 Oracle数据库概述 78
2.1.1 Oracle数据库简介 78
2.1.2 Oracle发展史 79
2.1.3 Oracle数据库的应用结构 81
2.2 Oracle体系结构 83
2.3 Oracle数据库存储结构 84
2.3.1 物理存储结构 85
2.3.2 逻辑存储结构 88
2.4 Oracle数据库实例 90
2.4.1 Oracle实例概述 90
2.4.2 SGA 92
2.4.3 PGA 95
2.4.4 后台进程 97
小结 101
练习 102
第3章 SQL Developer开发工具 103
3.1 SQL Developer概述 105
3.1.1 SQL Developer简介 105
3.1.2 SQLDeveloper下载 105
3.1.3 创建数据库连接 107
3.2 SQLDeveloper基本操作 109
3.2.1 数据操作 110
3.2.2 表的创建、修改 112
3.3 开发与调试 116
3.3.1 创建存储过程 116
3.3.2 运行存储过程 119
3.3.3 调试存储过程 120
3.4 导入与导出 122
3.4.1 导出数据 122
3.4.2 导入数据 124
小结 127
练习 128
第4章 SQL应用基础 129
4.1 SQL语言概述 131
4.1.1 SQL语言特点 131
4.1.2 SQL分类 132
4.1.3 SQL语句编写规则 132
4.2 数据查询 133
4.2.1 列查询 134
4.2.2 条件查询 135
4.2.3 算术运算符 136
4.2.4 排序 137
4.2.5 联合查询 137
4.3 多表查询 139
4.3.1 内连接 139
4.3.2 外连接 141
4.4 子查询 143
4.4.1 单行和多行子查询 145
4.4.2 多列子查询 146
4.4.3 相关子查询 147
4.5 系统函数 148
4.5.1 单行函数 148
4.5.2 数据分组 165
4.6 数据操作 170
4.6.1 插入数据 170
4.6.2 更新数据 173
4.6.3 删除数据 175
4.7 DML事务操作 176
小结 181
练习 181
第5章 数据表对象 184
5.1 表 186
5.1.1 创建表 186
5.1.2 修改表 190
5.1.3 删除表 191
5.2 索引 192
5.2.1 创建索引 193
5.2.2 维护索引 194
5.2.3 索引使用原则 195
5.3 约束 196
5.3.1 创建约束 196
5.3.2 维护约束 201
小结 203
练习 203
第6章 视图与序列 206
6.1 视图概述 208
6.2 建立视图 210
6.2.1 简单视图 210
6.2.2 复杂视图 211
6.2.3 连接视图 212
6.2.4 只读视图 213
6.2.5 CHECK约束 213
6.3 维护视图 214
6.3.1 修改视图 214
6.3.2 重新编译视图 214
6.3.3 删除视图 215
6.4 序列 215
6.4.1 序列概述 215
6.4.2 使用序列 216
6.4.3 维护序列 217
小结 218
练习 218
第7章 PL/SQL基础 220
7.1 PL/SQL简介 222
7.1.1 PL/SQL概述 222
7.1.2 PL/SQL结构 222
7.1.3 PL/SQL块分类 225
7.1.4 注释 226
7.2 基本数据类型 227
7.2.1 标量变量 227
7.2.2 使用%TYPE 230
7.3 记录类型 230
7.3.1 自定义PL/SQL记录类型 231
7.3.2 %ROWTYPE 记录类型 232
7.4 集合类型 233
7.4.1 PL/SQL一维表 233
7.4.2 PL/SQL多维表 235
7.4.3 嵌套表 235
7.4.4 可变数组 236
7.4.5 集合方法 237
7.5 运算符与表达式 240
7.5.1 运算符 240
7.5.2 表达式 241
7.6 流程控制语句 242
7.6.1 条件分支语句 242
7.6.2 CASE语句 245
7.6.3 循环语句 246
7.6.4 GOTO语句 248
7.7 异常处理 249
7.7.1 异常简介 249
7.7.2 异常处理 250
小结 254
练习 254
第8章 PL/SQL进阶 256
8.1 游标 258
8.1.1 显式游标 258
8.1.2 使用游标 260
8.1.3 游标FOR循环 263
8.1.4 游标修改和删除操作 264
8.2 游标变量 266
8.2.1 游标变量定义 266
8.2.2 游标变量操作 268
8.3 存储过程 269
8.3.1 存储过程概述 269
8.3.2 无参存储过程 270
8.3.3 带输入参数的存储过程 271
8.3.4 带输出参数的存储过程 274
8.3.5 带输入/输出参数的存储过程 277
8.3.6 维护存储过程 278
8.4 自定义函数 278
8.4.1 函数概述 278
8.4.2 调用函数 280
8.4.3 数返回类型 280
8.4.4 维护函数 283
8.5 包 283
8.5.1 包概述 284
8.5.2 调用包 285
8.5.3 使用集合类型 288
8.5.4 重载 289
8.5.5 构造过程 290
8.5.6 维护包 291
8.6 触发器 292
8.6.1 语句触发器 293
8.6.2 行触发器 294
8.6.3 维护触发器 299
小结 300
练习 301
第9章 事务管理与并发控制 305
9.1 事务的概念 307
9.1.1 事务概述 307
9.1.2 事务的状态 307
9.1.3 事务的特性与应用 308
9.2 事务控制 310
9.2.1 搭建事务演示环境 310
9.2.2 事务的开始与结束 312
9.2.3 事务的提交 313
9.2.4 事务的回滚与保存点 314
9.2.5 事务隔离级别 316
9.3 并发的概念 318
9.3.1 并发概述 319
9.3.2 锁、锁定和锁定协议 320
9.3.3 锁的粒度 325
9.4 锁Oracle中的应用 326
9.4.1 Oracle中锁的分类 326
9.4.2 Oracle中锁的级别 329
9.4.3 Oracle中的锁争用的检测与解决 331
小结 336
练习 337
第10章 用户管理与安全 339
10.1 安全性概述 341
10.1.1 计算机安全性概述 341
10.1.2 数据库安全性控制 343
10.2 Oracle中的用户管理 346
10.2.1 数据库系统用户概述 346
10.2.2 Oracle用户概述 347
10.2.3 Oracle用户管理 348
10.3 Oracle中的权限管理 353
10.3.1 Oracle系统权限 353
10.3.2 Oracle对象权限 357
10.4 Oracle中的角色管理 358
10.4.1 角色概述 358
10.4.2 Oracle中的角色概述 359
10.4.3 Oracle中的角色管理与使用 360
小结 363
练习 363
第11章 Oracle数据库备份与恢复 365
11.1 数据库恢复与备份 367
11.1.1 数据库恢复概述 367
11.1.2 故障种类及恢复策略 369
11.1.3 Oracle数据库的备份与恢复 371
11.2 Oracle闪回技术 374
11.2.1 闪回查询 376
11.2.2 闪回版本查询 381
11.2.3 闪回事务查询 383
小结 385
练习 386
实践篇 387
实践1 Oracle 11g数据库系统 388
实践指导 388
实践1.G.1 388
实践1.G.2 402
实践1.G.3 403
知识拓展 405
数据库配置助手(DBCA) 405
拓展练习 410
练习1.E.1 410
练习1.E.2 411
练习1.E.3 411
实践2 数据库表对象 412
实践指导 412
实践2.G.1 412
实践2.G.2 414
实践2.G.3 416
实践2.G.4 419
实践2.G.5 421
实践2.G.6 422
知识拓展 426
1.表信息 426
2.索引信息 429
3.约束信息 429
4.多表插入 430
拓展练习 432
练习2.E.1 432
练习2.E.2 432
实践3 视图与序列 433
实践指导 433
实践3.G.1 433
实践3.G.2 435
实践3.G.3 438
知识拓展 440
视图信息 440
拓展练习 441
练习3.E.1 441
练习3.E.2 441
练习3.E.3 441
实践4 PL/SQL基础 442
实践指导 442
实践4.G.1 442
实践4.G.2 444
知识拓展 446
1.PL/SQL代码编写规则 446
2.LOB类型 447
3.集合运算 448
4.批量操作 450
5.异常处理函数 453
6.RAISE_APPLICATION_ERROR 454
拓展练习 455
练习4.E.1 455
实践5 PL/SQL进阶 456
实践指导 456
实践5.G.1 456
实践5.G.2 457
实践5.G.3 461
实践5.G.4 465
实践5.G.5 469
实践5.G.6 471
知识拓展 472
1.批量提取 472
2.包的纯度级别 474
3.系统工具包 475
4.INSTEAD OF触发器 477
5.系统事件触发器 478
拓展练习 482
练习5.E.1 482
练习5.E.2 482
练习5.E.3 482
练习5.E.4 482
练习5.E.5 482
练习5.E.6 482
实践6 Oracle数据库备份与恢复 483
实践指导 483
实践6.G.1 483
实践6.G.2 488
知识拓展 491
系统权限分类 491
拓展练习 495
练习6.E.1 495
练习 6.E.2 495
附录A 常用SQLPlus命令 496
附录B Oracle数据隐式转换规则 505