全书共19章分为6个部分,全面覆盖Oracle9i基础、创建Oracle9i数据库、Oracle9i的调整、使用Olacle9i工具和公用程序、综合应用等。书中从Oracle9i的基本概念讲起,逐渐深入:在本书的最后通过一个综合的数据库应用程序,对本书中前面介绍的知识综合应用,从而更加方便读者在工作中使用书中讲到的知识。本书还详细介绍了Orale9i的一些新的特性。\r\n 本书讲解翔实内容丰富,适合广大初学Oracle数据库的开发者学习使用,同时对于Oracle数据库管理员也不乏参考价值。
译者序\r\n前言\r\n简介\r\n\r\n第一部分 学习Oracle9i的基础知识\r\n\r\n第1章 Oracle9i介绍\r\n\r\n1.1 Oracle--一种关系型数据库\r\n1.2 介绍SQL\r\n1.3 Oracle9i的特性\r\n1.4 Oracle工具介绍\r\n1.5 复习题\r\n1.6 测试题\r\n1.7 下章简介\r\n\r\n第2章 SQL语言基础\r\n\r\n2.1 SQL语言入门\r\n2.2 登录到数据库\r\n2.3 SQL编辑器\r\n2.4 SQL介绍\r\n2.5 复习题\r\n2.6 测试题\r\n2.7 实践\r\n2.8 下章简介\r\n\r\n第3章 PL/SQL基础\r\n\r\n3.1 PL/SQL介绍和使用它的理由\r\n3.2 PL/SQL基本语法\r\n3.3 PL/SQL的调试\r\n3.4 PL/SQL的异常处理\r\n3.5 复习题\r\n3.6 测试题\r\n3.7 实践\r\n3.8 下章简介\r\n\r\n第二部分 创建基于Oracle9i的应用程序\r\n\r\n第4章 创建Oracle9i数据库\r\n\r\n4.1 关系型模式设计和数据库约束条件\r\n4.2 创建简单应用程序数据库\r\n4.3 小结\r\n4.4 复习题\r\n4.5 测试题\r\n4.6 实践\r\n4.7 下章简介\r\n\r\n第5章 创建Oracle窗体\r\n\r\n5.1 使用Developer 6.0或 6.i创建窗体\r\n5.2 将窗体转换成HTML\r\n5.3 小结\r\n5.4 复习题\r\n5.5 测试题\r\n5.6 实践\r\n5.7 下章简介\r\n\r\n第6章 创建 Oracle报表\r\n\r\n6.1 使用Developer 6.0或 6i创建报表\r\n6.2 使用Oracle SQL*Plus创建报表\r\n6.3 将报表转化为HTML格式\r\n6.4 配置Windows图标\r\n6.5 小结\r\n6.6 复习题\r\n6.7 测试题\r\n6.8 实践\r\n6.9 下章简介\r\n\r\n第7章 高级SQL技巧和SQL*Plus报表特性\r\n\r\n7.1 高级SQL技巧\r\n7.2 表的连结条件\r\n7.3 SQL于查询\r\n7.4 高级SQL*Pius报表技术特性\r\n7.5 小结\r\n7.6 复习题\r\n7.7 测试题\r\n7.8 实践\r\n7.9 下章简介\r\n\r\n第8章 使用Oracle9i创建Web站点\r\n\r\n8.1 规划一个Web站点--购买汽车的网站\r\n8.2 Oracle9iAS介绍\r\n8.3 基于Web的策略\r\n8.4 小结\r\n8.5 复习题\r\n8.6 测试题\r\n8.7 实践\r\n8.8 下章简介\r\n\r\n第9章 使用PL/SQL创建Web站点\r\n\r\n9.1 使用PL/SQL\r\n9.2 建立Web站点\r\n9.3 小结\r\n9.4 复习题\r\n9.5 测试题\r\n9.6 实践\r\n9.7 下章简介\r\n\r\n第10章 使用Java创建 Web站点\r\n\r\n10.1 什么是Java VM\r\n10.2 Java开发工具\r\n10.3 Java的使用\r\n10.4 用Java制作Web站点\r\n10.5 小结\r\n10.6 复习题\r\n10.7 测试题\r\n10.8 实践\r\n10.9 下章简介\r\n\r\n第11章 在Apache/Oracle9iAS上使用PL/SQL页、Java页和XML\r\n\r\n11.1 Oracle9iAS/Apache Web服务器安装选项\r\n11.2 使用PL/SQL\r\n11.3 使用Java\r\n11.4 使用XML\r\n11.5 小结\r\n11.6 复习题\r\n11.7 测试题\r\n11.8 实践\r\n11.9 下章简介\r\n\r\n第12章 使用Web开发软件Portal v3.0( WebDB)\r\n\r\n12.1 什么是Portal v3.0/WebDB\r\n12.2 使用Portal v3.0来构造应用程序\r\n12.3 创建Portal v3.0应用程序\r\n12.4 小结\r\n12.5 复习题\r\n12.6 测试题\r\n12.7 实践\r\n12.8 下章简介\r\n\r\n第三部分 Oracle9i的调整部分\r\n\r\n第13章 Oracle9i索引选项\r\n\r\n13.1 理解索引\r\n13.2 B-树索引\r\n13.3 IOT(索引组织表)概述\r\n13.4 在现有的应用程序上实现IOT\r\n13.5 复习题\r\n13.6 测试题\r\n13.7 实践\r\n13.8 下章简介\r\n\r\n第14章 Oracle9i应用程序的 SQL调整\r\n\r\n14.1 什么是SQL解释平台\r\n14.2 使用存储概要\r\n14.3 有用的init.ora参数设置\r\n14.4 SQL编码方针\r\n14.5 小结\r\n14.6 复习题\r\n14.7 测试题\r\n14.8 实践\r\n14.9 下章简介\r\n\r\n第15章 Oracle9i分区特征\r\n\r\n15.1 什么是分区\r\n15.2 Oracle9i的分区选项\r\n15.3 范围分区\r\n15.4 哈希分区\r\n15.5 复合分区\r\n15.6 目录分区\r\n15.7 Oracle9i索引分区选项\r\n15.8 小结\r\n15.9 复习题\r\n15.10 测试题\r\n15.11 下章简介\r\n\r\n第四部分 使用Oracle9i工具和公用程序\r\n\r\n第16章 在开发区中使用TOAD\r\n\r\n16.1 TOAD的历史\r\n16.2 使用TOAD主界面\r\n16.3 使用TOAD创建SQL和PL/SQL\r\n16.4 使用 PL/SQL调试器\r\n16.5 使用其他TOAD公共应用程序\r\n16.6 小结\r\n16.7 复习题\r\n16.8 测试题\r\n16.9 实践\r\n16.10 下章简介\r\n\r\n第17章 使用SQL*Loader、外部表、Export和 Import\r\n\r\n17.1 什么是SQL*Loader\r\n17.2 什么是外部表\r\n17.3 使用Export和Import\r\n17.4 小结\r\n17.5 复习题\r\n17.6 测试题\r\n17.7 实践\r\n17.8 下章简介\r\n\r\n第18章 使用Log Miner\r\n\r\n18.1 什么是Log Miner\r\n18.2 使用Log Miner的用户界面\r\n18.3 Log Miner的实际应用\r\n18.4 Oracle9i增强功能\r\n18.5 小结\r\n18.6 复习题\r\n18.7 测试题\r\n18.8 实践\r\n18.9 下章简介\r\n\r\n第五部分 综合应用\r\n\r\n第19章 综合应用:一个销售自动跟踪应用程序\r\n\r\n19.1 应用概念\r\n19.2 销售跟踪应用程序\r\n19.3 本书总结\r\n\r\n第六部分附录\r\n\r\n附录A 测验题答案\r\n附录B Oracle9i体系结构和销售跟踪应用程序完整安装脚本\r\n附录C 软件Web站点\r\n术语表
为什么数据库管理员总是很谦逊呢?这是因为在智力至上的大多数人眼中,数据库管理员这份职业并没有什么了不起的。现在Oracle方面的图书已经有了数百种之多,但是其中很少有为初学者提供帮助的。Dan在这方面做出了新的努力,他为初学者向数据库管理应用的开发者提供了转化的媒介和极重要的参考实例。
我记得我是在1987年开始成为一名数据库管理的初学者。Brad Brown和Joe Trezzo在1987年的时候常常喜欢和我开玩笑;他们在我去吃午饭的时候,在我的计算机上键入了iorI(这是一个足以摧毁整个数据库系统的命令)。下一步屏幕上将会出现一条声明“Are yousure Y/N?”他们就键人“Y”,然后等我回来。我所需要作的全部工作就是单击“Enter”键并且将整个数据库清除。当我吃完饭回来,他们立即要我单击“ Enter”键来启动他们想在我的计算机上运行的某个内容。当我就要单击“Enter”键的时候,他们又及时地阻止了我。在我被他们吓了个半死并且几乎就准备开始重新初始化数据库的时候,他们很开心地笑并且坚持说:“一名优秀的数据库管理员需要能够正确地估计情况,在已有的规范下行动并且快速准确地做出反应,我们就是想看看你的反应。”他们是对的——一名优秀的数据库管理员的确需要像其他的一些专业人员一样,有能力去适应和克服困难。这就是我在成为一名优秀的数据库管理员的过程中接受的第一堂课。它使我记得了ior I这条命令实际上并没有重新初始化我的数据库。说明了Brad和Joe在Oracle正在执行关闭过程中,运行了一条Brad写的、可以用来复制数据的基础程序。
我的第二条经验是来自于对睡眠的剥夺。我们过去常常不得不整晚不睡觉来运行某一种查询,这是因为当时使用的系统并没有足够快的速度来处理问题。我们运行着286的PC机,把它们的机箱打开,用风扇对着扩展内存卡和其他板卡猛吹,以避免它们因为过热而熔化。虽然我们仅仅将这些板卡从它们原来的机箱里取出并且一层层地用不再是人们常说的那种机器隔板架堆砌起来,但它就是我们所能够得到的取代大型机的机器了。在转换Oracle系统的时候,我们通常只能运行其中的一部分。
Ron Janus是我们部门的领导,他终于决定放弃大型机方案,而转向在客户服务器上使用Oracle。存在的惟一问题是这个方案以前是不存在的;而不仅仅是硬件、Oracle的客户/服务器系统,当然也不是体系结构,这个问题可以通过复制另外一台客户机而得到解决。那么解决方案是什么呢?就是雇佣 Brad、 Joe和Oracle公司人员(在我们准备TUSC的时间内)来进行发明创造——这一点我们真的做到了。我是一名初学者,但我和往常一样经常整晚不休息,非常努力地跟踪学习,我们开始逐渐摸索到一条可以使查询更加迅速的途径,这个方法是我们在某大晚上的一次意外中发现的。当时我忘记了一张具有于查询关联性质的表,然而在恢复的过程中,原来需要四个小时的查询竟然缩短到四分钟——于是关联于查询方法诞生了!问题的关键在于如果我不是一名初学者的话,我将不会有这样一个发现。作为一名初学者,我可以跳出原有的一些框框,从而得到比较重要的发现。因为我根本就不知道原来应该是什么样子的。这就是作为初学者所拥有的优势。
作为一名初学者所存在的劣势就是我的下一个问题。有某天晚上,在我正在装载数据的时候发生了中断。我开始删除数据并且不久就被这种周而复始的相同的删除操作搞得疲惫不堪。十是我决定使用动态删除命令。这个奇妙的命令使我犯下了一个致命的错误,以至于在这个问题上,我所受到的伤害远远比其他的IT专家们要多得多。在我重新恢复整个数据库的时候,我简直不能描述我所承受的痛苦、压力和失望。这使我失去了自信,我认为我将不能再沿着数据库管理员的轨迹走下去。在我的整个一生中很少有比那天晚上还要糟糕的时候了。但是又一次地,我播种了泪水,同时收获了快乐。我发现了一种新的方法用来恢复中断的数据,而且在这之前什么事情也不需要做。这再一次说明了作为初学者的优势,它将引导我们得到重大的发现。
我最后终于成为了一名越来越熟练的数据库管理员,但是在UNIX系统上,我依旧处在很危险的技艺生疏的水平上(关于存在的危险,我了解的很多)。我在Data General的UNIX系统上安装了Oracle7,我可以确信一名用户需要6个月的时间来深入了解Oracle7,才能梳理出他们的计划。这样可以省下所有用来雇佣数据库管理员的费用,而我只需要在每个周末将自己的数据装载到Oracle7中。这本来是一个正确的决定,但是这又是一个在压力下来测试我的忍耐力的决定(用户是一名非常优秀的数据库管理员 June O’Brien)。
Data General机器上的 Oracle版本被证明是不成熟的(我以前安装的 Oracle7都运行得很好,但是运行在UNIX系统上却是别有一番滋味)。我在一个顶部以‘C’开头,名叫JakeVan der Vort(现在是 TUSC VP)的帮助下,开始多次重建和重新连接 Oracle的内核,最后我不得不停止下来。我不得不在我每次试图重新安装的时候,多次移除整个Oracle数据库系统。我发现了一个新的很重要的 UNIX命令rm-r,它可以移除整个 Oracle系统目录(Oracle的主目录)和它以下的所有于目录。这就使删除和重新启动变得非常迅速。
凌晨3点左右,我在根目录下结束了工作,然后开始运行rm-r命令,我想我应该是在Oracle的目录下面。当我注意到一些被删除的文件(比如一些操作系统的文件)的时候,我立即手忙脚乱地中止了这条命令,可是这一切还是太迟了。我不得不删除整个操作系统。我不得不叫来了Data General并且又增加了一次自己遇到的令人感到羞耻的经历。我不得不承认我删除了所有的文件,并且他们首先需要重装系统。在被狠狠的责骂之后,他们为我重装了系统(我很认真的请求他们保持沉默,但他们还是告诉了所有的人我做了这样一件事)。当时我的感觉就恰似一个小孩子在刚刚打破了父母交待的不要去碰的某样东西之后,向父母去承认错误。从这件事里我得到了经验教训,并且再也没有一个初学者会如同我当时的感觉那么糟糕。作为一个初学者(这次是在UNIX系统上),我感到了痛苦和羞辱。
当然,如果不想让别人知道你是一个初学者,你可能就会想装成一个专家的模样(但这并不是一个好主意)。即使你是一个初学者,如果使用下面列举出来的这些短语,别人也许会误认你是一个专家。
“文件是什么?”
“假如它不能正常工作,你可以将它中止、关闭,然后重新启动,还可以通知我。”
“对于某种原回,密码就是manager。
“问题我可以解决,我现在不是打电话寻求帮助,而是在打电话听音乐。”
通过学习成为专家吧,不要再伪装成一个专家的样子,从 Dan Hotka那里可以学到很多。你不用再次去体验以前的数据库管理员所走过的艰辛道路。我说了这么多自己的经历,就是为了让你可以看到作为一名初学者所拥有的优势。我作为一名初学者所经历的那些挫折和痛苦好比是洒下的种子,它帮助我成长为一名专家。你必须在知识和经验上都得到发展和锻炼,如果缺少其中的任何一个,都将使你成为一名危险的数据库管理员。
好好阅读专家Dan Hotka给我们带来的这本书!从中可以迅速增长知识并且学习到Dan的经验。这种极其重要的结合为你指明了一条道路,使得知识可以很快地达到更高的水平。作为一名数据库管理员的初学者,你将会遇到各种令人感到羞辱的经历,这可以很好的解释为什么数据库管理员总是很谦虚。但是,在过去的十年内,世界生产力得到了迅速发展,这其中就包含了数据库管理员们不知疲倦的工作,并且献身于他们的事业所做出的成绩。