3.5.3 增强的合并功能 5 1
目录 1
3.5.4 增强的外部表功能 5 1
第1章 网格计算时代 1
1.1 Oracle产品的发展简史 1
1.2 网格计算的概念和特点 2
1.3.1 版本特点 4
1.3 Oracle Database 10g的产品特点 4
1.3.2 可选产品 5
1.3.3 Oracle管理程序包 7
1.3.4 特性和产品可用性 8
1.4 小结 12
1.5 思考与练习 12
2.1.1 硬件环境要求 14
2.1 安装前的要求 14
第2章 安装和配置 14
2.1.2 软件环境要求 15
2.2 安装过程 17
2.2.1 Oracle Universal Installer的特点 17
2.2.2 详细安装过程 17
2.3 升级到Oracle Database 10g 25
2.3.1 使用DBUA升级 26
2.3.2 手工升级 27
2.3.3 其他升级方法 28
2.4 验证安装结果 29
2.5 小结 30
2.6 思考与练习 30
第3章 Oracle Database 10g的新增功能 31
3.1 服务器可管理性 31
3.1.1 统计采集 32
3.1.2 刷新高速缓冲区存储器 33
3.1.3 数据库资源管理器的新增功能 33
3.1.4 调度器的改变 34
3.1.5 用户可配置的默认表空间 35
3.1.6 其他新增功能 36
3.2.1 在等待接口方面的增强 37
3.2 性能调整 37
3.2.2 数据库通用管理基础设施 38
3.2.4 新增的跟踪功能 42
3.2.3 自动化SGA调整 42
3.2.5 预存储的散列集群 43
3.2.6 共享服务器架构的变化 44
3.3 安全性 44
3.3.1 新增的虚拟私有数据库功能 44
3.3.2 增强的审计功能 45
3.3.3 新增的目录功能 46
3.4 可用性和可恢复性 46
3.4.2 在RMAN方面的增强 47
3.4.1 数据库恢复方面的增强 47
3.4.3 新增的事务恢复监视功能 48
3.4.4 增强的数据保护功能 48
3.5 商业智能 49
3.5.1 新增的大文件表空间 49
3.5.2 可跨平台传输的表空间 50
3.5.5 新增的物化视图和查询重写功能 52
3.6 应用程序开发方面 53
3.5.6 增强的分区功能 53
3.6.1 增强的块绑定操作 54
3.6.2 新增的SQL和PL/SQL正则表达式 54
3.6.3 根据大小写和音调排序 58
3.6.4 新增的用户指定的引号 58
3.6.5 新增的PL/SQL程序包 59
3.6.6 新增的PL/SQL编译器功能 60
3.7 其他新增的数据库功能 61
3.7.1 增强的工作空间管理器 61
3.7.2 增强的流功能 63
3.8 小结 64
3.7.3 SQL*Plus和SQL增强的功能 64
3.9 思考与练习 65
第4章 体系结构 66
4.1 概述 66
4.2 连接数据库实例 67
4.2.1 用户进程 67
4.2.2 Oracle监听器 67
4.2.3 Oracle网络客户 68
4.4 文件系统 69
4.4.1 参数文件 69
4.3 服务器进程 69
4.4.2 控制文件 71
4.4.3 数据文件 71
4.4.4 表空间 72
4.4.5 段 72
4.4.6 盘区 73
4.4.7 数据块 73
4.4.8 重做日志文件 73
4.4.9 临时文件 74
4.4.10 Oracle管理文件 74
4.5.1 系统全局区域 75
4.5 内存区域 75
4.5.2 程序全局区域和用户全局区域 76
4.6 后台进程 77
4.6.1 进程监控器 77
4.6.2 系统监视器 78
4.6.3 数据库写入器 78
4.6.4 日志写入器 79
4.6.5 归档器 79
4.6.6 检查点 80
4.6.7 作业队列协调器和作业进程 80
4.6.9 新增的进程 81
4.6.8 恢复器 81
4.7 小结 82
4.8 思考与练习 82
第5章 SQL基础 84
5.1 概述 84
5.1.1 SQL的作用和特点 84
5.1.2 SQL与SQL*Plus、PL/SQL之间的关系 85
5.2 select语句 86
5.2.1 基本语法、规则和执行方式 87
5.2.2 执行select语句 88
5.2.3 使用where子句 91
5.2.4 使用order by子句 95
5.2.5 合计计算 98
5.2.6 使用group by和having子句 100
5.2.7 连接查询 102
5.2.8 集合运算符 106
5.3 修改数据 108
5.3.1 插入数据 108
5.3.2 更新数据 109
5.3.3 删除数据 110
5.4.1 子查询基本用法 112
5.4 子查询 112
5.4.2 单行子查询 113
5.4.3 多行子查询 114
5.4.4 多列子查询 115
5.5 小结 117
5.6 思考与练习 117
第6章 SQL*Plus基础 119
6.1 启动和设置SQL*Plus 119
6.1.1 启动SQL*Plus 119
6.1.2 设置SQL*Plus运行环境 121
6.2 格式化查询结果 124
6.2.1 column 124
6.2.2 ttitle和btitle 125
6.2.3 pause 126
6.2.4 pagesize 126
6.2.5 linesize 127
6.2.6 feedback 128
6.2.7 numformat 129
6.2.8 long 130
6.3 使用SQL*Plus命令 131
6.3.1 describe 131
6.3.2 prompt 132
6.3.3 替换变量 133
6.3.4 show 136
6.4 内置的SQL*Plus Help命令 138
6.5 使用SQL*Plus缓冲区 140
6.6 脚本 141
6.7 SQL*Plus增强的功能 142
6.7.1 增强的spool命令 143
6.7.2 新增的define变量 144
6.7.3 其他增强 144
6.8 小结 145
6.9 思考与练习 145
第7章 PL/SQL语言 146
7.1 概述 146
7.2.1 变量和常量 148
7.2 声明 148
7.2.2 为变量和常量赋值 150
7.2.3 可视性和作用域 150
7.2.4 定义不确定内容 151
7.2.5 使用%type和%rowtype 152
7.3 PL/SQL数据类型 153
7.3.1 字符数据类型 153
7.3.2 数值数据类型 153
7.3.3 逻辑数据类型 154
7.4 PL/SQL集合 154
7.4.1 记录 154
7.4.2 PL/SQL表 155
7.4.3 VARRAY和嵌套表 157
7.5 游标 157
7.5.1 显式游标 157
7.5.2 隐式游标 158
7.5.3 游标属性和ref cursors 159
7.6 控制语句 159
7.6.1 条件 160
7.6.2 循环 163
7.7 错误处理 165
7.7.1 异常部分 165
7.7.2 预定义异常 166
7.7.3 用户定义异常 167
7.8 小结 168
7.9 思考与练习 169
第8章 管理用户和表 170
8.1 概述 170
8.1.1 数据定义语言 170
8.1.2 Oracle的标识符 171
8.2 用户 172
8.2.1 建立用户 172
8.2.2 改变用户 173
8.2.3 删除用户 175
8.3 Oracle数据类型 176
8.3.1 数值类型 176
8.3.2 字符类型 177
8.3.3 日期和时间 179
8.3.4 ANSI数据类型 182
8.4 创建表 182
8.4.1 基本语法 183
8.4.2 约束 184
8.4.3 create table as select 187
8.5 数据字典 188
8.7 思考与练习 189
8.6 小结 189
9.1 数据库安全概述 191
第9章 管理安全性 191
9.2 用户和模式 192
9.3 系统权限 193
9.4 对象权限 200
9.5 数据库角色 203
9.6 PL/SQL和数据库角色 205
9.7 小结 207
9.8 思考与练习 207
10.2 事务管理技术 208
第10章 事务处理和并发控制 208
10.1 概述 208
10.2.1 commit处理 209
10.2.2 rollback处理 210
10.2.3 savepoint和rollback to savepoint 210
10.2.4 set transaction 211
10.2.5 set constraint 214
10.3 事务的ACID属性 216
10.3.1 原子性 216
10.3.2 一致性 217
10.3.3 隔离性 222
10.3.4 持久性 223
10.4 并发控制 223
10.4.1 锁定 224
10.4.2 多版本和读取一致性 229
10.5 小结 229
10.6 思考与练习 230
第11章 管理表 231
11.1 概述 231
11.2 表类型 233
11.2.1 堆表 233
11.2.2 外部表 235
11.2.3 索引组织表 236
11.2.4 临时表 238
11.2.5 其他表类型 241
11.3 表的特性 241
11.3.1 tablespace子句 241
11.3.2 logging和nologging 243
11.3.3 storage子句 243
11.3.4 cache nocache 244
11.4 修改表 244
11.4.1 改变表中的列 244
11.4.2 not null列约束 246
11.4.3 删除列和标注不用列 247
11.4.4 重命名表 248
11.4.5 改变表特性 248
11.5 删除表 249
11.6 truncate table 251
11.7 小结 252
11.8 思考与练习 252
第12章 索引 254
12.1 概述 254
12.2 使用索引 258
12.3.1 插入行如何影响索引 260
12.3 索引开销 260
12.3.2 更新行如何影响索引 265
12.3.3 DML索引 269
12.4 索引的联接、压缩和跳跃 270
12.5 索引和约束 272
12.6 反转键索引 274
12.7 基于函数的索引 275
12.8 位图索引 277
12.9 小结 280
12.10 思考与练习 280
13.1 概述 281
第13章 视图 281
13.2 关系视图 282
13.2.1 创建视图 282
13.2.2 检索视图的定义 284
13.2.3 改变视图的定义 285
13.2.4 删除视图 286
13.2.5 视图中的约束 286
13.2.6 联接视图 287
13.2.7 验证视图 288
13.2.8 通过视图更新和删除数据 291
13.3 内嵌视图 293
13.4 对象视图 295
13.5 物化视图 296
13.6 小结 300
13.7 思考与练习 300
第14章 过程、函数和程序包 301
14.1 概述 301
14.2 过程 302
14.2.1 创建或替换 302
14.2.2 执行过程 303
14.2.3 使用参数 305
14.2.4 局域声明 311
14.3.2 返回值 312
14.3 函数 312
14.3.1 语法 312
14.3.3 确定性 313
14.3.4 常见错误 314
14.4 程序包 315
14.4.1 语法 315
14.4.2 规范 316
14.4.3 主体 317
14.4.4 程序包变量和其他声明 318
14.5 小结 320
14.6 思考与练习 320
15.1 概述 322
第15章 触发器 322
15.2 语句触发器 325
15.3 行触发器 328
15.4 instead of触发器 331
15.5 系统事件触发器 332
15.6 用户事件触发器 333
15.7 禁用触发器和事务处理 335
15.8 查看触发器信息 335
15.9 事件属性函数 336
15.11 思考与练习 338
15.10 小结 338
16.1 闪回数据库 339
16.1.1 闪回数据库的特征 339
第16章 闪回操作 339
16.1.2 使用闪回数据库 340
16.1.3 闪回数据库的视图 342
16.2 闪回被删除的对象 343
16.2.1 回收站和闪回被删除的对象 343
16.2.2 示例 345
16.3 闪回版本查询 349
16.4 闪回事务查询 352
16.6 思考与练习 353
16.5 小结 353
第17章 管理高可用性 355
17.1 概述 355
17.2 计算机故障保护 356
17.2.1 带有真正应用集群的企业网格 356
17.2.2 绑定数据库崩溃恢复 358
17.3 防止数据故障 358
17.3.1 防止存储故障 359
17.3.2 防止人为错误 360
17.3.3 Oracle的闪回技术 360
17.3.5 防止数据损坏 361
17.3.4 基于SQL的LogMiner日志分析程序 361
17.4.1 避免数据改变导致的停机 365
17.4 避免计划内停机 365
17.4.2 避免系统改变导致的停机 367
17.5 小结 369
17.6 思考与练习 369
第18章 数据传输技术 371
18.1 概述 371
18.1.1 为什么传输数据 371
18.1.2 为什么转换数据 372
18.2 数据泵的体系架构 373
18.3.1 expdp命令的新增功能 375
18.3 Data Pump引出数据 375
18.3.2 使用Data Pump引出数据 376
18.3.3 Data Pump引出数据的示例 379
18.4 Data Pump引入数据 380
18.4.1 Data Pump引入数据的新增功能 381
18.4.2 使用Data Pump引入数据 381
18.4.3 Data Pump引入数据示例 383
18.5 小结 384
18.6 思考与练习 385
附录A 数据字典 386