名师讲坛:OracleDBA入门与实战经典pdf下载pdf下载

名师讲坛:OracleDBA入门与实战经典百度网盘pdf下载

作者:
简介:本篇主要提供名师讲坛:OracleDBA入门与实战经典pdf下载
出版社:清华大学出版社
出版时间:2015-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

  《名师讲坛:Oracle DBA入门与实战经典》以最通俗的语言、最简洁的例子、最浅显的道理、最幽默的语言,轻松愉快地讲述了日常工作中经常用到的技术,即便没有任何基础的读者也能快速上手。本书作者从事技术服务与培训十余年,了解企业和读者需求,有丰富的实战与教学经验,并善于将道理简单化,以确保读者看得懂,学得会。

  源自一线的实践经验的结晶,让后来者从容站在前人的肩膀上,站得更高,看得更远!

  1. 专业视频讲解,似老师现场与你娓娓道来,学习过程轻松愉快,学习效率更高!

  2. 200多项经典认证考题与解答,对掌握Oracle DBA极有帮助,可以帮助读者深入理解Oracle DBA。

  3. 备受欢迎的讲师编著,有丰富的实战和教学经验,多次被评为“最受欢迎”的讲师。

  4. 附赠Oracle DBA教学PPT,方便读者学习和使用。

  5. 轻松幽默的职场小故事,简单通俗的语言,即使一点不懂的人也能很快轻松步入Oracle DBA的世界。

内容简介

  《名师讲坛:Oracle DBA入门与实战经典》是一本小说式的Oracle DBA入门教材。本书力求把Oracle数据库从高雅的象牙塔中请出来,使它的“贵族”身份“平民”化,力求打造一本可轻松“读得懂、用得上、学得会”的Oracle DBA实用教材。

  《名师讲坛:Oracle DBA入门与实战经典》是Oracle数据库管理的实用教材。虽然它几乎涵盖了OCP(Oracle认证专家)和OCA考试的全部内容,但重点是实际工作能力的训练,因此本书中的每章都附有大量的例题,而且每道题都给出了答案。为了帮助读者理解,许多概念和例题都给出了商业应用背景,而且很多例题可以不加修改或略加修改后便可应用于实际工作。

  《名师讲坛:Oracle DBA入门与实战经典》设计了一个虚拟人物和一个虚拟项目,利用此人求职、工作和在事业上的成长过程(包括参与和领导项目)来帮助读者理解真正的Oracle从业人员在商业公司中的工作情况。简而言之,本书的特点有:

  1.一本小说式、可轻松阅读的Oracle数据库管理教材;

  2.配备了36讲视频,Oracle专家向您面对面讲解;

  3.适合于OCP、OCA认证学习;

  4.适用于Oracle 11g、1g、9i、8等多个版本;

  5.给出了具体的商业应用背景,增强实战性。

作者简介

  何明,Oracle、Linux高级讲师,十余年Oracle数据库、Linux技术服务与培训经验,先后为西门子、惠普、中国移动、中国网通、中信银行、神州数码、NEC、壳牌(Shell)、中国民航、北电网络、天津地税局和财政局、唐山钢铁集团、索贝数码、TOM在线(香港)、北京邮政局等50余家大中型企业做过培训。

  1982年起,在国家地震局研究所从事数据处理工作,在PDP-11、VAX-780等计算机上进行Fortran、Pascal、C语言和汇编的编程工作。1991年开始在国外从事信息系统管理员和分析员的工作。1999年在新西兰公立理工学院任兼职讲师,为大学本科生讲授数据库课程。

  20余年程序开发和数据库系统管理经验,OCP专业证书(Oracle 8,8i,9i DBA),新西兰梅西大学商业荣誉硕士,新西兰奥克兰大学信息系统研究生,成都理工大学工学学士。


  何茜颖,新西兰奥克兰大学一级荣誉研究生(信息系统),奥克兰大学商业学士(金融、信息系统)。

  从2008年开始一直从事一个金融风险管理联机学习系统(主要开发和部署工具为Oracle Application Express)的设计与开发工作,之前曾是一个维持供应链管理信息系统的主要研发人员。2005至2006年在新西兰最大的建筑公司(Fletcher Building Products Ltd)任职,负责订单、发票和库存信息的处理及客户追踪等。

目录

第0章 Oracle的安装及相关配置
0.1 Oracle的安装
0.2 Oracle 11g中的SQL*Plus
0.3 scott用户及其对象维护
0.4 虚拟环境的创建
0.5 虚拟人物
第1章 Oracle的体系结构
1.1 Oracle引入复杂的体系结构的原因
1.2 Oracle数据库中常用的术语
1.3 Oracle数据库管理系统的体系结构
1.4 Oracle服务器
1.5 Oracle实例
1.6 Oracle数据库
1.7 Oracle其他的关键文件
1.8 建立与Oracle实例的连接
1.9 各种不同的连接方式
1.10 服务器进程
1.11 Oracle执行SQL查询语句的步骤
1.12 共享池
1.13 数据库高速缓冲区
1.14 内存缓冲区顾问
1.15 重做日志缓冲区
1.16 大池和Java池
1.17 内存缓冲区大小的设定
1.18 内存缓冲区信息的获取
1.19 重做日志写进程及快速提交
1.20 数据库写进程
1.21 系统监督进程
1.22 进程监督进程
1.23 校验(检查)点和校验点进程
1.24 归档日志进程
1.25 小 结
1.26 您应该掌握的内容
第2章 数据库管理工具
2.1 Oracle通用安装程序
2.2 交互式启动Oracle Universal Installer
2.3 非交互式启动Oracle Universal
Installer
2.4 Oracle数据库配置助手
2.5 使用Oracle数据库配置助手创建
数据库
2.6 数据库管理员用户sys和system
2.7 SQL*Plus命令行工具
2.8 服务器管理程序命令行工具
2.9 Oracle 9i企业管理器
2.10 Oracle 10g的iSQL*Plus工具
2.11 Oracle 10g企业管理器
2.12 Oracle 11g企业管理器
2.13 将SYSDBA权限授予普通用户
2.14 您应该掌握的内容
第3章 Oracle实例的管理
3.1 初始化参数文件
3.2 静态参数文件
3.3 静态参数文件的创建和例子
3.4 动态服务器参数文件
3.5 动态服务器参数文件的创建和参数的
浏览
3.6 启动数据库
3.7 将数据库置为限制模式
3.8 关闭数据库
3.9 关闭数据库的实际例子
3.10 如何利用诊断文件来监督实例
3.11 Oracle 11g诊断文件
3.12 Oracle 11g的ADRCI
3.13 您应该掌握的内容
第4章 数据字典和控制文件
4.1 数据字典简介
4.2 数据字典中所存的信息
4.3 数据字典的操作和使用
4.4 数据字典视图
4.5 格式化数据字典视图的输出
4.6 如何使用数据字典视图
4.7 动态性能表(视图)
4.8 数据字典应用实例
4.9 控制文件的定义及引入的目的
4.10 控制文件中所存的内容
4.11 从控制文件中获取信息的数据字典
4.12 如何限定控制文件的大小
4.13 怎样查看控制文件的配置
4.14 怎样添加和移动控制文件
4.15 控制文件的备份
4.16 移动控制文件的实例
4.17 您应该掌握的内容
第5章 重做日志文件
5.1 引入重做日志的目的
5.2 重做日志组
5.3 重做日志成员
5.4 日志切换和检查点
5.5 获取重做日志的信息
5.6 添加和删除联机重做日志文件组
5.7 添加和删除联机重做日志
成员(文件)
5.8 清除联机重做日志文件
5.9 利用OMF来管理联机重做日志文件
5.10 联机重做日志的配置
5.11 重做日志配置的应用实例
5.12 您应该掌握的内容
第6章 表空间和数据文件的管理
6.1 Oracle引入逻辑结构的目的
6.2 Oracle数据库中存储结构之间的
关系
6.3 表空间和数据文件之间的关系及
表空间的分类
6.4 表空间中的磁盘空间管理
6.5 创建本地管理的表空间
6.6 还原表空间
6.7 临时表空间
6.8 默认临时表空间
6.9 设置表空间为脱机
6.10 只读表空间
6.11 重置表空间的大小
6.12 手工重置数据文件的大小
6.13 移动数据文件的方法
6.14 移动数据文件的应用实例
6.15 删除表空间
6.16 利用OMF来管理表空间
6.17 创建表空间的应用实例
6.18 您应该掌握的内容
第7章 存储结构和它们之间的关系
7.1 各种类型的段
7.2 存储子句的优先级
7.3 区段
7.4 数据库块
7.5 Oracle数据块的大小
7.6 数据库块的内容和参数
7.7 手工数据块的管理
7.8 自动的段空间管理
7.9 小结
7.10 您应该掌握的内容
第8章 管理还原数据
8.1 还原数据的管理方法
8.2 Oracle使用还原段的目的
8.3 还原段的类型
8.4 自动还原数据管理的概念和配置
8.5 还原表空间的创建与维护
8.6 还原表空间之间的切换
8.7 删除还原表空间
8.8 自动还原数据管理的一些参数及
应用实例
8.9 获得还原数据的信息
8.10 您应该掌握的内容
第9章 创建数据库
9.1 筹划和组织数据库优化而弹性的
体系结构
9.2 创建数据库的先决条件
9.3 创建数据库的方法
9.4 手工创建数据库
9.5 创建数据库过程中的排错
9.6 利用Oracle Managed Files来创建
数据库
9.7 您应该掌握的内容
第10章 表管理与维护
10.1 存储数据的方法和Oracle内置
数据类型
10.2 ROWID
10.3 Oracle数据行的结构
10.4 创建普通表
10.5 创建临时表
10.6 表的维护和管理
10.7 非分区表的重组
10.8 列的维护
10.9 表的截断和删除
10.10 高水线及直接装入数据
10.11 收缩段
10.12 表压缩
10.13 创建表的应用实例
10.14 您应该掌握的内容
第11章 索引的管理与维护
11.1 Oracle引入索引的目的
11.2 索引的分类
11.3 B-树索引
11.4 位图索引
11.5 B-树索引和位图索引的比较
11.6 创建索引
11.7 重建和维护索引
11.8 标识索引的使用情况
11.9 删除索引
11.10 不可见索引
11.11 创建索引的应用实例
11.12 您应该掌握的内容
第12章 管理和维护数据完整性
12.1 数据的完整性
12.2 完整性约束的类型
12.3 完整性约束的状态
12.4 完整性约束的检验与定义
12.5 定义和维护约束的指导原则
12.6 关闭(禁止)和开启(激活)约束
12.7 重新命名和删除约束
12.8 您应该掌握的内容
第13章 用户及系统资源和安全的
管理
13.1 创建用户
13.2 数据库模式
13.3 改变用户在表空间上的配额
13.4 删除用户
13.5 用户的安全控制域
13.6 概要文件
13.7 利用概要文件进行资源管理
13.8 资源限制的设置
13.9 创建资源限制的概要文件
13.10 口令管理
13.11 口令验证函数
13.12 创建口令限制的概要文件
13.13 修改和删除概要文件
13.14 创建概要文件的应用实例
13.15 您应该掌握的内容
第14章 管理权限
14.1 权限的分类
14.2 系统权限
14.3 系统权限的限制
14.4 授予系统权限
14.5 回收系统权限
14.6 对象权限
14.7 对象权限的授权和回收
14.8 与Select Any Table权限相关的
应用实例
14.9 您应该掌握的内容
第15章 管理角色
15.1 引入角色的原因
15.2 角色的创建
15.3 角色的修改
15.4 角色的授权
15.5 建立默认角色
15.6 激活和禁止角色
15.7 角色的回收和删除
15.8 创建和使用角色指南
15.9 Oracle预定义的角色
15.10 用户、概要文件、权限和角色的
应用实例
15.11 您应该掌握的内容
第16章 非归档模式下的冷备份和
恢复
16.1 实验环境的搭建
16.2 数据库的非归档模式和备份的术语
16.3 冷备份(脱机备份)
16.4 冷恢复(脱机恢复)
16.5 脱机备份和脱机恢复的优缺点
16.6 脱机备份的应用实例
16.7 脱机恢复到原来位置的应用实例
16.8 脱机恢复到非原来位置的应用
实例
16.9 您应该掌握的内容
第17章 数据库的归档模式
17.1 归档模式的特点和要求
17.2 将数据库设置为归档模式
17.3 归档进程和归档文件目录的设置
17.4 归档文件和归档进程的管理与
维护
17.5 改变成归档模式的应用实例
17.6 您应该掌握的内容
第18章 数据库的联机备份及备份的
自动化
18.1 联机备份的重要性和特点
18.2 联机备份步骤的演示
18.3 联机备份步骤的解释
18.4 联机备份的其他问题
18.5 联机备份的应用实例
18.6 备份操作自动化的实例
18.7 您应该掌握的内容
第19章 归档模式下的数据库恢复
19.1 在归档模式下的介质恢复
19.2 数据库的完全恢复
19.3 RECOVER命令及与恢复有关的
数据字典
19.4 RECOVER期间归档日志文件的
使用
19.5 获取SQL*Plus命令的信息和
使用方法
19.6 数据库完全恢复方法
19.7 最初处于打开状态下进行的开启
数据库恢复
19.8 最初处于关闭状态下进行的开启
数据库恢复
19.9 恢复没有备份的数据文件
19.10 在关闭状态下进行数据库的
恢复
19.11 最初在关闭状态下进行开启数
据库恢复的实例
19.12 在关闭状态下进行数据库
恢复的实例
19.13 您应该掌握的内容
第20章 数据的移动
20.1 Oracle导出和导入应用程序
20.2 导出应用程序的用法
20.3 导入应用程序的用法
20.4 导出和导入程序的应用实例
20.5 数据泵
20.6 不同用户及不同表空间之间
数据的移动
20.7 将Oracle的数据传给其他软件
(系统)
20.8 将其他软件(系统)的数据导入
Oracle
20.9 数据泵操作的自动化
20.10 您应该掌握的内容
第21章 闪回技术、备份恢复与优化
21.1 闪回已经删除的表
21.2 闪回错误的DML操作
21.3 非当前的还原表空间的恢复
21.4 只读表空间和临时表空间的恢复
21.5 索引表空间的恢复
21.6 加快数据表空间的恢复
21.7 您应该掌握的内容
第22章 设计、程序及内存的优化
22.1 优化概述
22.2 优化系统设计的基本原理
22.3 以命令行方式获取系统的设计
22.4 优化应用程序和SQL语句的
基本原理
22.5 以命令行方式获取SQL语句执行
的信息
22.6 反转关键字索引
22.7 基于函数的索引
22.8 导出存储程序的源代码
22.9 SGA内存的优化
22.10 PGA内存的优化
22.11 将程序常驻内存
22.12 将数据缓存在内存中
22.13 将数据常驻内存
22.14 将查询的结果缓存在内存
22.15 SGA和PGA内存的设置与它们
之间内存的转换
22.16 您应该掌握的内容
第23章 I/O优化
23.1 输入/输出优化概述
23.2 表空间与输入/输出优化
23.3 数据文件量的监控与诊断
23.4 表和索引一级的优化
23.5 删除操作对还原段的冲击及
解决方法
23.6 重做日志的优化
23.7 通过移动表和索引来减少I/O竞争的
实例
23.8 您应该掌握的内容
第24章 EM、iSQL*Plus和数据库
自动管理
24.1 Oracle 10g和Oracle 11g企业管
理器简介
24.2 Oracle 10g和Oracle 11g数据库自动管理简介
24.3 数据库自动管理中的常用术语和
统计级别
24.4 自动工作负荷资料档案库
24.5 AWR基线
24.6 获取快照的信息与创建基线
24.7 AWR报告的创建与分析
24.8 不同时间段的AWR数据的比较
24.9 自动数据库诊断监视器
24.10 您应该掌握的内容
第25章 SQL语句追踪与优化
25.1 发现有问题的SQL语句及执行
计划的概念
25.2 利用AUTOTRACE追踪SQL
语句
25.3 执行计划的应用和EXPLAIN PLAN
命令
25.4 DBMS_XPLAN 软件包与编译树
简介
25.5 数据字典V$SQL与编译树应用
实例
25.6 位图连接(Bitmap Join)索引
25.7 手工设置排序区的实例
25.8 您应该掌握的内容
结束语
鸣谢
参考文献

前言/序言

  许多想进入Oracle数据库领域的初学者,为了能成为Oracle专业人员而投入了大量的金钱、时间和精力,但最终都是半途而废。其实他们本来可能会成为优秀的Oracle数据库管理员或优秀的Oracle数据库开发人员,但错误的培训理念和落后的培训方法加之糟糕的培训教材和平庸的教师使他们误入了歧途,并彻底扼杀了他们在这方面的才华,摧毁了他们的自信心。不少培训中心以应试的方式培养了一批又一批的纸上数据库管理员和开发员。

  这种现状是整个中国IT培训行业的悲哀。其实,教师这个职业有点像医生,医生把握着病人的生命,教师影响着学生的未来。一个平庸的教师或一本平庸的教材要浪费许多甚至是成千上万个学生宝贵的资源(时间、金钱和精力),更甚者会断送一些学生的美好未来。

  培训或学习一门手艺实际上也是一种投资(需要投入大量的时间和精力,也包括金钱)。作为一种智力投资,投资者(读者)在投资之前,当然想知道市场的现状和未来的走势。智力投资,要比投资在不动产(如房地产)上灵活,因为投资者可以带着这些无形资产走遍海角天涯。

  Oracle是一个适合于大中型企业的数据库管理系统,其市场占有率是所有数据库管理系统中最高的,而且在可以预见的将来,它的霸主地位也是无法动摇的。它主要的用户是银行、电信、移动通信、航空、保险、金融、跨国公司和电子商务等。根据WTO的有关协议,从2005年起,我国在以上多数领域要逐年开放市场,并要在几年之后开放全部市场。因此,随着这些领域外资的大量涌入,在不远的将来对Oracle数据库管理员和开发人员的需求将会急剧增加。而在国外Oracle数据库管理员和开发人员的工资都相当高,这些公司不可能也没有能力从国外带来大批的Oracle从业人员。

  回首二十多年的IT工作生涯感触良多,从大学刚毕业开始,从底层的程序员做起一直到写第一本Oracle的培训教材为止,算起来已有整整一代人的时间了。说句时髦的话是“二十年磨一剑”;说句不好听的话,二十多年还没混个一官半职,还在IT工作的第一线与年轻人一起冲锋陷阵也算够“背”的了。

  这二十多年,我最大的收获之一就是对IT领域特别是Oracle数据库领域的深刻领悟。虽然这种领悟对我个人可以说已经太晚了(有点像结了婚才知道怎样谈恋爱,大学毕业了才知道怎样念大学似的),但是相信这种领悟以及我个人的一些工作经验和教训会帮助许多读者少走不少弯路。这也算是我做的一件善事。我几乎没烧过香也没拜过佛,帮助读者少浪费些时间、精力及金钱也算是积点阴德吧。

  IT领域是变化最快的领域,有不少学者或专家认为平均每两到三年就有百分之五十的知识需要更新。回首二十多年的IT工作生涯,我发现许多真正核心的东西很多年都没变过。还是以Oracle为例,从Oracle 7到现在的Oracle 11g,其体系结构甚至基本命令几乎没什么变化。之所以许多人认为每次升级变化都很大,是因为第一次学习时就没有完全理解,因此每次升级时都跟学习新的一样。所以在此再次强调:一定要把软件最核心的内容彻底掌握,“万变不离其宗”,这样无论软件怎样变化,您都能驾轻就熟,轻松掌握。

  这本书是我从二十多年曲折的IT工作经历中提炼出来的,是以一位Oracle从业人员的视角来介绍在实际工作中所需的Oracle知识和技能。本书尽可能介绍工作中常用的和相对比较稳定的Oracle知识和技能。

  现在,许多媒体上都刊登了不少莫名其妙的招聘广告,如果有人按照广告上的标准来要求自己,学到退休能达到招聘的要求就不错了。但是又有不少培训中心利用这些招聘广告做宣传,办起了一个又一个的速成培训班。因此,本书还要介绍一些Oracle行业中鲜为人知的陷阱和误区,从而使读者避免被那些莫名其妙的招聘广告和一些所谓的“成功人士”的豪言壮语引入歧途。

  目前多数培训中心的Oracle数据库管理(有的也称为Oracle体系结构等)的培训时间为2~4天,Oracle公司为5天,每天6小时。如果您是一个真正的初学者,想在这么短的时间内学会Oracle数据库管简直是“天方夜谭”。在国外,这一部分培训对于初学者的培训时间一般最少为4周(对SQL部分的培训至少为3周),而且硬件和软件环境比我知道的任何一个国内培训机构都好。例如,绝大多数国外培训机构都会提供至少一个如CBT(Computer Based Training)或Oracle Simulators(模拟器)之类的多媒体模拟环境,但在国内的培训机构中我还没见过。尽管这样,学生还是累得叫苦连天。

  在Oracle的学习和培训中也要坚持“科学发展观”,即要按科学的规律来进行培训和学习。以Oracle公司的5天培训为例,这种培训是为已经具有一定Oracle实际工作经验的Oracle从业人员设计的。Oracle的这部分student guide共两本(Oracle 8为3本),与大学的教科书的厚度相当。读者认真想一下就能意识到,即使是小说,在那么短的时间内完全理解也不是一件容易的事,更何况是一门新兴的科学了。正如OCP证书所称呼的那样,Oracle的OCP培训是培训Oracle专业人员的,即培养专才的。培养专才需要时间,根本不能速成,更不能立竿见影。专才的培养需要时间,需要好的教师、好的教材和合适的软硬件环境。

  Oracle系统在业内有“贵族系统”的美名,以其培训和教材之昂贵、课程之难学而闻名。由于中国目前的人均收入与发达国家相比还有很大的距离,虽然许多人知道Oracle系统是一个应用很广的优秀的数据库管理系统,但面对如此昂贵的学费和高门槛也只得放弃学习了。

  本书的目的就是把Oracle数据库从高雅的象牙塔中带出来,使它的“贵族”身份“平民”化,为普通人提供一套能买得起,而且容易读懂的Oracle数据库实用教材。

  本书是Oracle数据库管理的实用教材。虽然它几乎覆盖了OCP或OCA考试的全部内容,但其重点是实际工作中能力的训练。本书的内容和例题设计由浅入深,为了消除初学者对计算机教材常有的畏惧感,本书把那些难懂而且又不常用的内容尽量放在后面章节,并删除了个别非常难懂而且一般的Oracle工作人员都很少用到的内容。根据我多年的IT工作和教学经验,一般在某个系统中所使用的功能是很少的,相信还不到一半。因为绝大多数难懂的操作可以通过其他操作的组合来实现。

  与其他同类书籍相比,本书的第一个特点是,本书并不是一条命令一条命令地简单介绍,而是把相关的命令有机地组合在一起来介绍。例如,在执行一条Oracle命令之前,先介绍使用什么命令来格式化显示输出,以使结果显示得更加清晰;接下来,再介绍使用什么命令来查看当前数据库的相关信息;之后,再介绍怎样执行所学的Oracle命令;最后,还要介绍使用什么样的方法来验证所执行的命令是否真的成功等。与其他很多同类书籍不同,书中几乎所有的例题都是完整的,读者只要按照书中的例子操作,一定会得到与书中所给相同(或相似,因为每个数据库系统的配置可能略有不同)的结果。

  本书的第二个特点是,为了消除初学者对Oracle教材常有的畏惧感,本书并未追求学术上的完美,而是使用生动而简单的生活实例来解释复杂的计算机和数据库概念,避免用计算机的例子来解释计算机和数据库的概念。

  本书的第三个特点是,它是自封闭的,即读者在阅读此书时不需要其他的参考书(除了必备的SQL知识外,读者可参阅我的另一本Oracle入门书——《从实践中学习Oracle/ SQL》)。

  由于以上的设计,本书对学生的计算机专业知识几乎是没有任何要求的。对以前培训学生的跟踪回访表明,这样的设计是合理的。

  本书中多数概念和例题都给出了商业应用背景,且许多例题是以场景或故事的形式出现的,同时很多例题和它们的解决方案是企业中的数据库管理员或数据库开发人员在实际工作中经常遇到或可能遇到的。因此,很多例题不加修改或略加修改后便可应用于实际工作中。

  现在,国内的Oracle培训有些误入歧途。许多参加培训的学生认为只要交了钱,参加了培训课程就可以学会Oracle,因为不少培训机构就是这样宣传的。培训是一个互动的过程,无论多好的老师、多好的教材都没有办法保证那些不学习的人掌握老师所讲授的内容。科学已经证明,一个人要想掌握课堂上所学的内容,其所用的时间应该至少为1∶3,即每听1小时课至少要用3个小时来理解和消化所听的课程。

  因此,希望读者在学习本书之前,最好安装上Oracle服务器并设置好实验环境,在阅读本书时,最好把书上的例题在计算机上做上一两遍。这些例题是经过仔细筛选的,对读者理解书中的文字叙述非常有帮助。本书与OCP或OCA考试的第二门(Oracle数据库管理/体系结构)的级别相当,但重点放在训练学习者的实际工作能力上。读者在接近完全理解了该书的内容,再做一些模拟考试题后,通过OCP或OCA的第二门考试应该没什么问题(Oracle 10g只考一门就可以通过OCA认证)。

  本书首先教读者设置一个与真实的生产数据库相近的模拟环境,读者通过对这个与真实的生产数据库相近的数据库的操作,可以获得对真实的生产数据库进行维护和管理的实际知识与技能,成为真正的数据库管理员而不是只能说不能干的“纸上数据库管理员”。

  为了帮助读者,特别是没有从事过IT工作的读者了解商业公司和Oracle从业人员的真实面貌,在书中设计了一个虚拟人物“金元宝”,利用此人的求职、工作和在事业上的成长过程来帮助读者理解真正的Oracle从业人员在商业公司中如何工作,以及公司的Oracle数据库系统的现状。

  现在,社会上常说的一句话是,“一个项目可以带出一个队伍”。在本书中也设计了一个虚拟的项目。该项目是由某报上的一篇文章引起的,这篇文章的题目是《中国妇女解放运动的先驱——潘金莲》。最初有学者想用科学的方法证明潘金莲到底是不是中国妇女解放运动的先驱。之后,由于民众的热忱空前高涨,参加讨论的人越来越多,争论也越来越激烈。因此,作为中国妇女解放运动的先驱的候选人也在不断增加,最后该项目定名为“寻找中国妇女解放运动的先驱工程”,简称“先驱工程”。

  从第6章开始,本书的虚拟人物“宝儿”就要为这个浩大的先驱工程创建所需的几乎所有Oracle数据库组件,从数据表空间、还原表空间和临时表空间等开始,一直到创建Oracle用户为止。宝儿还要对这些组件进行日常管理和维护。宝儿在先驱工程工作的过程,除了帮助读者掌握相关的Oracle操作技能外,还可以帮助读者理解Oracle从业人员在实际的项目中是如何工作的。

  也许有的读者会想:“如果我遇上像先驱工程那样没谱的项目,我就不干了。”其实这种想法是错误的。实际上,一个没谱或失败的项目照样可以带出一支好的技术队伍,甚至带出一批专家来。另外,在一个项目开始时又有几个人能高瞻远瞩知道它的结局呢?一个项目的高科技含量与该项目有没有谱无关。

  本书中的人物、项目和公司等都是虚构的,因此本书中有不少虚构的故事,在这些故事中使用了不少夸张性的语言,其目的只是增加读者的兴趣。许多人认为学习Oracle数据库管理系统是一件既枯燥又令人生畏的事,希望本书的写法能在枯燥的Oracle学习与娱乐之间达到某种程度的平衡,从而不至于使读者在整个学习过程中神经一直绷得很紧。

  本书是我用心所写。我个人的原则是要么不做,要做就要尽心尽力地做。一个人的精力有限,不可能什么事都做,而且做得又很好(除非在梦中)。所以在写书时我也本着宁可不写书,但绝不能写烂书的原则。因为烂书可能要浪费成千上万名读者的宝贵时间,甚至断送一些读者的美好未来,写烂书就像做假药一样等于是在做损。

  当读者阅读本书时,可能会发现本书没有指定的练习题。这是因为几乎每一章都有很多例题,读者只要把这些例题做上一两遍也就达到了练习的目的。另外,本书在每章的结尾处并未给出思考题,而使用了“您应该掌握的内容”这样的句子。之所以没有使用“思考题”这个词是为了避免束缚读者的想象力。使用“您应该掌握的内容”这样比较宽松的句子的好处是,当您思考所列出的内容时只要理解它们就可以了,至于如何解释和回答它们已经变得不重要了。

  《从实践中学习Oracle/SQL》出版后,有些读者发来电子邮件建议在每一章的开始以简短的方式列出这一章的目的或重点,但经过仔细的权衡还是没有加。主要原因是避免增加书的篇幅。如果读者有类似的阅读习惯可以在读一章之前浏览一下这一章的目录和该章末尾的“您应该掌握的内容”,就可以清楚这一章要讲的内容了。

  如果读者安装和使用过Oracle系统,本书第0章的大部分内容可以不看。但是对虚拟环境的配置和虚拟人物的介绍最好看一下,这样对理解本书的内容会有所帮助。如果您不是数据库管理员而且时间又很紧,本书的第9章、第13~15章可以暂时不看,因为这些章所介绍的主要是数据库管理员所需的知识和技能。

  书作为一种古老的单向交流工具,它的承载能力是很有限的,因此产生二义性几乎是不可避免的。为了减少二义性的产生,我曾把本书中许多章的初稿分别发给了多个我所执教的培训机构的学生们,并根据他们阅读后反馈回来的意见对相关的章节做了相应的修改。其中有些章节是全部重写甚至重写了几遍。尽管做了这些努力,但也很难保证该书像武侠或爱情小说那样容易理解,因为它毕竟不是一本消遣的书。

  本书既可以作为学校或培训机构及企业的Oracle数据库管理课程的教材,也可作为自学教材。

  本书的编写目的有以下三个。

  (1)把那些没有计算机或Oracle背景但想加入IT产业的人带入Oracle这个行业中来。

  (2)为那些有计算机或Oracle经验但没受过Oracle正规培训的人提供一套系统而完整的Oracle培训教材。

  (3)为那些非计算机人员,如管理或行政人员,了解和使用Oracle提供一套完整易学的培训教材。

  本书中的绝大多数例题都分别在Oracle 8的8.0.4和8.0.5,Oracle 8i的8.1.5和8.1.7等版本上测试过。在定稿时,所有的例题都在Oracle 9i的9.0.1或9.2版本上测试过。最后,绝大多数例题又都在Oracle 10g和Oracle 11g上重新测试过。因此对读者所使用的Oracle版本几乎没什么要求。

  参与本书编写的有何明、何茜颖、王莹、万妍、王逸舟、牛奎奎、王威、程玉萍、万群柱、王静、范萍英、王洁英、刘飞、王超英、万新秋、王莉、黄力克、万洪英、万节柱、万如更、李菊、万晓轩、赵菁、张民生、高盼、杜蘅等。在此对他们辛勤和出色的工作表示衷心的感谢。

  最后,预祝读者能够顺利地乘上Oracle这叶方舟(也许是“贼船”)!

  何 明