Brian Peasland:充分认识和利用Oracle 11g

作为一名独立的Oracle数据库顾问,以及SearchOracle.com特约的备份和恢复以及数据库设计专家,Brian Peasland对Oracle数据库有着充分的了解。他用了几天的时间来帮助公司和个人更充分地利用Oracle的旗舰数据库管理系统。对于最新版的Oracle数据库,11g版,目前正在beta测试中。SearchOracle.com认为现在正是时候对Peasland进行访谈,了解一些Oracle的计划变更和升级的信息。

在这篇访谈中,Peasland讨论了为什么他没有大量利用11g中计划的XML升级,并且谈论了这样的一个事实,即他曾经交谈的很多用户都希望下一个版本的PL/SQL可以包含一种更好的方式来追踪PL/SQL呼叫栈。Peasland还为那些准备考取10g的Oracle认证专家考试的人们提出了一些建议,还为数据库新手和老手们,以及想要正确搞定Database 10g的人们提出了一些关键词。

Oracle说他的旗舰数据库管理系统的下一个版本–Oracle Database 11g–包括新的有关XML升级。他们把注意力集中在XML DB上,还包括了一个新的XML二进制数据和新的XML索引。这些种类的更新重要吗?为什么或者为什么不呢?

Brian Peasland:对我来说,数据库中大多数的XML的内容都不十分重要,因为XML是以层次格式组织的,这一点在20世纪80年代得到了证明,数据的层次格式不支持快速的有效率的数据检索。当他们开始把XML格式应用到关系型数据库的时候,我一直觉得很迷惑。我们不能简单地在一个表中查寻一点XML数据,并且与其它的相比又快又简单。通常这样做意味着你必须把数据散开。我从来不喜欢把XML放到数据库里面,我也从来没有必要这么做。我确实知道有些人需要这样做,并且这样做也对他们特殊的应用程序有意义。但是他们存储XML更像是有些人在数据库中存储Word文档或者存放.wav文件。他们没有把它作为以后可供查询的共有数据来存储。他们想要真正地存储XML为完整的文件,不是一段一段的数据。

为什么你提到的那些人要把XML作为完整文件存储?

Peasland:例如,新版本的微软Office将会把XML作为它的标准格式。取代原先数据库中使用的Word类型的资本文件格式,也许他们想要在数据库中将这种新的XML格式作为文档存储。虽然,他们可以运行类似Oracle文本这样的工具来进行快速文档的快速搜索。但是这是一种与我所见到的一些人想要尝试的方式–他们想要将综合数据,例如员工列表,以XML格式存储在数据库中–完全不同的使用。对我来说,那些代表了项目实体的属性和数据行应该存储在一个关系表中。

你希望在Database 11g或者其它Oracle的未来版本的数据库管理系统中,PL/SQL发生什么变化?

Peasland:许多人这些天都在询问一种更简单的方式来追踪PL/SQL呼叫栈。实话实说,我也不确定为什么,但是我确实遇到了想要这样做的人。一个家伙不禁想要追踪,还想要能够存储它。DBMS_DEBUG的bug工具已经存在很长一段时间了,用它,你可以追踪你的PL/SQL呼叫栈,但是它非常难以使用。SQL开发人员已经在这方面进行努力了。但是数据库中有一些这样的东西还是比较好的。

你个人还希望看到什么其它的PL/SQL变化?

Peasland:我曾期待的一个变化就是在SQL Server中真的可以让某些事情变得非常简单,但是在Oracle的PL/SQL中就不是这样了。在SQL Server中,我可以做一个存储过程,让它刚好能够吐出那些数据,就好像那是查询自身一样。在Oracle中,为了完成这一点,你必须用特殊的数据类型作为你的参数,然后再把它查询出来。你必须使用Ref游标或者其它类似的什么东西。这有一点麻烦,但是如果你可以做的话,也是不错的。其他的平台允许你这样做,但是Oracle就不可以。

你对SQL Developer有什么看法,相比较类似产品而言?

Peasland:我喜欢SQL Developer的一个原因就是我能够在SQL Developer中做一些快速的查询,方式与在SQL Server中一样。SQL Developer的能力可以解释我的查询的部分内容,但是让人会把他留在那里,留给那些不注释它们的实例再次呼叫,这是一种用于不同测试目标的调试和运行查询的良好方式–绝对不是用于产品使用,而是一种开发者的工具。

你的网站包括了一些注意文档,用来帮助人们通过Oracle 10g的Oracle认证专家考试。你给那些计划通过考试的人有些什么建议?

Peasland:我要告诉大家的一件大事就是,一,阅读有关新特性的文档,因为几乎有关考试的所有内容都在文档中。这非常重要。还有我了解人们都害怕文档,但是我喜欢这种方式,因为我的大部分问题的答案(作为SearchOracle.com的网站专家)都是从文档中寻找到正确答案的。阅读文档,因为它可以让你熟悉此类事情。另外一件事情就是,练习你学到的,因为当你练习的时候,你就会开始学习一些新特性工作的进出方式。然后,主动尝试去打破一些东西。很明显,你会希望在测试系统上做这件事情,这个系统只有你可以访问,其他人都无法访问,因为你不想打扰其他任何人的工作。在尝试打破一些东西的时候,你会学习到新的特性。

你的网站还介绍了一些有关违反策略和保卫Oracle 10g安全的信息。有没有什么好办法可以确保Oracle 10g正常启动?

Peasland:有一项针对每个人的策略侵害,即使你是直接在机器外安装Oracle,就是有一些供应的包可以对公众开放,这意味着数据库中的每个人都可以使用它们。拥有可以使用这些包的能力会导致安全漏洞。例如,有这样的一个包叫做UTL_File。它让存储过程中的某些人可以与数据库所在的文件系统进行交互。你也许不想要写入文件,因为这样会带来潜在的危险。还有,一些著名的Oracle专家明确指出,像UTL_File这样的东西会让人们探测数据库。我们听说类似这样的安全漏洞总是存在的,它也不是Oracle独有的。数据库中的用户应该有最低权限的概念,意思是他们应该只拥有完成任务所需要的最低限度的权限。