在向大家详细介绍Oracle XML数据之前,首先让大家了解下Oracle 11g,然后全面介绍Oracle XML数据。在Oracle 11g可以使用CLOB及二进制两种方式保存XML信息,灵活性很高。Oracle 11g还支持针对XML的查询机制,同样有多种机制可以选用,例如XQuery。
XQuery是W3C推出的一组关于Oracle XML数据查询和搜索的规范,相对来说,XQuery的语法比直接操作XML要简单和直观。说到在Oracle 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在数据表方面还有很多的改善,例如增强的只读数据表、为一张表格绑定多个触发器并为这些触发器设置先后顺序等。
关于Oracle 11g热补丁功能的现场讲解
当XML面世之时,也许没有哪个数据库厂商会对这种技术给以足够的关注,然而在今天,XML已经开始对数据存储产生巨大的影响。由于XML在互联网应用领域被作为标准广泛地应用于数据交换和保存,下一代数据库的形态发展过程将无可避免地留下XML的足迹。
XML在数据存储方面有一个明显的优点,那就是可以直接将逻辑关系编写在XML文件当中。将XML融入主流的数据库引擎,首先要做到的一点是如何将现有的关系型数据输出成XML格式。现在已经有一些数据库可以做到将SQL查询结果直接转换成XML形式,这样应用程序就可以直接利用这些XML文件结果作为内容输出源了。在此基础上,将已有的文档和数据通过XML的方式导入到数据库也是问题的一个重要方面,而这个工作无疑要复杂得多。
其实将XML格式的文档导入到数据库中并不困难,因为XML文件具有内在的逻辑和规范,困难之处在于将千差万别的文档转换成XML格式的文件。当然,数据的查询工作也需要做出相应的改变,在支持XML的数据库当中单纯的依靠SQL查询已经难以保证效率。有两条截然不同的道路可以实现传统数据库与XML的融合,一种方式是数据库厂商可以编写更多的转换器和工具以实现传统数据库实体与Oracle XML数据的交互,即将Oracle XML数据作为各种数据表现形式中的一种来看待;另一种方式就是彻底的在数据库引擎底层纳入对Oracle XML数据的支持,甚至基于XML来设计和构建数据库产品。
不知道有多少数据库厂商有勇气采取后一种策略,当然这也取决于XML在数据存储和表现领域会成长到什么程度。不过可以肯定的一点是,支持XML将会给数据库厂商带来足够的回报,所以在各个厂商的新型数据库软件的功能当中,我们都会看到很多XML方面的字样
【编辑推荐】