导 读:XML是否能取代传统的数据库,本文就这个问题做了一些介绍和分析。这对于急于想了解XML发展方向的朋友有一定的帮助。
--------------------------------------------------------------------------------
张大佑 编译
可扩展标记语言(XML,Extensible Markup Language)目前正在成为各种数据特别是文档的首选格式。由于它具有标记不同字段(field)的能力,使得搜索变得更简单和动态化,从而把企业准备扔进废纸篓的文件变成了进行数据挖掘的宝藏。XML把内容从演示格式中解放出来,使材料可以多次重复使用。这样一来,同样的内容可以分别用于新闻发布、白皮书、宣传册、演示和Web页面。对那些需要把不兼容的系统融合在一起的企业,XML可以充当公共传输工具,以中性格式进行数据传输。此外,XML还可以处理各种数据,包括文本、图像和声音,并且可以由用户进行扩展以处理任何特殊类型的数据。
XML的特性使之成为在线和离线数据的共同语言。
现在的问题是,怎样管理XML标记的数据。一种很有希望的方法是用数据库对XML进行存储、检索和操作,即把XML标记的数据收入一个框架中,在一种更容易管理、更系统化、更为人们所熟悉的环境中完成搜索、分析、更新和成果输出工作。
这里有两种不同的观点:纯粹派认为,只有以XML原始的格式存储XML的数据库才能称为XML数据库;另一些人认为,只要能存入和检出XML,且它本身又是一个数据库,那它就是一个XML数据库,而不必考虑数据是怎样存入的。我们暂且把两派之争放在一边,凡内部不是以XML格式存储的XML数据库,叫做 “XML- enabled数据库”;如果内部以XML格式存储数据,就称为“native-XML数据库”。
使用现有的数据库类型和产品而不是以原始格式来存储 XML,是出自以下几种考虑:首先,普通的关系数据库和面向对象数据库已尽人皆知,而 native-XML数据库是新的;其次,人们熟知现有的关系数据库和面向对象数据库,也了解它们的行为和性能,因此,他们不愿意转向native- XML数据库,因为其性能,特别是可伸缩性尚未经过检验;最后,在企业看来,选择关系数据库和面向对象数据库是比较安全的,不到迫不得已用不着冒险使用新的native-XML数据库。
所幸的是,您用不着去冒险。现在已经有一些能够很好地处理XML的XML-enabled数据库,并且是由久经考验的关系数据库和面向对象数据库担此重任。这些数据库在收到XML后,将其分解为字段并按通常的方式存储它们,当检索XML 时,这些字段再被拼接成原状。
设在麻省Reading的Xyvision企业解决方案公司研制的 Content@XML是一套内容管理系统,它可以在任何一种流行的关系数据库中存储XML文件。其好处是可以开展基于内容的协同工作,进行多通道内容输出。一家技术出版商选用了 Content@XML,他们说XML将他们2周的工作压缩到几分钟,“该系统接受的是XML材料,给出的却是你想要的任何格式的结果。”
Lotus公司的Domino数据库也可以处理XML,而且其 XML Toolkit甚至可以让您像在native-XML数据库中一样创建和处理内容。
在关系数据库中处理XML数据时,可用第三方中间件进行转换,其中有一种产品称为XML-DBMS,这是一种基于Java Database Connectivity(JDBC) 的工具,可以在XML文档和数据库之间传输数据。
不过,利用关系数据库和面向对象数据库存储XML也遭到一些批评。例如,有人认为,XML最具吸引力的特性之一是其分层结构,而关系数据库却将XML映射成关系表,从而将XML结构变成了平面的行和列。另外,遇到大型或复杂文档时,在XML与数据库之间进行来回转换要耗费相当多的处理时间,从而降低了 Web页面的生成速度。
目前,native-XML数据库已经开始出现,尽管人们还不能完全信任它,但的确有一些native-XML数据库开始在实际应用中受到得青睐。另外,主流的数据库厂商也可能在适当的时机推出自己的native-XML数据库产品。
第一个,可能也是最有名的商用native-XML数据库是位于美国加州的Software AG公司开发的Tamino。除了可以存储和访问XML外,Tamino 还具备多项功能,包括Open Database Connectivity、符合Unicode要求、HTTP通信及处理非XML数据的能力。Gartner Group的一份报告指出:“Tamino特别适用于需要从多种不同平台和格式整合信息并向业务伙伴或客户散发这些信息的机构。”
据介绍,Tamino拥有直接XML检索和特殊检索的能力,其查询语言强大而简短,可进入任意深度,使SQL相形见绌。
其他native-XML数据库包括dbXML、eXcelon和 XHive/DB,分别由美国的dbXML Group LLC公司、 eXcelon公司和荷兰的The Connection Factory公司研制。奇怪的是,对native-XML数据库的主要批评之一是性能问题。有人预见到,当所搜寻的信息位于大文档的未尾时,由于缺乏其他机制,native-XML 数据库只能艰苦跋涉到最后,而关系数据库和面向对象数据库则可以将文档分成小块同时进行搜索,速度当然要快得多。
当然,上述困难并非无法克服,只要在存储时给各文档分别加上索引就行了。Tamino就具有这种索引能力,从而弥补了大型文档搜索的不足,另外, native-XML存储消除了不必要的转换操作。目前,Tamina有Windows NT、Windows 2000、Solaris和SCO Unix等版本,将来还要出Linux和一些大型机版本。
目前,许多主流的数据库厂商都在把XML支持结合到其产品中,或者提供可在其数据库中使用XML的工具。IBM提供了XML Extender for DB2,以允许用户在DB2中存储XML文档,并提供一些新功能协助用户处理XML文档;Microsoft 的SQL Server 6.5和7.0也进行了XML扩充,据悉SQL将来要加入XML输出选项,用以向其他系统传送信息。Oracle也拥有功能强大的XML索引引擎。
有专家预计,这些数据库厂商不久将推出自己的native- XML数据库,以满足基于Web的电子商务对XML数据处理的需求。
总之,XML的需求正在扩大,新的应用包括采用XML 标签的Internet搜索引擎、必须快速输出结果的电子商务系统、带XML标签的电子数据交换、数据重复使用和内容个性化。作为处理上述应用的一环,XML数据库的需求也将快速增长。