第1章Oracle8 1
1.1 最新版本的Oracle 1
第1部分 Oracle8服务器 1
1.2 主要的改进 3
1.3 Oracle8产品家族 5
1.4 在应用环境中装备Oracle8 5
1.5 小结 5
2.1 数据库体系结构 6
2.1.1 实例 6
第2章Oracle数据库结构 6
2.2 Oracle进程 8
2.2.1 用户进程 8
2.2.2 数据写入进程 8
2.2.3 日志进程 8
2.2.4 监控进程 8
2.3 内存与速度 9
2.3.1 软件代码区 9
2.3.2 系统全局区(SGA) 9
2.4.1 数据文件 10
2.4 磁盘存储 10
2.3.4 排序区 10
2.3.3 程序全局区(PGA) 10
2.4.2 日志文件 11
2.4.3 支持文件 11
2.4.4 控制文件 12
2.4.5 SGA定义文件 12
2.4.6 日志与错误消息文件 12
2.5 与 DBMS的连接 12
2.6 多处理器配置 13
2.8 微软Windows NT环境下的配置 14
2.7 容错 14
2.8.1 Windows NT下的Oracle8 15
2.9 小结 15
第3章Oracle8的网络计算 16
3.1 网络计算的迅猛发展 16
3.1.1 汇合点(convergence) 16
3.1.2 Web改变一切 17
3.1.3 PC计算的缺陷 18
3.1.4 网络中心和网络计算 19
3.1.5 网络计算的吸引力 19
3.2.1 对象技术的优点 20
3.2 正在发展的技术 20
3.2.3 CORBA 21
3.2.4 Enterprise JavaBeans 23
3.3 一种网络计算的结构 25
3.3.1 网络计算结构 25
3.3.2 从2级到3级的计算 25
3.3.3 客户端 26
3.3.4 应用服务器 28
3.3.5 数据库服务器 28
3.4 网络计算机 29
3.4.3 开放性问题 30
3.4.1 一种典型的NC 30
3.4.2 NC参考说明 30
3.5 小结 31
第4章Oracle8服务器和选项 32
4.1 数据库产品的选项 32
4.1.1 规模 32
4.1.2 体系结构 32
4.1.3 用途 32
4.2.2 计算机体系结构日益复杂化 33
4.2.1 朝着面向对象的范型转移 33
4.2 Oracle8服务器 33
4.2.3 Internet商务的激增 35
4.2.4 Oracle8与数据的仓库化 36
4.3 Oracle8企业版 38
4.3.1 企业级管理器性能包 38
4.3.2 增量与并行备份 38
4.3.3 即时点表空间 39
4.3.4 位映像索引 39
4.3.6 并行DML 41
4.3.5 并行查询 41
4.3.7 并行索引扫描 42
4.3.8 并行位映像星式查询联接 42
4.4 Oracle Lite——味道好,热量低 42
4.5 操作系统之战——UNIX对NT 44
4.5.1 微软的NT与UNIX的比较 44
4.6 小结 45
第2部分 安装、升级和迁移 46
第5章 实现从PC到企业服务器的规划 46
5.1 安装规划过程概述 46
5.1.1 从商业需求开始 47
5.1.2 有关安装的技术文档 48
5.1.3 README文件 49
5.1.4 制定你自己的安装规划 50
5.1.5 征求建议 51
5.2 系统硬件 52
5.3 软件模块规划 52
5.4 优化灵活结构 52
5.4.1 管理目录 53
5.4.2 本地目录 53
5.6 逻辑数据库设计 54
5.5 内存分配和变更 54
5.4.3 数据与日志目录 54
5.7 物理数据库设计 55
5.8 RAID和其他存储技术 55
5.9 进程选项 56
5.10 升级和新安装 57
5.10.1 要考虑的因素 57
5.10.2 取消计划 58
5.10.3 寻求支持 58
5.11 一个样本规划 59
5.12 小结 61
6.1 Sun Solaris安装过程概述 62
6.1.1 硬件与软件要求 62
第6章 安装和升级 62
6.1.2 对网络产品的软件要求 63
6.1.3 优化灵活结构(OFA) 63
6.2 安装准备与安装 63
6.2.1 安装文档 64
6.3.1 新安装——恢复管理程序 65
6.3.2 新安装——时间序列插件 65
6.3 Oracle8服务器安装后的步骤 65
6.4 把数据库向Oracle8迁移 66
6.4.1 拷贝数据 66
6.4.2 做一个测试计划 67
6.5 迁移实用程序 67
6.5.1 迁移准备 68
6.5.2 现有系统的备份 69
6.5.3 常见问题和故障检修 73
6.6 小结 74
7.1 系统迁移面临的问题 75
7.1.1 系统迁移的现实 75
第7章 非Oracle数据库的迁移 75
7.1.2 ANST SQL的神话 76
7.1.3 操作系统方面的障碍 77
7.1.4 Oracle联盟设计和迁移服务部 78
7.2 常用迁移方案 78
7.3 小型化 79
7.3.1 有关前端的考虑 80
7.3.2 有关数据库的考虑 81
7.3.3 管理方面的考虑 84
7.4.2 使用DCT做数据迁移的步骤 85
7.4 使用Oracle数据转换工具 85
7.4.1 转换工具究竟是什么 85
7.4.3 使用DCT和Oracle*Forms 4.5迁移前端 89
7.4.4 使用DCT值吗 89
7.5 小结 90
第8章 与非Oracle数据库共存 92
8.1 多种数据库共存于一个环境 92
8.1.1 不同的操作系统 92
8.1.2 不同的硬件供应商 92
8.1.4 不同的范型 93
8.1.3 不同的RDBMS供应商 93
8.2 万能网关 94
8.2.1 你需要哪种类型的网关 94
8.3 共存和复制 106
8.3.1 复制的区别 106
8.3.2 Oracle复制服务的特点 107
8.4 小结 108
第3部分Oracle8组件和对象 109
第9章Oracle进程 109
9.1 Oracle进程 109
9.2.1 系统监视进程 110
9.2 Oracle主进程 110
9.2.2 进程监视进程 111
9.2.3 数据库写入进程 112
9.2.4 日志写入进程 114
9.3 选项进程 114
9.3.1 归档进程 115
9.3.2 恢复进程 115
9.3.3 加锁写入进程 115
9.3.4 专用服务器进程 115
9.3.5 Net8进程 115
9.3.7 Web服务器进程 116
9.3.6 并行查询进程 116
9.4 小结 117
第10章Oracle内存区 118
10.1 在Oracle8中使用内存 118
10.1.1 虚拟内存 118
10.1.2 系统全局区 119
10.1.3 共享内存 119
10.2 系统全局区(SGA) 120
10.2.1 数据库缓冲器高速缓存 120
10.2.2 共享池 121
10.3 程序全局区 123
10.4 用户工作空间 125
10.4.1 Oracle应用软件内存 125
10.5 小结 126
第11章Oracle文件 127
11.1 Oracle文件和它们的用途 127
11.2 数据文件 128
11.3 日志文件 130
11.4 控制文件 133
11.5 初始化和配置文件 133
11.6 日志和跟踪文件 135
11.7 文件大小的自动调整 136
11.8 数据分布优化 136
11.9 标准文件位置 137
11.10 小结 138
第12章Oracle数据库对象 139
12.1 Oracle8数据库对象 139
12.2 表 141
12.3 索引 143
12.4 视图 145
12.5 同义词 146
12.6 存储过程和包 147
12.7 聚簇 148
12.8 序列 148
12.9 表空间 149
12.10 分区 151
12.11 对象数据类型 151
12.12 约束 152
12.13 小结 153
第13章Oracle系统与对象权限 154
13.1 Oracle安全概念 154
13.2 系统权限 157
13.3 对象权限 158
13.3.1 表权限 161
13.3.2 视图权限 162
13.3.3 序列权限 162
13.3.4 过程权限 163
13.3.5 列权限 163
13.4 用户权限 163
13.5 开发者权限 163
13.6 DBA(数据库管理员)权限 164
13.7 数据库维护权限 167
13.8 监控权限 168
13.9 缺省权限 169
13.10 内部连接 169
13.11 哑对象所有者 169
13.12 一个典型的权限分配方案 170
13.13 小结 172
第14章 角色与授权 173
14.1 管理授权与角色 173
14.1.1 授权 173
14.1.2 角色 175
14.2 没有角色的授权 177
14.3 使用脚本捕获权限集 178
14.4 企业管理器中角色和授权的管理 178
14.5 命令行角色与授权管理 179
14.6 一个典型的权限分配方案 179
14.7 小结 184
第15章Oracle8中面向对象的扩展 186
15.1 引言 186
15.2 对象的基本组成部分 186
15.2.1 方法 187
15.3 对象排序 190
15.3.1 映像法 190
15.3.2 顺序法 191
15.4 类型与类型的安装 193
15.5 REF 194
15.6 嵌套表和VARRAY 194
15.6.1 嵌套表 195
15.62 VARRAY 196
15.7 使用基类型 196
15.8 对象视图 198
15.8.1 INSTEAD OF触发器 199
15.9 大对象 200
15.9.1 BLOB 201
15.9.2 CLOB 201
15.9.3 NCLOB 201
15.9.4 BFILE 201
15.10 小结 204
第16章 复制 205
16.1 为什么要复制 205
16.2 复制和数据仑库 207
16.3 只读复制和快照 208
16.3.1 快照日志 211
16.3.2 远程数据库 212
16.4 复杂的复制——分布式数据库 212
16.4.1 复制和虚拟数据库领域 212
16.4.3 复制的管理以及两阶段提交的秘密 216
16.5 冲突的解决方案 217
16.5.1 冲突的种类 217
16.5.2 更新冲突的管理 219
16.5.3 创建列组 219
16.5.4 为列组定义一种解决冲突的方法 219
16.6 抗毁性 220
16.7 Oracle8和复制管理器的优点 222
16.8 小结 223
第17章 查询和事务处理 225
17.1 事务处理 225
17.2 SQL语句的处理 226
17.2.1 游标的创建 226
17.2.2 语句的语法分析 226
17.2.3 查询处理 227
17.2.6 并行化 228
17.2.5 语句执行 228
17.2.4 赋值变量 228
17.2.8 取回返回行 229
17.3 使用Oracle优化器 229
17.3.1 优化器是如何工作的 230
17.3.2 优化器初始化参数 230
17.3.3 优化方法 231
17.4 使用ANALYZE命令 233
17.4.1 如何运行ANALYZE命令 233
17.4.2 数据字典统计 235
17.6 使用EXPLAIN PLAN和SQL Trace 238
17.5 分析SQL语句 238
17.6.1 SQL Trace 239
17.6.2 使用EXPLAIN PLAN 240
17.7 设计新SQL语句 243
17.7.1 使用索引 243
17.7.2 聚簇 244
17.7.3 哈希聚簇 245
17.7.4 范围分割 246
17.7.5 包、过程和函数 246
17.8 使用提示 246
17.9 小结 247
第18章 PL/SQL包 248
18.1 PL/SQL包简介 248
18.2 创建包 248
18.3 包的语法概述 248
18.3.1 读写方法 248
18.3.2 处理LOB数据 253
18.3.3 执行动态SQL和数据定义语言语句 260
18.3.4 进程间通信 265
18.3.5 高级队列 271
18.3.6 调度作业 278
18.4 小结 280
第4部分Oracle8系统管理 281
第19章Oracle8系统管理要求 281
19.1 Oracle8系统管理概述 281
19.2 备份和恢复概念 282
19.3 安全性和存取概念 284
19.3.1 Oracle8权限和配置文件概述 284
19.3.2 SQL*Net,Net8和Connection Manager概述 284
19.4 表空间维护概念 286
19.4.1 组织的重要性 287
19.4.2 优化调整分布 288
19.4.3 调整缺省大小 288
19.4.4 存储碎片及设计考虑 289
19.5 模式维护概念 291
19.5.1 对象维护 291
19.5.2 参照完整性 291
19.5.3 加载/卸载表 291
19.5.4 调整缺省大小 294
19.5.5 估计对象大小 294
19.6.1 谁负责调整工作 298
19.6.2 四级调整 298
19.6 调整概念 298
19.7 其他任务 299
19.7.1 监视 299
19.7.2 故障检修 300
19.8 小结 301
第20章 日常维护和调度任务 302
20.1 用户、系统和批处理 302
20.1.1 用户处理 303
20.1.2 系统处理 303
20.1.3 监控处理 304
20.1.4 初始化进程 306
20.1.5 调度批处理进程 306
20.2 审计 306
20.2.1 允许和禁止审计 307
20.2.2 操作系统审计跟踪 307
20.2.3 数据库审计跟踪 307
20.2.4 AUDIT命令 309
20.2.5 审计的类型 309
20.2.6 审计选项 310
20.2.7 管理审计跟踪 313
20.2.8 审计查询举例 314
20.3 公共监视脚本 316
20.3.1 监视类型 316
20.3.2 监视什么 316
20.3.3 监视脚本举例 317
20.3.4 用Oracle工具监视 320
20.4 调度作业 321
20.4.1 管理作业队列 322
20.4.2 提交和操纵作业 323
20.4.3 数据字典中的作业队列信息 326
20.5 小结 327
第21章 使用Enterprise Manager管理 328
21.1 Oracle Enterprise Manager介绍 328
21.2 安装Oracle Enterprise Manager 329
21.3 配置Enterprise Manager 329
21.3.1 建立Repository 330
21.3.2 配置智能代理 331
21.3.3 发现新服务 332
21.3.4 设置优先权 332
21.4 管理事件 333
21.4.1 建立和修改事件集 333
21.4.2 注册一个事件集 335
21.4.3 事件通知 336
21.5 管理作业 338
21.5.1 准备运行作业 338
21.5.2 创建一个作业 338
21.5.3 创建一个固定作业 340
21.6 管理数据库实例 341
21.6.1 为远程管理作准备 342
21.6.3 启动实例 343
21.6.4 编辑配置文件 343
21.6.2 关闭实例 343
21.7 管理模式对象 344
21.7.1 建立表 344
21.7.2 建立对象类型 345
21.7.3 建立VARRAY 345
21.7.4 建立嵌套表 346
21.7.5 建立对象表 347
21.8 管理安全性 348
21.9 管理存储区 349
21.10 诊断和性能工具 350
21.10.1 Oracle性能管理程序 351
21.10.2 Oracle封锁管理程序 352
21.10.3 Oracle Expert和SQL Analyze 353
21.11 Net8配置文件样例 355
21.12 小结 358
第22章 Oracle8工具 359
22.1 Oracle8工具概述 359
22.2 服务器管理程序 359
22.3 输入/输出 360
22.3.1 数据移动 360
22.4 SQL*Loader 361
22.3.2 增长型备份 361
22.5 SQL*Plus 362
22.5.1 SQL*Plus执行命令 364
22.5.2 SQL*Plus编辑命令 364
22.5.3 SQL*Plus格式命令 365
22.5.4 其他命令 366
22.5.5 SQL*Plus报表技术 368
22.5.6 先进的报表技术 369
22.6 SQL*Plus的其他功能 375
22.6.1 SQL创建SQL 376
22.7.2 数据移动 378
22.7 第三方产品 378
22.7.1 数据库管理 378
22.7.3 表空间重组 379
22.7.4 调整帮助 379
22.7.5 监视 380
22.8 小结 380
第23章 备份与恢复 382
23.1 Oracle数据可用性需求概述 382
23.1.1 可接受的数据损失 382
23.1.2 24×7需求 382
23.2 Oracle备份与恢复处理概述 383
23.1.3 数据仓库需求 383
23.1.4 调度维护 383
23.2.1 ARCHIVELOG模式 384
23.2.2 冷备份和热备份 385
28.2.3 增长型备份 386
28.2.4 高可用性选项 388
23.3 备份策略 390
23.3.1 各种备份策略概述 390
23.3.2 决定哪个策略最好 391
23.3.4 自动备份策略 391
23.4 小结 399
第24章Oracle数据库调整 400
24.1 调整概述 400
24.1.1 谁来负责 400
24.1.2 预先调整和反应性调整 400
24.2 调整的级别 400
24.2.1 操作系统级调整 401
24.2.2 Oracle RDBMS级的调整 403
24.3 数据库设计级的调整 408
24.3.1 表/索引关系和表空间 408
24.3.2 分割(partitioning) 409
24.3.3 控制碎片 412
24.4 SQL级调整 413
24.4.1 应用程序代码 414
24.4.2 索引(index) 415
24.4.3 句法分析(parsing) 417
24.4.4 优化器 417
24.4.5 SQL调整 421
24.5 调整清单 424
24.6 小结 425
25.1 设计者可以控制的因素 426
第25章Oracle8应用程序调整 426
25.2 基于规则的优化器 428
25.3 基于开销的优化器 429
25.4 执行方案 430
25.5 提示 433
25.6 索引设计 434
25.7 一般的准则 434
25.8 实验的意义 436
25.9 小结 436
26.1.1 ODBC的用途 437
26.1.2 ODBC的发展 437
第26章 ODBC/JDBC 437
26.1 ODBC概述 437
第5部分Oracle8和Web 437
26.1.3 RDD,DAO,OLE DB,ADO及其他缩写词 438
26.1.4 Oracle的ODBC发展 438
26.2 ODBC体系结构 438
26.3 ODBC的安装、使用及限制 439
26.3.1 Oracle8 ODBC安装 439
26.3.2 与Oracle8相连接 442
26.5.1 一般性能 443
26.5 Oracle8 ODBC优化及疑难解答 443
26.4 Oracle ODBC驱动程序的能力及限制 443
26.4.1 不支持的ODBC函数 443
26.4.2 不支持的SQL语法 443
26.5.2 Update性能 444
26.5.3 Select性能 444
26.5.4 对注册的疑难解答 444
26.6 ODBC总结 445
26.7 JDBC概述 445
26.8.1 JDBC Thin 446
26.8.2 SQLJ 446
26.7.2 JDBC的发展 446
26.8 Oracle的JDBC发展 446
26.7.1 JDBC的用途 446
26.8.3 JDBC的体系结构 447
26.9 JDBC的安装、使用及限制 447
26.9.1 Oracle8 JDBC安装 447
26.9.2 安装Oracle8 JDBC驱动程序 447
26.9.3 配置Oracle8 JDBC驱动程序 447
26.10 Oracle的特定函数 449
26.9.6 JDBC Thin 449
26.9.4 能力及限制 449
26.9.5 一般JDBC 449
26.10.1 REFCURSORS作为ResultSets(结果集) 450
26.10.2 批量执行 450
26.10.3 PL/SQL存储过程 451
26.10.4 数据库元数据(Metadata) 452
26.10.5 流数据(Streaming Data) 452
26.10.6 预取 453
26.10.7 定义查询列 453
26.11 JDBC总结 454
26.12 小结 455
第27章Oracle Web应用服务器 456
27.1 Web体系结构 457
27.1.1 超文本传输协议(Hypertext Transport Protocol,HTTP) 457
27.1.2 超文本标记语言(Hypertext Markup Language,HTML) 459
27.1.3 Java 462
27.1.4 JaveSeript 463
27.2 网络计算体系结构 463
27.2.1 背景 464
27.3 Oracle Web应用服务器体系结构 466
27.3.1 Web监听器 466
27.3.3 Web请求代理(WRB) 467
27.3.2 分发器 467
27.3.4 插件(Cartriages) 470
27.3.5 访问非Oracle 数据库 481
27.4 Web安全 482
27.4.1 用户验证 482
27.4.2 永久用户验证 483
27.4.3 安全套接字层(Secure Sockets Layer,SSL) 483
27.4.4 一般指南 484
27.5 Developer/2000和Oracle WAS 485
27.5.1 表单(Forms) 485
27.5.2 报表(Reports) 486
27.5.3 图形 487
27.6 Designer/200和Oracle WAS 487
27.7 WAS产品购买 488
27.7.1 标准版 488
27.7.2 高级版 488
27.7.3 Web Developer Suite 488
27.8 Oracle Web应用服务器的未来 489
27.9 小结 489
28.1.1 NCA插件 490
28.1 Oracle8插件概述 490
第6部分 Oracle8的实现 490
第28章 Oracle8插件 490
28.2 插件体系结构 494
28.2.1 使用NCA插件的应用设计 494
28.2.2 数据插件组成 495
28.3 开发插件 496
28.3.1 设计数据插件 496
28.3.2 Oracle8的扩充特性 497
28.3.3 外部过程 499
28.3.4 例子:循序渐进开发数据插件 501
28.3.5 测试开发了的数据插件 502
28.4 分发运行插件 502
28.4.1 数据插件的安装和操作 502
28.4.2 库定义 503
28.4.3 安装流程 504
28.5 小结 504
第29章 用PL/SQL和SQL使用Oracle8的对象 506
29.1 Java中使用PL/SQL的优点 506
29.2.1 插件语言 508
29.2 Java包装PL/SQL的不同方法 508
29.2.2 RMI—分布式计算工具 509
292.3 未来—J/SQL 509
29.3 小结 510
第30章 数据仓库 511
30.1 简介 511
30.1.1 什么是数据仓库 511
30.1.2 为什么公司需要数据仓库 511
30.3 营业环境的文档 512
30.2 创建数据仓库的的6个步骤 512
30.4 选择数据仓库的技术 513
30.5 设计数据仓库模型 514
30.5.1 星形模式 514
30.5.2 设计数据刷新进程 517
30.5.3 可伸缩性 518
30.5.4 在数据仓库中使用Oracle8的特性 518
30.6 监视工具 519
30.7 开发提取和清除例程 520
30.7.1 审计日志 520
30.7.2 在数据仓库内实现具有数据选择的完全刷新 520
30.7.3 改变已存在的应用中的代码 521
30.8 什么是数据集市 523
30.9 元数据 525
30.9.1 系统元数据 525
30.9.2 管理元数据 525
30.9.3 商务元数据 526
30.10 执行信息系统 526
30.10.1 容易使用 526
30.10.2 容易访问 527
30.10.3 快速 527
30.10.4 基于客户或基于服务器 529
30.10.5 外部数据 530
30.11 数据挖掘 530
30.11.1 数据挖掘模型 530
30.12 小结 533
第31章 大型联机事务处理系统 534
31.1 联机事务处理(OLTP)概览 534
31.2 OLTP数据库设计 535
31.2.1 并行服务器体系结构的回顾 535
31.2.2 并行服务器设计实践 539
31.2.3 数据库配置问题 541
31.2.4 UNIX配置问题 544
31.2.5 数据库模式设计惯例 548
31.3 OLTP应用程序开发 549
31.3.1 应用程序设计和编码惯例 549
31.3.2 应用程序安全 552
31.4 OLTP的管理和维护考虑 553
31.4.1 备份和恢复 553
31.4.2 批数据装载 553
31.4.3 对象碎片 554
31.4.4 定期维护 554
31.5.2 工程管理和规划 555
31.6 小结 555
31.5 OLTP实现问题 555
31.5.1 强度测试 555
第32章 媒体和复杂数据服务器 557
32.1 什么是媒体服务器 557
32.2 将会改变商务活动的媒体对象新用法 558
32.2.1 宣传 558
32.2.2 在线培训 559
32.2.3 帮助桌面支持 559
32.2.8 个人化的新服务 560
32.2.7 电子银行 560
32.2.9 游戏 560
32.2.4 信息亭(kiosks) 560
32.2.5 视频点播(VOD) 560
32.2.6 家庭购物 560
32.2.10 参考 561
32.3 Oracle对媒体数据的回答 561
32.4 Oracle媒体服务器 561
32.5 Oracle媒体网络 563
32.6 Oracle媒体对象 564
32.6.1 Oracle的媒体对象的组件 564
32.6.2 Oracle 视频定制控制 567
32.8 小结 570
32.7 Oracle的媒体插件 570
第33章 使用超大型数据库 572
33.1 引言 572
33.2 Oracle8和高端数据库系统 572
33.2.1 分割表和索引 573
33.2.2 管理大量用户 573
33.2.3 延迟事务支持 573
33.2.4 并行查询的强化 573
33.3.1 表分割 574
33.2.5 并行服务器的强化 574
33.3 Oracle8为超大型数据库提供的特性 574
33.3.2 分区索引 576
33.3.3 局部和全局索引 577
33.3.4 只含有索引的表 578
33.3.5 并行DML(PDML) 578
33.3.6 位图索引 579
33.3.7 索引快速全表扫描 580
33.4 超大型数据库的性能调整 581
33.3.8 逆序码索引 581
33.4.1 VLDB系统中的事务处理 582
33.4.3 存档问题的考虑 582
33.5 大型数据库的操作 584
33.5.1 回滚段的设计 584
33.5.2 使用恢复管理器(RMAN)进行备份和恢复 585
33.5.3 类型中的类型 588
33.5.4 对象视图 588
33.5.5 VARRAY 589
33.6 小结 589