Oracle Database 10g是一种具有网格计算架构的数据库系统在性能、可扩展性、安全性、可管理性和系统可用性等方面具有绝对的领先优势。本书全面讲述了Oracle Database 10g的特点和功能。全书共分18章,从安装配置、安全性、可用性、互操作性、PL/SQL、可开发性、商业智能等多个方面,对OracleDatabase10g的各项技术进行了由浅入深的讲述。
本书内容翔实、结构合理、示例丰富、图文并茂。作为一本教程,本书面向数据库管理和开发的专业人员,可以帮助他们系统地学习Oracle Database 10g的系统管理和应用开发,有助于解决各种疑难问题。本书可作为高等院校数据库技术及其相关专业、信息管理与信息系统专业的教材。也可以作为数据库管理和应用开发人员的参考书。
第1章网格计算时代
1.1Oracle产品的发展简史
1.2网格计算的概念和特点
1.3OracleDatabaselog的产品特点
1.3.1版本特点
1.3.2可选产品
1.3.3Oracle管理程序包
1.3.4特性和产品可用性
1.4小结
1.5思考与练习
第2章安装和配置
2.1安装前的要求
2.1.1硬件环境要求
2.1.2软件环境要求
2.2安装过程
2.2.1OracleUniversallnstaller的特点
2.2.2详细安装过程
2.3升级到OracleDatabaselog
2.3.1使用DBUA升级
2.3.2手工升级
2.3.3其他升级方法
2.4验证安装结果
2.5小结
2.6思考与练习
第3章OmCleDatabaselog的新增功能
3.1服务器可管理性
3.1.1统计采集
3.1.2刷新高速缓冲区存储器
3.1.3数据库资源管理器的新增功能
3.1.4调度器的改变
3.1.5用户可配置的默认表空间
3.1.6其他新增功能
3.2性能调整
3.2.1在等待接口方面的增强
3.2.2数据库通用管理基础设施
3.2.3自动化SGA调整
3.2.4新增的跟踪功能
3.2.5预存储的散列集群
3.2.6共享服务器架构的变化
3.3安全性
3.3.1新增的虚拟私有数据库功能
3.3.2增强的审计功能
3.3.3新增的目录功能
3.4可用性和可恢复性
3.4.1数据库恢复方面的增强
3.4.2在RMAN方面的增强
3.4.3新增的事务恢复监视功能
3.4.4增强的数据保护功能
3.5商业智能
3.5.1新增的大文件表空间
3.5.2可跨平台传输的表空间
3.5.3增强的合并功能
3.5.4增强的外部表功能
3.5.5新增的物化视图和查询重写功能
3.5.6增强的分区功能
3.6应用程序开发方面
3.6.1增强的块绑定操作
3.6.2新增的SQL和PL/SQL正则表达式
3.6.3根据大小写和音调排序
3.6.4新增的用户指定的引号
3.6.5新增的PL/SQL程序包
3.6.6新增的PL/SQL编译器功能
3.7其他新增的数据库功能
3.7.1增强的工作空间管理器
3.7.2增强的流功能
3.7.3SQL*Plus和SQL增强的功能
3.8小结
3.9思考与练习
第4章体系结构
4.1概述
4.2连接数据库实例
4.2.1用户进程
4.2.2Oracle监听器
4.2.3Oracle网络客户
4.3服务器进程
4.4文件系统
4.4.1参数文件
4.4.2控制文件
4.4.3数据文件
4.4.4表空间
4.4.5段
4.4.6盘区
4.4.7数据块
4.4.8重做日志文件
4.4.9临时文件
4.4.10Omcle管理文件
4.5内存区域
4.5.1系统全局区域
4.5.2程序全局区域和用户全局区域
4.6后台进程
4.6.1进程监控器
4.6.2系统监视器
4.6.3数据库写入器
4.6.4日志写入器
4.6.5归档器
4.6.6检查点
4.6.7作业队列协调器和作业进程
4.6.8恢复器
4.6.9新增的进程
4.7小结
4.8思考与练习
第5章SQL基础
5.1概述
5.1.1SQL的作用和特点
5.1.2SQL与SQL*Plus、PL/SQL之间的关系
5.2Select语句
5.2.1基本语法、规则和执行方式
5.2.2执行select语句
5.2.3使用where子句
5.2.4使用orderby子句
5.2.5合计计算
5.2.6使用groupby和having子句
5.2.7连接查询
5.2.8集合运算符
5.3修改数据
5.3.1插入数据
5.3.2更新数据
5.3.3删除数据
5.4子查询
5.4.1子查询基本用法
5.4.2单行子查询
5.4.3多行子查询
5.4.4多列子查询
5.5小结
5.6思考与练习
第6章SQL*Plus基础
6.1启动和设置SQL*Plus
6.1.1启动SQL*P1us
6.1.2设置SQL*Plus运行环境
6.2格式化查询结果
6.2.1C01umn
6.2.2ttitle和btitle
6.2.3pause
6.2.4pagesize
6.2.5linesize
6.2.6feedback
6.2.7numformat
6.2.8long
6.3使用SQL*Plus命令
6.3.1describe
6.3.2prompt
6.3.3替换变量
6.3.4show
6.4内置的SQL*PlusHelp命令
6.5使用SQL*Plus缓冲区
6.6脚本
6.7SQL*P1us增强的功能
6.7.1增强的spool命令
6.7.2新增的define变量
6.7.3其他增强
6.8小结
6.9思考与练习
第7章PL/SQL语言
7.1概述
7.2声明
7.2.1变量和常量
7.2.2为变量和常量赋值
7.2.3可视性和作用域
7.2.4定义不确定内容
7.2.5使用%type和%rowtype
7.3PL/SQL数据类型
7.3.1字符数据类型
7.3.2数值数据类型
7.3.3逻辑数据类型
7.4PL/SQL集合
7.4.1记录
7.4.2PL/SQL表
7.4.3VARRAY和嵌套表
7.5游标
7.5.1显式游标
7.5.2隐式游标
7.5.3游标属性和refcursors
7.6控制语句
7.6.1条件
7.6.2循环
7.7错误处理
7.7.1异常部分
7.7.2预定义异常
7.7.3用户定义异常
7.8小结
7.9思考与练习
第8章管理用户和表
8.1概述
8.1.1数据定义语言
8.1.2Oracle的标识符
8.2用户
8.2.1建立用户
8.2.2改变用户
8.2.3删除用户
8.3Oracle数据类型
8.3.1数值类型
8.3.2字符类型
8.3.3日期和时间
8.3.4ANSI数据类型
8.4创建表
8.4.1基本语法
8.4.2约束
8.4.3createtableaSseleCt
8.5数据字典
8.6小结
8.7思考与练习
第9章管理安全性
9.1数据库安全概述
9.2用户和模式
9.3系统权限
9.4对象权限
9.5数据库角色
9.6PL/SQL和数据库角色
9.7小结
9.8思考与练习
第10章事务处理和并发控制
10.1概述
10.2事务管理技术
10.2.1commit处理
10.2.2rollback处理
10.2.3savepoint和rollbacktOsavepoint
10.2.4settransaction
10.2.5setcOnstraint
10.3事务的ACID属性
10.3.1原子性
10.3.2一致性
10.3.3隔离性
10.3.4持久性
10.4并发控制
10.4.1锁定
10.4.2多版本和读取一致性
10.5小结
10.6思考与练习
第11章管理表
11.1概述
11.2表类型
11.2.1堆表
11.2.2外部表
11.2.3索引组织表
11.2.4临时表
11.2.5其他表类型
11.3表的特性
11.3.1tablespace子句
11.3.210gging和nologging
11.3.3storage子句
11.3.4cache和nocache
11.4修改表
11.4.1改变表中的列
11.4.2notnull列约束
11.4.3删除列和标注不用列
11.4.4重命名表
11.4.5改变表特性
11.5删除表
11.6truncatetable
11.7小结
11.8思考与练习
第12章索引
12.1概述
12.2使用索引
12.3索引开销
12.3.1插入行如何影响索引
12.3.2更新行如何影响索引
12.3.3DML和索引
12.4索引的联接、压缩和跳跃
12.5索引和约束
12.6反转键索引
12.7基于函数的索引
12.8位图索引
12.9小结
12.10思考与练习
第13章视图
13.1概述
13.2关系视图
13.2.1创建视图
13.2.2检索视图的定义
13.2.3改变视图的定义
13.2.4删除视图
13.2.5视图中的约束
13.2.6联接视图
13.2.7验证视图
13.2.8通过视图更新和删除数据
13.3内嵌视图
13.4对象视图
13.5物化视图
13.6小结
13.7思考与练习
第14章过程、函数和程序包
14.1概述
14.2过程
14.2.1创建或替换
14.2.2执行过程
14.2.3使用参数
14.2.4局域声明
14.3函数
14.3.1语法
14.3.2返回值
14.3.3确定性
14.3.4常见错误
14.4程序包
14.4.1语法
14.4.2规范
14.4.3主体
14.4.4程序包变量和其他声明
14.5小结
14.6思考与练习
第15章触发器
15.1概述
15.2语句触发器
15.3行触发器
15.4insteadof触发器
15.5系统事件触发器
15.6用户事件触发器
15.7禁用触发器和事务处理
15.8查看触发器信息
15.9事件属性函数
15.10小结
15.11思考与练习
第16章闪回操作
16.1闪回数据库
16.1.1闪回数据库的特征
16.1.2使用闪回数据库
16.1.3闪回数据库的视图
16.2闪回被删除的对象
16.2.1回收站和闪回被删除的对象
16.2.2示例
16.3闪回版本查询
16.4闪回事务查询
16.5小结
16.6思考与练习
第17章管理高可用性
17.1概述
17.2计算机故障保护
17.2.1带有真正应用集群的企业网格
17.2.2绑定数据库崩溃恢复
17.3防止数据故障
17.3.1防止存储故障
17.3.2防止人为错误
17.3.3Oracle的闪回技术
17.3.4基于SQL的LogMiner日志分析程序
17.3.5防止数据损坏
17.4避免计划内停机
17.4.1避免数据改变导致的停机
17.4.2避免系统改变导致的停机
17.5小结
17.6思考与练习
第18章数据传输技术
18.1概述
18.1.1为什么传输数据
18.1.2为什么转换数据
18.2数据泵的体系架构
18.3DataPump引出数据
18.3.1exp如命令的新增功能
18.3.2使用DataPump引出数据
18.3.3DataPump引出数据的示例
18.4DataPump引入数据
18.4.1DataPump引入数据的新增功能
18.4.2使用DataPump引入数据
18.4.3DataPump引入数据示例
18.5小结
18.6思考与练习
附录A数据字典
信息技术的发展一日千里。Oracle公司最新推出的Oracle Database 10g再次向世人证实了这个真理。在Oracle Database 10g产品中,Oracle公司把数据库技术推向了一个新的高度,实现了网格计算架构,掀起了数据库技术的又一场革命。
抱着与时俱进的态度,我们在编写这本教材时,无论是从内容结构和选材上,还是叙述风格和示例上,都力求新颖、充实、清晰、细致。
如果希望了解网格计算的概念和特点,那么可以在本书第1章中得到满意的答案。按照惯例,第2章描述了Oracle Database 10g安装过程中的注意事项和要求。对于熟悉Oracle9i的用户来说,第3章对Oracle Database 10g的新增功能进行了全面、详细的讲述。Oracle Database 10g的体系架构内容,在第4章中进行了完整、权威的描述。学习Oracle,离不开学习SQL、SQL*Plus和PL/SQL,这些内容可以在第5、6、7章中找到答案。要想掌握Oracle中的用户管理技术,可以直接阅读第8章内容。安全性是数据库系统不可缺少的关键技术,第9章由浅入深地对Oracle Database 10g的安全性技术进行了讲述。作为一个数据库专业的程序员或学生,要想编写高效、完整的数据库应用程序,必须深刻地理解事务和锁定的概念,最好的方法就是阅读第10章的内容。要想深入理解Oracle中表的特点,可以直接阅读第11,章的内容。第12章的索引技术,也是用于提高开发人员水平的关键内容。第13章介绍视图,向用户揭示了查看数据库中数据的另外一种方式。如果理解了第14章介绍的过程、函数、程序包和第15章讲述的触发器技术,那么肯定会感叹“OracleDatabaselog的功能真是太强大了!”。第16章中描述闪回技术,让人不得不佩服Oracle公司推出的人性化产品不愧为数据库市场的龙头老大。可用性和互操作性的内容,可以分别在最后两章找到。
Oracle Database 10g的功能非常强大,内容也很多。作为一本基础教程,虽然不可能面面俱到地囊括Oracle Database 10g的所有内容,但是,Oracle Database 10g的核心内容用户都可以通过本书学习和掌握。
本书面向数据库管理和开发的专业人员,可以帮助他们系统学习Oracle Database 10g的系统管理和应用开发,有助于解决实际工作中的各种疑难问题。本书可作为高等院校数据库技术及其相关专业、信息管理与信息系统专业的教材。同时也可以作为数据库管理和应用开发人员的参考书。
本书是集体智慧的结晶,除封面署名的作者外,参加本书编写和制作的人员还有孔祥丰、邱丽、王维、张雪琴、孔祥亮、祁春、陈笑、张立浩、徐帆、牛静敏、成风进和陈晓霞等人。由于作者水平有限,加之创作时间仓促,本书不足之处在所难免,欢迎广大读者批评指正。
作 者
2004年10月