四个主流的Native-XML数据库
作者:
随着XML日益广泛的应用,XML数据存储的问题摆在了我们的面前。如何有效地管理大量的XML文档是亟待解决的问题。
最初,通常的做法是先把XML数据转换为关系映射将其存入关系数据库中,写入和读出都要进行相应的转换。但是随着XML数据量的日益增加,这显然不是最好的解决办法。于是诞生了专门为XML文档存储设计的Native-XML数据库,也被称为原生XML数据库或纯XML数据库。
本文介绍了四个主流的Native-XML数据库,并略作比较,以为需要大量存储XML数据的用户提供Native-XML数据库的选择参考。
Tam
Tam
Tam
(1)支持HTTP方方法GET、PUT、DELETE和HEAD读取文档、存储或替换文档、删除文档那个和取得文档的有关信息,并支持SSL安全机制;
(2)提供Java、ActiveX、JavaScript和.net等语言的API访问;
(3)支持XML Schema模式验证;
(4)也可存储其他类型的对象,如图像、声音文件、Word文档、HTML页面文件等;
(5)方便与其他数据库进行集成与数据转化;
(6)支持XQuery查询语言;
(7)提供图形界面和命令行方式的交互。
Tam
eXist数据库系统
eXistz是一个开放源代码的纯XML数据库系统,于2001年开始研究。
eXist数据库具有以下特点:
(1)完全用Java语言实现;
(2)不支持XML Schema模式验证;
(3)支持XPath查询;
(4)支持可插拔的存储后端,即后端既可以纯XML数据库也可以是关系数据库;
(5)支持HTTP、XML-RPC、SOAP和WebDAV接口访问和Java专用的XML:DB API;
X
X
X
(1)完全用Java语言写成,因此需要JDK的支持;
(2)支持DOM和SAX编程接口;
(3)仅支持well formed的XML文档,不支持Schema验证。
(4)提供Java语言的XML:DB API接口和其它语言的XML-RPC的接口;
(5)提供命令行管理工具。
X
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)支持操作系统包括
(7)提供命令行方式与数据库进行交互操作。
(8)支持大用户量的并发访问,存储容量可达256TB;
Berkeley DB XML也是Oracle数据库产品解决方案的一部分,这一点表明它的可用性及性能上值得信赖。
四个Native-XML数据库简单比较
Tam
作者水平有限,如有不妥之处欢迎评论或来邮探讨。