太极十三桩法口令:四个主流的Native-XML数据库

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 10:42:17
随着XML日益广泛的应用,XML数据存储的问题摆在了我们的面前。如何有效地管理大量的XML文档是亟待解决的问题。

最初,通常的做法是先把XML数据转换为关系映射将其存入关系数据库中,写入和读出都要进行相应的转换。但是随着XML数据量的日益增加,这显然不是最好的解决办法。于是诞生了专门为XML文档存储设计的Native-XML数据库,也被称为原生XML数据库或纯XML数据库。

本文介绍了四个主流的Native-XML数据库,并略作比较,以为需要大量存储XML数据的用户提供Native-XML数据库的选择参考。



Tamino数据库系统

Tamino是Software AG公司提供的原生XML数据库服务器产品,它于1999年发布第一个版本。Tamino将XML文档以原生的方式存储在Tamino数据库中,而不是映射到其他的数据库模型。

Tamino数据库具有以下特点:

(1)支持HTTP方方法GET、PUT、DELETE和HEAD读取文档、存储或替换文档、删除文档那个和取得文档的有关信息,并支持SSL安全机制;

(2)提供Java、ActiveX、JavaScript和.net等语言的API访问;

(3)支持XML Schema模式验证;

(4)也可存储其他类型的对象,如图像、声音文件、Word文档、HTML页面文件等;

(5)方便与其他数据库进行集成与数据转化;

(6)支持XQuery查询语言;

(7)提供图形界面和命令行方式的交互。

Tamino XML服务器提供了用于处理XML的现代数据库系统必需的完整功能。它支持一个数据库系统所应该具有的所有特性,包括多用户操作、事务支持、强大的备份功能,海量处理能力、可扩充性和高性能。



eXist数据库系统

eXistz是一个开放源代码的纯XML数据库系统,于2001年开始研究。

eXist数据库具有以下特点:

(1)完全用Java语言实现;

(2)不支持XML Schema模式验证;

(3)支持XPath查询;

(4)支持可插拔的存储后端,即后端既可以纯XML数据库也可以是关系数据库;

(5)支持HTTP、XML-RPC、SOAP和WebDAV接口访问和Java专用的XML:DB API;



Xindice数据库

Xindice是一个开放源码的Native-XML数据库。它也是Apache自由软件基金会下的一个项目。Xindice可以以XML本身的格式存储和检索XML数据,它有个缺点是不能处理较大的XML文档数据。这个大小没有严格的定义,通常1M字节以上的就可以认为比较大。

Xindice具有以下特点:

(1)完全用Java语言写成,因此需要JDK的支持;

(2)支持DOM和SAX编程接口;

(3)仅支持well formed的XML文档,不支持Schema验证。

(4)提供Java语言的XML:DB API接口和其它语言的XML-RPC的接口;

(5)提供命令行管理工具。

Xindice目前已经足以运用于一般的内容管理系统,但其不支持XML校验和不能处理较大的XML文档,因此在大型应用中有所限制。



Berkeley DB XML嵌入式数据库

Berkeley DB XML是一个开放源码的嵌入式Native-XML数据库。它是在Berkeley DB(一种通用的嵌入式数据库引擎)的基础上开发而成。Berkeley DB XML存储XML文档,对它们进行索引并提供一个XPath检索接口。XML文档被组织在不同的容器内,这些容器可以共用一个通用的模式定义或者不规定特定的模式。

Berkeley DB XML数据库具有以下特征:

(1)它是一个库而不是一个数据库服务器,它与应用程序运行在同一个进程;

(2)提供基于XQuery的接口访问存储;

(3)支持XML Schema验证;

(4)对外提供编程接口API支持C++、Java、Perl、Python、PHP、Tcl、Ruby等语言;

(5)开放源代码、底层采用C/C++语言实现;

(6)支持操作系统包括Windows、Linux、BSD、UNIX、Mac OS/X和任何POSIX兼容的操作系统;

(7)提供命令行方式与数据库进行交互操作。

(8)支持大用户量的并发访问,存储容量可达256TB;

Berkeley DB XML也是Oracle数据库产品解决方案的一部分,这一点表明它的可用性及性能上值得信赖。



四个Native-XML数据库简单比较

Tamino是个功能强大的商业Native-XML数据库产品,而且提供图形界面。缺点是要花钱^_^。eXist和Xindice都是完全用Java语言写的开源数据库,eXist更适合用于管理以文档为中心的XML数据,Xindice不适合大文档的处理,它们两者差不多在内容管理领域都有应用。Berkeley DB XML的功能比较强大,支持Schema验证是其优点之一。Berkeley DB XML嵌入式数据库跟应用程序运行在相同的地址空间,因此它既可以支持小的、但用户应用程序,又支持拥有大量内存和硬盘空间的多处理器计算机上处理数以千计的并发用户访问。