用native XML数据库来解决XML文档检索问题

ZDNet软件频道 时间:2003-04-17 作者:BUILDER.COM |  我要评论()
本文关键词:xml
尽管我们现在还不能说NXD终将取代传统的关系型数据库,但不容置疑的是XML文档(易于阅读是它的天性)给NXD在处理XML方面一个再清楚不过的好处了。
本文译自Builder.com开发领域广泛使用xml的趋势已经是一个公认的事实。然而,由于缺乏保存xml文档的业界标准,不同公司推出的产品的互用性(interoperability)可以说是零。而且,保存和处理问题导致了系统性能问题,即常规的关系型数据库保存大的xml文档时的查询结果无效的问题。目前流行的克服上述问题的方法又会带来其它的复杂性。

如果xml应用程序按照目前的速度持续增长,那么上述问题显然必须得以解决。两种可能的解决是采用对xml更加友好的查询语言或者采用对xml更加友好的数据库系统。但是在选择这两种方法之前,我先解释一下当前解决方案所遇到的问题。

xml + RDBMS=噩梦

虽然听起来有一点像科幻小说,不过不妨这样设想一下:在不远的将来,用户自定义的xml 大纲(schema)将会得到广泛的运用,它们来描述保存在所有企业系统中的数据。这些大纲极不标准,其范围从客户的中央服务器微软的Office文档到商务-商务网络服务的关系管理系统。这就逼迫开发者必须用SQL从关系型数据库管理系统(RDBMSs,持久数据存储的典范)中来搜索和检索xml文档。

解决RDBMS中保存xml问题的两种最常见的方法是:1、映射大纲到数据库的行,2、把整个文档保存为一个CLOB(single character large object)字段。这两种方法都有其局限性。在映射方法中,数据库不知道数据内容和层次关系。xml文档的各部分分布于整个数据库,并在物理上占据服务器存储器中的不同位置。这就导致了SQL查询要花费额外的时间去寻找和重建xml文档的各部分。CLOB方法则避免了这些内容上的问题,用这种方法数据库在一个单元中保存数据内容和层次关系,而无需把大纲映射为数据库的行。然而,SQL查询不能深入到保存该文档的字段并翻译它——检查文档的各部分的唯一方法就是把整个部分返回到结果集中去。

简单来说,我们在这儿讨论的是潜在的噩梦。真正的解决方案只有一个:要么选择其它类型的数据库、要么选择其它类型的查询语言。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134