译者序 1
引言 1
第1章 Oracle介绍 1
1.1术语 1
1.2 什么是Oracle 4
1.2.1 开端 4
1.2.2 开端小结 7
1.2.3 今天的Oracle 7
1.3 Oracle 8服务器 8
1.3.2 Oracle 7/8服务器的组件 9
1.4 SQL*Plus—友好的用户接口 18
1.5 Oracle Foams—前端产品 19
1.6 Oracle Repeorts—报表生成器 20
1.6.1 主/细目报表 20
1.6.2 矩阵报表 20
1.6.3 窗体信件 21
1.7 Oracle Book 21
1.8 Oracle Loader 和SQL*Connect 22
1.9 Oracle使用自己的工具—应用软件 22
1.11 Devcloper/2000与Designer/2000 23
1.10 Oracle InterOffice 23
1.12 Personal Oracle 24
1.13 服务 24
1.14 Oracle用户组—事件和版物 25
1.15 Oracle的数据仓库 25
1.16 网络计算 26
1.17 本章小结 26
第2章 Oracle8一瞥以及面向对象的数据库 27
2.1 术语 27
2.2 什么是面向对象的数据库 29
2.2.3 封装 30
2.2.1 什么是对象 30
2.2.2 什么是类 30
2.2.4 数据库触发器 31
2.2.5 可扩充性 31
2.2.6 继承 31
2.2.7 多态 31
2.2.8 面向对象技术小结 32
2.3 Oracle8一瞥 32
2.3.1 Oracle8的聚焦区 32
2.4.1 嵌套对象 37
16.1 术语 37
2.3.1 Oracle8备份和恢复 37
2.4 Oracle8的对象和新数据库对象 37
2.4.3 类型中的类型 38
2.4.2 可变数组 38
2.4.4 方法和类型 39
2.4.5 对象视图 40
2.5 小结 40
2.6 本章小结 40
第3章 结构 41
3.1 术语 41
3.2 为什么要学习结构 42
3.2 什么是数据库 42
3.3.1 数据文件 43
3.3.2 用户数据和系统数据 43
3.4.1 表空间的名称和内容 44
3.3.3 什么是数据库小结 44
3.4 表空间 —Oracle的文件夹 44
3.4.2 表空间小结 46
3.5 重演日志—事务日志 46
3.5.1 重演日志怎样工作 46
3.5.2 重演日志小结 47
3.6 控制文件 48
3.7.1 用户(客户机)进程 48
3.8.3 日志写入器 49
3.8.2 校验点 49
3.8.1 数据库写入器 49
3.7.2 服务器进程 49
3.7.3 程序小结 49
3.8 数据库支持进程 49
3.8.4 系统监控器 50
3.8.5 进程监控器 50
3.8.6 归档器 50
3.8.7 锁 50
3.8.8 恢复器 51
3.8.9 调度 51
3.8.10 数据库支持进程小结 51
3.9 内存结构—电话线路 51
3.9.1 系统全局区 52
3.9.2 程序全局区 53
3.9.3 内存结构小结 53
3.10 什么是Oracle实例 54
3.11 综合举例 55
3.12 多线程服务器(MTS)的进一步了解 56
3.13 本章小结 57
第4章 数据库对象 58
4.1 术语 58
4.2 表—Oracle存放用户数据的所在 59
4.3 视图—数据查看的特殊方式 59
4.3.1 为何要用视图 60
4.3.2 创建视图 60
4.4 索引—加快访问数据的方法 61
4.4.4 where子句和索引 62
4.4.1 索引有顺序 62
4.4.3 并联索引 62
4.4.2 索引可保证数据唯一性 62
4.5 同义词—新的标识符 63
4.6 授权访问 63
4.6.1 给用户授权 64
4.6.2 接受授权 65
4.7 角色—成组管理用户的方法 65
4.8 Oracle8中可能会见到的对象 65
4.8.3 数据库连接 66
4.8.2 存贮对象 66
4.8.1 快照 66
4.8.5 聚集 67
4.9 查看数据字典中的对象 67
4.8.4 序列 67
4.10 本章小结 68
第5章 安装 69
5.1 术语 69
5.2 Oracle8的通用服务器 70
5.2.1 服务器安装 70
5.2.2 客户机安装 72
5.3 在UNIX上安装Oracle 75
5.3.1. 创建中转区 75
5.3.4 安装程序环境 76
5.3.2 启动安装程序 76
5.3.3 友好的安装程序 76
5.4 非桌面环境Oracle产品安装 84
5.5 桌面环境Personal Oracle安装 85
5.5.1 预安装活动 86
5.5.2 从90天试用CD上安装Personal Oracle 86
5.5.3 安装从Web卸载的Personal Oracle 89
5.6 桌面环境Oracle产品安装 94
5.7 本章小结 95
第6章SQL101 96
6.1 术语 96
6.2.2 DDL 97
6.2 两种类型的SQL语句 97
6.2.2 DML 98
6.3 SQL*Plus入门 99
6.3.1 create语句 99
6.3.2 Describe 101
6.3.3 insert 101
6.3.4 select 102
6.3.5 where 103
6.4 数值型数据 107
6.3.6 order by 107
6.5 字符型数据 109
6.6 日期型数据 110
6.6.2 特殊格式的日期型数据 110
6.6.1 日期型函数 110
6.6.3 日期运算 112
6.7 表列数据类型转换 112
6.8 Update、Delete和Alter 112
6.8.1 update 112
6.9 连接两个表 113
6.8.3 alter 113
6.8.2 delete 113
6.10 格式化输出 114
6.10.1 页和行的大小 116
6.10.2 页头标 116
6.10.3 页脚标 116
6.10.4 写SQL*Plus结果到文件 116
6.10.5 格式化输出表例 117
6.11 本章小结 122
第7章 PL/SQL 123
7.1 术语 123
7.2 为什么要学习PL/SQL 124
7.3 PL/SQL字符集 124
7.3.4 杂符号 125
7.3.1 合法字符 125
7.3.3 关系运算符 125
7.3.2 算术运算符 125
7.4 变量 126
7.5 常用数据类型 127
7.5.1 varchar2 127
7.5.2 number 127
7.5.3 date 127
7.6 PL/SQL的组件 128
7.6.2 控制结构 128
7.6.1 异常 128
7.5.4 Boolean 128
7.6.3 “Do Nothing”与“Null结构 134
7.6.4 declare段 134
7.7 光标 134
7.7.1 显式光标 135
7.7.2 隐式光标 137
7.7.3 用何种光标 138
7.8 PL/SQL表 139
7.9 PL/SQL的注释 139
7.11.1 实例1 141
7.10 编释错误 141
7.11 编程实例 141
7.11.2 实例2 142
7.11.3 实例3 143
7.12 本章小结 144
第8章 Oracle Forms 145
8.1 术语 145
8.2 什么是Oracle Forms 146
8.3 运行Oracle Forms所需的硬件环境 146
8.4 如何安装Oracle Forms 146
8.5 怎样在PC上运行Oracle Forms 148
8.6 Oracle Forms Designer 148
8.6.1 对象导航器 148
8.6.2 画布视图 149
8.6.3 属性表 150
8.6.4 PL/SQL编辑器 151
8.6.5 设置选项 151
8.6.6 处理Oracle Forms文件 152
8.6.7 右鼠标按钮 154
8.7 缺省块实用工具 155
8.8 经验传授 156
8.8.1 练习#1 156
8.8.2 练习#2 158
8.8.3 练习#3 161
8.9.2 字体 163
8.9.1 色彩 163
8.9 屏幕格式化 163
8.9.3 图形 164
8.10 Oracle Forms Runtime 165
8.11 本章小结 165
第9章 Oracle Reports 166
9.1 样例数据 166
9.2 术语 168
9.3 什么是Oracle Reports 169
9.4 运行Oracle Reports所需硬件环境 169
9.5 安装Oracle Reporls 170
9.6 为运行Oracle Reports准备PC机 171
9.7 Oracle Reports如何处理查询 171
9.8 Oracle Reports Designer 172
9.8.1 Object Navigator 173
9.8.2 设置个性 174
9.8.3 如何利用Oracle Reports文件 175
9.8.4 两个主要的Designer部件 176
9.8.5 样例报表#1 177
9.8.6 样例报表#2 186
9.8.7 样例报表#3 190
9.9 Oracle Reports Runtime 193
9.10 本章小结 193
10.1 术语 194
10.3 运行Orade Loader—Orade8 195
10.2 什么是Oracle Loader 195
10.3.1 Userid 196
10.3.2 Control 196
10.3.3 Parallel 197
10.3.4 Diraect 197
10.3.5 Skip 197
10.3.6 Load 197
10.3.7 Log和Bad 197
10.3.11 实例#3 198
10.3.10 实例#2 198
10.3.8 Discard 198
10.3.9 实例#1 198
10.4 Oracle Loader控制文件 199
10.4.1 第一部分:Load Date 199
10.4.4 第四部分:列和域的说明 200
10.4.3 第三部分:Into Table 200
10.4.2 第二部分:Infile 200
10.5 Orade Loader的输出 201
10.5.1 日志文件—完全装载 201
10.5.2 日志文件—不完全装载 203
10.5.3 Bad文件 203
10.5.4 Discard文件 204
10.6 本章小结 204
第11章 应用协调101 205
11.1 为什么要协调Orade系统 205
11.2 术语 206
11.3 协调处理中的主组成部分 207
11.3.1 内存 208
11.3.2 磁盘访问 210
11.4 使用共享池中的语句 212
11.4.1 SQL语句处理步骤 212
11.4.2 书写可重用共享池中语句的SQL语句 214
11.5 并行处理 220
11.6 减少等待状态 221
11.6.1 经常提交(commit)工作 221
11.6.2 使Oracle做自我锁定 221
11.6.3 关闭不被使用的应用窗口 221
11.6.4 有节制地使用多任务 221
11.7 本章小结 221
第12章 高级SQL 222
12.1 术语 222
12.2 分组结果函数 222
12.2.1 使用group by子句 223
12.2.2 使用having子句 223
12.4 为其他程序建立数据文件 224
12.3 嵌套查询 224
12.5 SQL创建SQL 226
12.6 deoode语句 227
12.7 在SQL*Plus中定义变量 228
12.8 在SQL*Plus中置换变量 228
12.9 SQL*Plus 4.0的变化 230
12.9.1 表头和表尾命令 231
12.9.2 存贮SQL*Plus环境 231
12.9.3 set autotrace 231
12.9.4 serveroutput 231
12.10 repheader—整个表头、仅仅是表头 231
12.11 column—整个表列、仅仅是表列 232
12.11.1 格式化数字数据 233
12.11.2 格式化字符数据 234
12.12 new-value 235
12.13 SQL*Plus集合论 236
12.13.2 集合交 237
12.13.3 集合差 237
12.13.1 集合并 237
12.14 结构化编程技术 238
12.15 命令行编辑 239
12.16 SQL*Plus中的空 241
12.16.1 比较操作中的空问题 241
12.16.2 使用NVI进行空比较操作 242
12.16.3 Null=Null比较的异常情况 242
12.17 本章小结 243
第13章 高级应用协调 244
13.1 术语 244
13.2 优化 245
13.2.1 基开代价的方法 245
13.2.2 CBO使用控制 249
13.2.3 统计收集(statistic collection)的方法学 250
13.2.4 基于规则的方法 250
13.2.5 为什么CBO超过基于规则的优化 252
13.3 SQL语句处理过程 253
13.3.1 句法分析 253
13.4 命名变量 256
13.3.2 运行 256
13.3.3 读取 256
13.5 索引 257
13.6 主关键字的限定 257
13.7 协调交换的工具 258
13.7.1 查看SQL*Plus中共享池的内容 258
13.7.2 explain plan 259
13.7.3 set autotrace的使用 260
13.7.4 SQL跟踪程序与tkprof 262
13.7.5 查找跟踪程序文件 263
13.8 Oracle Trace 264
13.9 本章小结 266
第14章 DBA 101 267
14.1 成为数据库管理员 267
14.2 术语 268
14.3 企业管理器 269
14.3.1 OEM管理工具 269
14.3.2 企业管理器:调用 271
14.3.3 企业管理器:连接到储藏室 271
14.3.4 企业管理器:启动 271
14.3.5 企业管理器:停机 272
14.3.6 企业管理器:授予用户访问权限 273
14.3.7 企业管理器:回收用户访问权限 274
14.3.8 企业管理器:创建表空间 274
14.3.9 企业管理器:增加空间至已有表空间 275
14.4 行方式服务器管理器 276
14.4.1 服务器管理器:调用 276
14.4.2 服务器管理器:连接内部命令 276
14.4.3 服务器管理器:启动 276
14.4.4 服务器管理器:关机 277
14.4.7 服务器管理器:回收用户访问数据权限 279
14.4.8 服务器管理器:创建表空间 279
14.4.6 服务器管理器:授予用户访问数据权限 279
14.4.5 服务器管理器:退出 279
14.4.9 服务器管理器:为已有表空间增加空间 280
14.5 全屏幕服务器管理器 280
14.5.1 服务器管理器:调用 281
14.5.2 服务器管理器:内部连接命令 281
14.5.3 服务器管理器:启动 281
14.5.4 服务器管理器:关闭 282
14.5.5 服务器管理器:退出 284
14.5.6 服务器管理器:授予用户访问数据权限 284
14.5.7 服务器管理器:回收用户访问数据权限 286
14.5.8 服务器管理器:创建表空间 287
14.5.9 服务器管理器:增加空间至已有表空间 289
14.6 Personal Orade for Windows 95 290
14.6.1 启动和关闭数据库 290
14.6.2 创建一个用户 292
14.6.4 增加空间至已有表空间 293
14.6.3 撤销用户 293
14.7 本章小结 294
第15章 卸库与装库 295
15.1 术语 295
15.2 卸库与装库的功能 296
15.3 卸库与装库的相似之处 296
15.4 卸库与装库的差异 296
15.5 操作方法 297
15.5.1 交互式卸库:无参数调用 297
15.5.2 交互式装库:无参数调用 298
15.5.3 提示应答对一步对话产生的影响 300
15.5.4 提示应答对操作成功或失败的影响 302
15.5.5 参数驱动方式的卸库 303
15.5.6 参数驱动方式装库 305
15.5.7 Parfile关键字参数 306
15.5.8 交互式与参数驱动方法的混合使用 307
15.6.3 全库方式卸库 308
15.6.2 用户方式卸库 308
15.6.1 表方式卸库 308
15.6 卸库与装库方式 308
15.6.5 用户方式装库 309
15.6.6 全库方式装库 309
15.6.4 表方式装库 309
15.6.7 方式转换 310
15.6.8 方式使用 310
15.7 带分区表的卸库与装库程序的使用 311
15.8 运行卸库与装库的要求 311
15.9 错误情况及解决方法 311
15.9.1 Orade不运行 312
15.9.2 读取DBA创建的卸库文件 312
15.9.3 不能启动全库方式卸库 312
15.10 参数之间关系 313
15.11 实例 315
15.11.1 样例#1 315
15.11.2 样例#2 315
15.12 本章小结 316
15.11.3 样例#3 316
第16章 备份与恢复 317
16.2 由备份提供和保护措施 317
16.2.1 保护丢失的对象 317
16.2.2 保护丢失的数据库 318
16.3 Orade企业管理器备份 318
16.3.1 Backup Wizard 320
16.3.2. 数据库打开时的备份 322
16.4 卸库 与装备份 324
16.4.1 具有足够的空闲时限 325
16.4.2. 空闲时限不够长 325
16.4.3 从卸库文件恢复 327
16.5 映像备份 327
16.5.1 冷备份 327
16.5.2 热备份 329
16.6 恢复 331
16.6.2 重演日志类型 332
16.6.1 什么是恢复 332
16.6.3 恢复的类型 333
16.6.4 实施完全恢复 333
16.6.5 实施不完全恢复 335
16.7 一个完全备份方案 338
16.8 本章小结 341
第17章 数据库协调 342
17.1 术语 342
17.2 初始化参数文件 343
17.2.1 初始化参数文件项的类型 343
17.2.2 Oracle实例管理器—浏览设置 343
17.2.3 服务器管理器—浏览设置 343
17.2.4 初始化参数文件—修改哪些内容 345
17.2.5 在Oracle8实例管理器中修改参数数值 347
17.2.6 使用文本编辑器修改参数项 348
17.2.7 浏览SGA的当前容量 348
17.3.1 表和索引 349
17.3 I/O流 349
17.2.8 假脱机结果 349
17.3.2 系统表 350
17.3.3 临时段 350
17.3.4 回滚段 350
17.3.5 联机重演日志 351
17.4 概要 351
17.5 本章小结 351
18.1 术语 352
第18章 高级DBA 352
18.2 启动命令选项 353
18.2.1 正常启动 354
18.2.2 安装启动 354
18.2.3 非正常启动 354
18.2.4 约束启动 355
18.2.5 强制启动 355
18.2.6 带初始化参数文件的启动 356
18.4 关闭选项 357
18.3 操作方式 357
18.5.1 给数据库用户授权 358
18.5 附加的用户管理职责 358
18.5.2 创建和分配新的模式文件 359
18.5.3 创建和分配新角色 359
18.6 附加的表空间维护职责 360
18.6.1 为表空间增加更多的空间 360
18.6.2 删除表空间 361
18.7 管理重演日志组 363
18.7.1 镜像重演日志 363
18.7.2 增加新的重演日志组 364
18.7.3 删除已有的重演日志组* 365
18.8 回滚段 366
18.8.1 获取回滚段 366
18.8.2 创建回滚段 367
18.8.4 删除回滚段 368
18.9 初始化参数文件 368
18.8.3 改变回滚段状态 368
18.9.1 初始化参数文件项的格式 369
18.9.2 检查初始化参数文件内容 369
18.9.3 修改参数值 370
18.9.4 最常修改的项 370
18.10 控制文件职责 371
18.10.1 控制文件的使用 371
18.10.2 增加控制文件 372
18.10.4 移动已有的控制文件 374
18.10.3 删除控制文件 374
18.10.5 建立新的控制文件 375
18.11 最常见的错误信息 376
18.11.1 通用DBA信息范围 377
18.11.2 联机错误信息 378
18.11.3 ORA-00600内部错误 379
18.12 数据字典 379
18.12.1 字典视图类型 379
18.12.2 最有用的dba和V$视图 380
18.13 与Oracle Worldwide Customer Supper保持联系 382
18.14 结束语 382
第19章 数据仓库 384
19.1 术语 384
19.2 位图索引 385
19.3 优化程序直方图 386
19.4 并行 387
19.4.1 查询处理 388
19.4.2 装载操作 389
19.4.3 表和索引创建 390
19.5 分区对象 390
19.5.1 为什么要分区对象 390
19.5.2 处理分区对象 391
19.6 分区视图 391
19.7 星形查询优化 393
19.8 本章小结 394
20.1 术语 395
第20章 网络计算机NC及其体系结构 395
20.1 网络计算机“NC” 396
20.2.1 并非人人都需要强客户机 397
20.2.2 经济地工作 398
20.2.3 什么是零管理 398
20.2.4 NC—模式必须变动 399
20.3 网络计算体系结构 400
20.3.1 何为数据插件 401
20.3.2 插件交换 402
20.4 本章小结 402
20.5 结束语 402
附录A SQL*DBA 403
A.1 行方式spldba 403
A.2 调用 403
A.2.1 内部连接命令 403
A.2.3 关闭数据库 404
A.2.4 退出 404
A.2.2 启动数据库 404
A.2.5 授予用户访问数据库的权限 405
A.2.6 撤销用户的访问权限 405
A.2.7 创建表空间 405
A.2.8 给已有的表空间增加新的空间 406
A.3 全屏幕spldba 406
A.3.1 调用 407
A.3.2 连接内部命令 407
A.3.3 启动数据库 408
A.3.4 关闭数据库 408
A.3.5 退出 408
A.3.6 授予用户访问数据库的权限 409
A.3.7 撤销用户的访问权限 411
A.3.8 创建表空间 411
A.3.9 给已有表空间增加新的空间 413
A.4 全屏幕sqldba的高级操作 414
A.5.1 分配缺省的表空间 419
A.5 附加的用户管理职责 419
A. 5.2 为用户分配空间限额 420
A.5.3 为排序分配表空间 420
A.5.4 组合前三个命令 422
A.6 附加的表空间维护职责 422
.6.1 移动数据文件 422
.6.2 删除表空间 422
A.7 管理重演日志组 424
A.7.1 镜像重演日志组 425
A.7.2 增加新的重演日志组 426
A.7.3 删除已有的重演日志组 426
A.7.4 删除重演日志文件组的问题 427
A.8 回滚段 427
A.8.1 获取回滚段 428
A.8.2 创建回滚段 428
A.8.3 改变回滚段的状态 429
A.8.4 删除回滚段 430
A.9 本附录小结 431