译者序 1
致谢 1
作者简介 1
前言 1
第一部分 引言 1
第1章 Oracle8简介 1
1.1 oracle8的一些新特性 2
1.1.1支持超大型数据库 2
1.1.2 支持面向对象 2
1.1.3 增强的工具集 3
1.2 Oracle8快速巡游 4
1.2.1 第一站:事件管理器(Instance Manager) 4
1.2.2 第二站:模式管理器(Schema Manager) 5
1.2.3 第三站:Storage Manager(存储管理器) 8
1.2.4 最后一站:SQL Worksheet(SQL工作单 9
1.3 安装之前 11
1.3.1 客户或服务器或二者 12
1.3.2 新安装或从第7版升级 13
1.3.3 升级以前的Oracle8版本 14
1.4 初始基础数据库内容 14
1.4.1 用户 14
1.4.2 角色 15
1.4.3 表 16
1.4.4 Oracle8实用大全的示例表格 16
1.5 小结 16
第2章 Oracle8概览 18
2.1 Oracle8——客户和服务器关系 18
2.1.1 Oracle8的服务器包 18
2.1.2 Oracle8的客户软件包 19
2.1.3 一颗新星——Enterprise Manager 21
2.2 启动Oracle8 22
2.2.1 远程启动数据库 22
2.2.2 启动服务器上的数据库 22
2.3 初始化Enterprise Manager 23
2.3.1 使用系统管理员工具条 24
2.4 从Oracle8文档中取得帮助 26
2.5 关闭Oracle8 28
2.5.1 远程关闭Oracle8 28
2.5.2 关闭服务器上的Oracle8 30
2.6 小结 31
3.1.1 用户 32
3.1.2 角色 32
3.1 安全 32
第3章 概念 32
3.1.3 优先权 33
3.1.4 环境配置文件 33
3.1.5 Oracle8缺省安全性 33
3.2 空间 34
3.3 性能 35
3.4 备份和恢复 36
3.5 数据库设计 36
3.6 对象-关系概念 37
3.7 小结 38
第4章 主要工具 39
4.1 Enterprise Manager 39
4.1.1 Enterprise Manager控制台 39
4.1.2 Enterprise Manager共同工具组成部分 49
4.1.3 SQL Worksheet的特殊组成部分 52
4.2 SQL*Plus——值得信赖的老朋友 54
4.3 Pro*C和其他编译器 55
4.3.1 什么是Oracle8预编译器 55
4.3.2 预编译器和嵌入式SQL 57
4.3.3 预编译器将给予开发者什么 59
4.4 数据库引擎程序 59
4.4.1 Oracle8数据库引擎 59
4.5 Net8 65
4.5.1 什么是Net8 65
4.5.2 Net8和数据库请求的生命周期 66
4.5.3 Net8体系结构 68
4.6 小结 78
第5章 其他实用程序和工具 80
5.1 存储管理器 80
5.2 实例管理器 82
5.3 复制管理器(Replication Manager) 85
5.4 用于Access的迁移助手 89
5.5 数据迁移助手(Data Migration Assistant) 89
5.6 Web发布助手(Web Publishing Assistant) 90
5.7 数据库助手 90
5.8 文件打包器 91
5.9 性能监测器 92
5.10 上下文Cartridges和工作台 93
5.11 视频Cartridges 93
5.12 空间Cartridges和空间Cartridges实用程序 93
5.13 图像Cartridges 94
5.14 时间序列Cartridges 94
5.15 小结 94
6.1.1 创建新用户 96
6.1 用户 96
第6章 用于用户、角色和环境配置文件的安全管理器 96
第二部分 核心部分 96
6.1.2 改变用户的口令 100
6.1.3 给用户增加角色和优先权 101
6.1.4 从用户中删去角色和优先权 102
6.1.5 改变用户的缺省表空间,帐号锁定,环境配置文件或配额 103
6.1.6 在安全管理器中切换用户或数据库 104
6.2 角色 105
6.2.1 创建一个新的角色 106
6.2.2 分配用户给角色 108
6.2.3 增加或移去角色或特权给角色 110
6.2.4 允许对象所有者使用安全管理器 111
6.3 环境配置文件 111
6.3.1 创建一个新的环境配置文件 111
6.3.2 分配一个环境配置文件给用户 113
6.3.3 用环境配置文件管理口令特性 114
6.4 小结 115
第7章 表格的模式管理器 116
7.1 表格 116
7.1.1 在Oracle8中定义列 116
7.1.2 什么是空 118
7.1.3 创建一个新表格 119
7.1.4 变换表格中的列 125
7.2 主键 136
7.2.1 创建一个新主键 137
7.2.2 改变一个主键 139
7.2.3 删除一个主键 139
7.3 外部键 140
7.3.1 添加外部键 141
7.3.3 移去一个外部键 143
7.3.2 改变一个外部键 143
7.4 索引 144
7.4.1 什么是行ID 144
7.4.2 百分之二十规则 145
7.4.3 在表格上创建新的索引 145
7.4.4 改变索引 147
7.4.5 移去索引 147
7.5 小结 149
第8章 用于视图、同义词和序列的模式管理器 150
8.1 视图 150
8.1.1 使用视图改变数据 150
8.1.2 创建一个新视图 151
8.1.3 用Schema Manager改变一个视图 153
8.1.4 删除(释放)一个视图 154
8.2 同义词 155
8.2.1 创建一个新的同义词 157
8.2.2 删掉(释放)一个同义词 158
8.3 序列 158
8.3.1 创建一个新序列 159
8.3.2 改变(改动)一个序列 160
8.3.3 删除(翻译)一个序列 161
8.4 小结 161
第9章 用于查询的SQL 162
9.1 选择你的工具 162
9.1.1 如何使用SQL Worksheet进行查询 163
9.1.2 如何使用SQL*Plus进行查询 164
9.2 基本的SQL查询 168
9.2.1 一此查询示例 168
9.2.2 帮助你写出好的查询的一些技巧 170
9.3.1 基本连接 171
9.3 连接表格 171
9.3.2 连接查询的例子 172
9.3.3 外部连接 173
9.3.4 使用子查询 174
9.3.5 EXISTS子句 175
9.4 查询中的SQL函数 176
9.4.1 DECODE函数 176
9.4.2 INSTR函数 177
9.4.3 SUBSTR函数 178
9.4.4 CONCATENATE符号 178
9.4.5 NVL函数 179
9.5 小结 179
第10章 使用SQL进行数据操作 181
10.1 修改表和视图中的数据 181
10.2.1 使用文字 182
10.2 更新行 182
10.2.2 使用子查询进行更新 183
10.2.3 使用相关子查询进行更新 184
10.3 插入行 185
10.3.1 用文字插入 185
10.3.2 使用子查询插入 187
10.4 删除行 187
10.5 用子查询替代表名 188
10.6 小结 189
第11章 SQL中的用户,角色和环境配置文件 190
11.1 用户 190
11.1.1 创建一个新用户 190
11.1.2 改变用户的密码 192
11.1.3 给用户增加角色(role)和特权(priviledge) 192
11.1.5 改变用户的缺省表空间,帐号锁,环境配置文件或者限额 195
11.1.4 将角色和特权从用户处删除 195
11.1.6 在SQL中切换用户或者数据库 196
11.2 角色(role) 196
11.2.1 创建新的角色 196
11.2.2 赋予用户角色 197
11.2.3 为角色赋予角色或者特权 197
11.2.4 从角色中将特权和角色删除掉 198
11.3 环境配置文件 198
11.3.1 创建一个新的环境配置文件 198
11.3.2 将环境配置文件赋给用户 199
11.3.3 使用环境配置文件管理口令特性 199
11.4 小结 200
第12章 SQL中的表操作 201
12.1 表 201
12.1.1 创建一个新表 202
12.1.2 改变表中的列 205
12.1.3 删除一个表 211
12.2 主键 212
12.2.1 创建新的主键 212
12.2.2 改变主建 213
12.2.3 删除主键 213
12.3 外部键 214
12.3.1 增加外部键 214
12.3.2 改变外部键 214
12.3.3 删除外部键 215
12.4 索引 215
12.4.1 在表上创建新索引 216
12.4.3 删除一个索引 217
12.5 小结 217
12.4.2 改变一个索引 217
第13章 用于视图、同义词和序列的SQL 218
13.1 视图 218
13.1.1 使用视图来修改数据 218
13.1.2 创建一个新视图 219
13.1.3 用SQL命令改变视图 220
13.1.4 删除一个视图 221
13.2 同义词 221
13.2.1 创建一个新同义词 222
13.2.2 删除一个同义词 223
13.3 序列 223
13.3.1 创建一个新的序列 223
13.3.2 改变序列 224
13.4 小结 225
13.3.3 删除序列 225
第14章 SQL*Plus的报表 226
14.1 SQL*Plus:一个程序设计工具 226
14.2 基本报表命令 227
14.2.1 COLUMN 227
14.2.2 TTITLE和BTITLE 229
14.2.3 SPOOL 230
14.3 组函数 230
14.3.1 使用ORDER BY对结果进行排序 230
14.3.2 组函数(SUM,AVG等) 231
14.3.3 GROUP BY 232
14.3.4 中断和计算 233
14.4 变量和参数 234
14.4.1 DEFINE 235
14.4.2 使用@执行报表 235
14.5 SET 236
14.6 格式化报表 237
14.6.1 PAGESIZE和LINESIZE 237
14.6.2 TIITLE和SYSDATE 237
14.6.3 RECSEP和RECSEPCHAR 238
14.7 小结 240
第三部分 调整与备份 241
第15章 性能 241
15.1 初始化参数 242
15.1.1 DB_BLOCK_BUFFERS 243
15.1.2 SHARED_POOL_SIZE 244
15.1.3 OPTIMIZER_MODE 245
15.2 基于开销的优化器 246
15.2.1 ANALYZE 247
15.2.2 EXPLAIN PLAN 248
15.2.3 提示(Hints) 250
15.2.4 索引 251
15.3 小结 255
第16章 Oracle8备份 256
16.1 Oracle8备份 256
16.1.1 Oracle8备份元素和概念 256
16.2 Oralce8备份系统方案 264
16.3 Oralce8的恢复管理器 264
16.3.1 恢复管理器使用控制文件 265
16.3.2 使用恢复目录 266
16.3.3 恢复目录的一般性维护 277
16.3.4 使用恢复管理器 278
16.3.5 完整性检查 282
16.3.6 使用恢复管理器向磁带备份 282
16.3.7 恢复管理器备份操作 283
16.3.8 恢复管理器的维护 299
16.4 输出 302
16.4.1 输出模式 302
16.4.2 启动Oracle8输出工具 303
16.4.3 输出路径 307
16.4.4 全部数据库模式选项 309
16.4.5 输出错误处理 310
16.5 Oracle8NT备份管理器 311
16.5.1 NOARCHIVELOG模式 311
16.5.2 ARCHIVELOG模式 313
16.6 Oracle8操作系统备份 314
16.6.1 表空间备份 315
16.7 确保备份的完整性 318
16.7.1 DB_VERIFY参数列表 318
16.7.2 DB_VERIFY例子 319
16.8 小结 320
第17章 Oracle8恢复 321
17.1 Oracle8的恢复数据结构 322
17.1.1 控制文件 322
17.1.2 回退段 323
17.1.3 重做记录 324
17.1.4 联机事务日志文件 324
17.1.5 系统变更号 324
17.1.6 数据文件 325
17.1.7 检测点 325
17.2 Oracle8恢复原理 326
17.2.1 日志线索 326
17.2.2 Oracle8实例启动的步骤 328
17.2.3 Oracle8的智能恢复 329
17.3 Oracle8错误 330
17.2.4 Oracle8的恢复过程 330
17.3.1 Oracle8恢复分析 331
17.3.2 实例自动恢复 332
17.4 介质恢复 332
17.4.1 介质恢复类型 333
17.4.2 介质恢复指导 333
17.4.3 在NOARCHIVELOG模式下复原数据库 333
17.4.4 完全恢复 334
17.4.5 执行完全恢复 335
17.4.6 不完全介质恢复 337
17.4.7 用户或应用程序错误 339
17.4.8 恢复管理器 339
17.4.9 重建被毁坏的数据文件 350
17.4.10 NT恢复管理器 354
17.5.1 输入模式 357
17.5 输入 357
17.5.2 启动Oracle8输入实用工具集 358
17.5.3 输入参数 359
17.5.4 输入completer,ineremental和cumulative输出文件 362
17.5.5 理解表级输入和分区级输入 363
17.5.6 输入时的错误处理 364
17.6 小结 364
第四部分 高级主题 366
第18章 PL/SQL 366
18.1 编写PL/SQL代码 367
18.2 声明变量 368
18.2.1 IF_THEN_ELSE 369
18.3 游标 370
18.3.1 显式游标 370
18.3.3 游标属性 372
18.3.2 隐式游标 372
18.4.1 CURSOR FOR LOOP 374
18.4 循环 374
18.4.2 简单循环 375
18.4.3 WHILE循环 376
18.4.4 FOR循环 377
18.5 HTML扩展 378
18.6 处理错误 381
18.7 小结 383
第19章 过程、包、函数和触发器 384
19.1 对前面要走的路的已有认识 384
19.2 你的企业系统和存储子程序 385
19.3.1 图书馆系统工作流 386
19.4 存储过程 386
19.3 本章实例分析 386
19.4.1 创建过程的语法 388
19.5 维护存储过程 393
19.5.1存储过程的性能问题 393
19.6 函数 393
19.6.1 创建函数举例 394
19.7 包 395
19.7.1 创建包实例 396
19.7.2 包的构成部分 400
19.7.3 执行包 401
19.7.4 使用包的好处 401
19.7.5 重载包接口 402
19.7.6 包会话状态 402
19.7.9 Oracle提供的包 403
19.7.8 取消包 403
19.7.7 序列可重用包 403
19.8 子程序的内部 404
19.8.1 存储子程序的存储 404
19.8.2 在执行中使存储子程序有效 404
19.8.3 执行一存储子程序 404
19.8.4 存储子程序的依赖关系 405
19.8.5 存储子程序隐藏 407
19.8.6 调试存储子程序 408
19.8.7 列出关于存储子程序的信息 408
19.9 触发器 408
19.9.1 何时在声明的参照完整性上使用触发器 409
19.9.2 创建触发器实例 409
19.9.3 触发器语法 410
19.9.4 触发器构成部分 410
19.9.5 创建触发器的限制 412
19.9.6 触发器执行 413
19.9.7 触发器的数据访问 414
19.9.8 触发器的维护和安全 415
19.10 理解子程序异常 416
19.10.1 实现异常 416
19.10.2 为什么使用异常 417
19.10.3 处理异常 417
19.10.4 处理未命名的内部异常 418
19.11 小结 419
第20章 审计 421
20.1 Oracle8审计概念 421
20.1.1 为什么审计数据库 421
20.1.2 由Oracle8提供的审计选项 421
20.2.2 使审计选项可用或不可用 425
20.2 实现Oracle8审计 425
20.2.1 使Oracle8审计可用 425
20.3 Oracle8审计痕迹 427
20.4 使用触发器审计数据库操作 430
20.4.1 设置触发器审计 431
20.5 小结 433
第21章 多数据库例程 434
21.1 Oracle8例程 434
21.2 Oracle8例程应用 435
21.2.1 单例程数据库系统 435
21.2.2 多例程数据库系统 435
21.2.3 Oracle8分布式数据库系统 437
21.3 Oracle8并行服务器应用 438
21.3.1 并行服务器应用的属性 439
21.3.2 设计Oracle8并行服务器系统 441
21.3.3 实现管理Oracle8并行服务器 444
21.3.4 并行服务器概念 447
21.3.5 Oracle8并行服务器的好处 450
21.3.6 Oracle8并行服务器系统的缺陷 452
21.4 分布式数据库应用 452
21.4.1 异类Oracle8分布式数据库系统 452
21.4.2 开发分布式数据库系统 453
21.4.3 管理Oracle8的分布式数据库系统 455
21.4.4 理解分布式事务的管理 459
21.4.5 Oracle8会话树 460
21.5 小结 461
21.5.1 并行服务器 461
21.5.2 Oracle8分布式结构 462
22.1.1 创建聚集,聚集表和聚集索引 463
22.1 聚集 463
第22章Oracle8聚集 463
22.1.2 创建聚集指导 468
22.1.3 管理聚集模式对象 471
22.1.4 收集聚集上的信息 473
22.2 小结 474
第23章 超大型数据库 475
23.1 数据库对象划分 476
23.1.1 使用Oracle8分离的优点 476
23.1.2 创建表的划分 477
23.1.3 创建索引划分 482
23.1.4 管理划分表和索引 485
23.2 大对象数据类型 486
23.2.1 LOB数据类型 486
23.2.2 使用LOBs创建表 487
23.2.3 初始化内部LOBs 490
23.2.4 使用BFILES 491
23.2.5 操作LOB 492
23.2.6 使用DBMS_LOB包 494
23.2.7 DBMS_LOB包程序语法 495
23.3 小结 499
第24章Oracle8对象 501
24.1 介绍Oracle8对象技术 501
24.2 对象-关系型Oracle8数据库 502
24.2.1 对象-关系型Oracle8的优点 503
24.2.2 对象-关系型Oracle8的缺点 504
24.3 对象-关系型例子分析 504
24.3.1 图书馆系统处理 504
24.3.2 图书馆例子中的表 505
24.3.3 图书馆例子实体 505
24.4.1 对象类型 506
24.4 Oracle8对象 506
24.4.2 集合类型 517
24.5 Oracle8对象表 521
24.5.1 对象表REF 522
24.5.2 对象表嵌入列 523
24.5.3 对象表索引 523
24.5.4 对象表约束 524
24.5.5 对象表触发器 524
24.5.6 对象表缺省值 524
24.5.7 最终的图书馆系统实例 526
24.5.8 操作对象表 530
24.6 Oracle8对象视图 536
24.6.1 创建对象视图的概念 536
24.6.2 创建对象视图类型 537
24.7 小结 543
第25章 使用对象编程 544
25.1 回顾对象表实例 544
25.2 使用Oracle8对象的PL/SQL 546
25.2.1 查询对象表 546
25.2.2 列出某人租借的书 547
25.2.3 修改嵌入表 550
25.2.4 插入嵌入表 553
25.2.5 从嵌入表中删除 555
25.3 小结 557
第五部分 附录 560
附录A 命令参考 560
附录B 关于 CD-ROM 835
附录C PL/SQL例子 845
词汇 847