第一部分 案例引入 2
第0章 案例介绍及分析 2
0.1 案例介绍 2
0.1.1 城市公交行车安全管理系统 2
0.1.2 事故信息管理系统 2
0.2 系统需求分析 3
0.2.1 系统设计的目标及原则 3
0.2.2 系统业务分析 4
0.2.3 系统用例分析 5
0.2.4 系统流程分析 7
第二部分 Oracle数据库应用 10
第1章 Oracle数据库简介 10
1.1 Oracle数据库产品发展史 10
1.2 Oracle 11g新特性 11
1.3 相关术语 12
第2章 Oracle数据库体系结构 13
2.1 概述 13
2.2 实例 14
2.2.1 系统全局区 14
2.2.2 程序全局区 16
2.2.3 用户全局区 16
2.3 Oracle数据库逻辑存储结构 16
2.3.1 表空间 16
2.3.2 段 17
2.3.3 区 18
2.3.4 数据块 18
2.4 Oracle数据库物理存储结构 18
2.4.1 数据文件 18
2.4.2 重做日志文件 19
2.4.3 控制文件 19
2.4.4 归档重做日志文件 20
2.4.5 参数文件 20
2.4.6 口令文件 20
2.5 Oracle关键进程 20
2.5.1 PMON 21
2.5.2 SMON 21
2.5.3 DBWn 21
2.5.4 LGWR 22
2.5.5 CKPT 22
2.5.6 ARCn 23
2.5.7 Dnnn 23
2.5.8 RECO 23
2.5.9 LCKn 23
第3章 数据库管理工具入门 24
3.1 Oracle 11g软件安装 24
3.1.1 安装Oracle 11g软件的系统需求 24
3.1.2 Oracle 11g软件安装过程 24
3.2 Oracle 11g工具介绍 29
3.2.1 SQL*Plus的使用 29
3.2.2 数据库配置工具 31
3.2.3 Oracle企业管理器简介 32
3.2.4 网络配置工具 34
第4章 创建Oracle数据库 35
4.1 创建数据库 35
4.1.1 创建数据库的准备工作 35
4.1.2 使用DBCA创建和删除数据库 36
4.1.3 手动方式创建数据库 44
4.1.4 网络配置管理 48
4.2 启动和关闭数据库 57
4.2.1 初始化参数文件管理 57
4.2.2 启动数据库 60
4.2.3 关闭数据库 62
第5章 存储管理 64
5.1 存储管理概述 64
5.2 控制文件管理 65
5.2.1 控制文件概述 65
5.2.2 查询控制文件信息 66
5.2.3 添加、移动和删除控制文件 67
5.2.4 备份控制文件 69
5.3 重做日志文件管理 69
5.3.1 重做日志文件概述 69
5.3.2 查询重做日志文件组和成员 71
5.3.3 添加重做日志文件组和成员 72
5.3.4 删除重做日志文件组和成员 74
5.4 表空间管理 76
5.4.1 表空间概述 76
5.4.2 创建表空间 76
5.4.3 查询表空间信息 80
5.4.4 表空间状态管理 81
5.4.5 删除表空间 82
5.5 数据文件管理 82
5.5.1 数据文件概述 82
5.5.2 创建、修改、移动和删除数据文件 83
第6章 数据字典 86
6.1 数据字典简介 86
6.2 数据字典的组成 87
6.2.1 数据字典表 87
6.2.2 数据字典视图 87
第7章 安全管理 91
7.1 Oracle认证方法 91
7.1.1 操作系统身份认证 91
7.1.2 Oracle数据库身份认证 91
7.1.3 数据库管理员认证 91
7.2 用户管理 92
7.2.1 创建用户 92
7.2.2 修改用户密码 93
7.2.3 锁定用户和解除用户锁定 93
7.2.4 修改用户的默认表空间 94
7.2.5 查看用户信息 94
7.2.6 删除用户 95
7.3 系统权限管理 95
7.3.1 为用户授予系统权限 96
7.3.2 查看用户的系统权限 97
7.3.3 收回授予的系统权限 97
7.4 对象权限管理 99
7.4.1 对象权限授予 99
7.4.2 对象权限查看 101
7.4.3 撤销对象权限 101
7.5 角色管理 102
7.5.1 创建角色 102
7.5.2 为角色和用户授予权限 102
7.5.3 查看角色信息 103
7.5.4 撤销角色权限 103
7.5.5 删除角色 104
第8章 数据库备份与恢复 105
8.1 备份与恢复概述 105
8.1.1 备份概述 105
8.1.2 恢复概述 106
8.1.3 常见备份与恢复方法 107
8.2 逻辑导出/导入 108
8.2.1 Export/Import 108
8.2.2 数据泵 114
8.3 用户管理的备份与恢复 122
8.3.1 用户管理的脱机备份与恢复 122
8.3.2 归档模式设置 124
8.3.3 用户管理的联机备份与恢复 127
8.4 闪回技术和撤销表空间 131
8.4.1 闪回技术概述 131
8.4.2 闪回查询 131
8.4.3 闪回表 134
8.4.4 闪回删除 136
8.4.5 闪回数据库 139
8.4.6 闪回数据归档 142
8.4.7 撤销表空间管理 143
8.5 恢复管理器(RMAN) 145
8.5.1 RMAN概述 145
8.5.2 创建恢复目录 146
8.5.3 连接目标数据库 147
8.5.4 RMAN配置参数和常用命令 148
8.5.5 RMAN备份数据库 152
8.5.6 RMAN恢复数据库 155
第三部分 Oracle数据库设计 160
第9章 案例分析和设计 160
9.1 数据库设计模式 160
9.1.1 数据字典通用模式设计 160
9.1.2 树形结构通用模式设计 161
9.2 数据库概念结构设计 162
9.2.1 公共信息管理部分数据库概念结构设计 163
9.2.2 事故处理管理部分数据库概念结构设计 164
9.3 数据库逻辑结构设计 166
9.3.1 将E-R图转换成关系模式 166
9.3.2 关系模式优化 167
第10章 表的创建及数据管理 170
10.1 SQL概述 170
10.2 数据类型 171
10.3 表的管理 173
10.3.1 表类型 173
10.3.2 创建表 173
10.3.3 更改表 174
10.3.4 删除表 175
10.4 表数据维护 176
10.4.1 插入数据 176
10.4.2 更新数据 177
10.4.3 删除数据 177
10.4.4 合并数据 178
10.5 索引管理 180
10.5.1 索引概述 180
10.5.2 索引的分类 180
10.5.3 创建索引 182
10.5.4 查询索引信息 183
10.5.5 更改索引 184
10.5.6 删除索引 184
第11章 数据完整性 185
11.1 数据完整性简介 185
11.2 约束 185
11.2.1 主键约束 186
11.2.2 外键约束 186
11.2.3 非空约束 187
11.2.4 检查约束 188
11.2.5 唯一约束 188
11.2.6 默认值 189
11.3 添加约束 189
11.4 删除约束 190
11.5 约束状态 190
第12章 查询构建 191
12.1 数据查询 191
12.1.1 基本语法 191
12.1.2 基本查询 192
12.1.3 分组查询 193
12.1.4 连接查询 194
12.1.5 子查询 196
12.1.6 集合查询 197
12.2 常用函数介绍 198
12.2.1 数值处理函数 198
12.2.2 字符函数 199
12.2.3 日期函数 200
12.2.4 转换函数 201
12.2.5 使用CASE 203
12.3 视图管理 203
12.3.1 视图的概念 203
12.3.2 创建和修改视图 204
12.3.3 查询和更新视图 205
12.3.4 删除视图 206
第13章 PL/SQL编程基础 207
13.1 序列简介 207
13.1.1 序列的定义 207
13.1.2 序列的使用 209
13.2 PL/SQL编程体系结构 210
13.2.1 PL/SQL简介 210
13.2.2 PL/SQL体系结构 211
13.2.3 PL/SQL中的变量和常量 213
13.2.4 PL/SQL中的运算符和表达式 217
13.3 PL/SQL的控制结构 217
13.3.1 条件控制 217
13.3.2 循环控制 220
13.3.3 其他控制 222
13.4 PL/SQL的子程序和包 223
13.4.1 创建子程序 223
13.4.2 子程序参数 227
13.4.3 过程和函数的差异 231
13.4.4 包的创建 231
13.4.5 包的使用 234
13.4.6 删除过程、函数和包 237
第14章 PL/SQL编程进阶 238
14.1 PL/SQL中的异常处理 238
14.1.1 什么是异常 238
14.1.2 为何使用异常 239
14.1.3 异常的使用 239
14.2 游标 245
14.2.1 游标的定义 245
14.2.2 隐式游标的使用 246
14.2.3 显式游标的使用 247
14.3 触发器 252
14.3.1 触发器的作用 252
14.3.2 触发器的创建和使用 254
14.3.3 变异表的处理 263
14.4 案例的解答 267
附录A PL/SQL Developer工具简介 270
附录B 事故信息管理系统数据库表结构 280
参考文献 288