Oracle最新的数据库产品在去年年底开始进入Beta版状态,在最初公布的测试版当中,Oracle发布了数百项功能改进。作为目前全球市场占有率最大的数据库产品供应商之一,Oracle的新版产品足可以用万众瞩目来形容,目前可以确定的是,这个产品的命名将是Oracle 11g。除了版本的更新之外,新的Oracle数据库仍将使用g作为后缀,以代表这是一个包含了网格技术基础的数据库软件。根据以往几个版本的经验,Oracle发布新版数据库的频率在3年左右,所以Oracle 11g极有可能在2007年年底之前发布。Oracle 11g是否会进一步扩大Oracle在数据库市场的领先优势呢?本文将集中解析Oracle 11g当中新增的功能,从而在一定程度上获得这一问题的答案,并了解Oracle数据库产品的发展方向。
新的管理功能
在Oracle 11g当中,用户可以获得多个方面的性能提升。在2006年10月23日举行的Oracle OpenWorld大会上,Oracle的执行副总裁Chuck Rozwat曾亲自对Oracle 11g的性能进行了演讲。据Chuck Rozwat介绍,Oracle移动数据的速度已经超过了专门的文件系统,这一方面得益于Oracle对数据库引擎的优化,同时也与Oracle 11g中应用的大量压缩技术有关。例如,在数据表和数据索引方面的压缩就有不小的增强,而且用户可以对已压缩数据进行数据列增删等多项常规操作。另外,在触发器等方面,Oracle 11g的运行速度也将更快,特别是针对DML的触发器程序,执行速度可以获得四分之一左右的提升。
Oracle 11g中增加了一种新的触发器,被称为compound,这种触发器允许同时处理BEFORE、ROW和AFTER等部分。这样做的好处是有助于消除错误,同时分别管理每个部分的工作状态。
ADR(Automatic Diagnostic Repository),意即自动诊断库,利用该机制,Oracle数据库可以通过预设的基线自动捕获符合标准的问题,同时也可以执行一些确定的数据库健康检查工作。发现的这些问题可以被记录以辅助用户管理数据库的状态,而且这些信息还能够被发送到Oracle的支持部门。另一项与ADR有关的机制是IPS(Incident Packaging Service),通常被称为事件打包服务。IPS可以将那些需要跟踪的、与特定的事件相关的所有信息收集并打包,供管理员进行特定问题域的管理。
值得一提的是,Oracle 11g当中的补丁更新可以按照功能特性进行细分,这样用户就可以了解到哪些补丁是与当前所使用功能相关的,同时也可以基于特定的功能范畴来查找是否有补丁可用,并且该机制还支持对特定功能相关补丁的订阅。另一个值得关注的特性是Oracle 11g支持热补丁,这样在进行漏洞修复和功能修补的时候就无需停止数据库服务器了,这对于企业用户来说绝对是一个好消息。
XML受宠
在Oracle 11g可以使用CLOB及二进制两种方式保存XML信息,灵活性很高。Oracle 11g还支持针对XML的查询机制,同样有多种机制可以选用,例如XQuery。XQuery是W3C推出的一组关于XML数据查询和搜索的规范,相对来说,XQuery的语法比直接操作XML要简单和直观。说到在XML数据处理方面的增强,值得一提的是,Oracle 11g开始支持JSR 170,这是一套基于Java的内容存储仓库API。Oracle 11g提供了二元性的XML支持,意即在实际使用过程中,用户既可以将XML嵌入到PL/SQL中使用,也可以将PL/SQL整合到XML中使用。
在Oracle 11g当中,会增加一种新的数据类型,被称为simple_integer。这种新的整数类型具有非空属性,而在处理速度上要比PLS_INTEGER更快。另外,在11g中还会包含被称为虚拟列(Virtual Columns)的数据表功能支持。通过该机制用户可以根据实际的业务功能来定义数据表列,从而构建更加复杂及更加灵活的数据表。Oracle 11g支持一种新的分区方案,令用户可以基于时间进行分区,例如分离出某个时间间隔内新增的数据内容,这进一步提高了Oracle数据库分区机制的灵活性。
除此之外,Oracle 11g在数据表方面还有很多的改善,例如增强的只读数据表、为一张表格绑定多个触发器并为这些触发器设置先后顺序等。
当XML面世之时,也许没有哪个数据库厂商会对这种技术给以足够的关注,然而在今天,XML已经开始对数据存储产生巨大的影响。由于XML在互联网应用领域被作为标准广泛地应用于数据交换和保存,下一代数据库的形态发展过程将无可避免地留下XML的足迹。XML在数据存储方面有一个明显的优点,那就是可以直接将逻辑关系编写在XML文件当中。将XML融入主流的数据库引擎,首先要做到的一点是如何将现有的关系型数据输出成XML格式。现在已经有一些数据库可以做到将SQL查询结果直接转换成XML形式,这样应用程序就可以直接利用这些XML文件结果作为内容输出源了。在此基础上,将已有的文档和数据通过XML的方式导入到数据库也是问题的一个重要方面,而这个工作无疑要复杂得多。其实将XML格式的文档导入到数据库中并不困难,因为XML文件具有内在的逻辑和规范,困难之处在于将千差万别的文档转换成XML格式的文件。当然,数据的查询工作也需要做出相应的改变,在支持XML的数据库当中单纯的依靠SQL查询已经难以保证效率。有两条截然不同的道路可以实现传统数据库与XML的融合,一种方式是数据库厂商可以编写更多的转换器和工具以实现传统数据库实体与XML数据的交互,即将XML数据作为各种数据表现形式中的一种来看待;另一种方式就是彻底的在数据库引擎底层纳入对XML数据的支持,甚至基于XML来设计和构建数据库产品。不知道有多少数据库厂商有勇气采取后一种策略,当然这也取决于XML在数据存储和表现领域会成长到什么程度。不过可以肯定的一点是,支持XML将会给数据库厂商带来足够的回报,所以在各个厂商的新型数据库软件的功能当中,我们都会看到很多XML方面的字样。