本文摘自以前项目中的一份报告,所以其中所提到的软件现在已有更高的版本。
开源Xml数据库评测
一、 xml数据库的概念及分类
Xml虽然已出现很多年,但在前些年通常只被做为数据交换文件来使用,或作为软件配置文件,较深层次的应用较少。随着xml数据使用的越来越多,迫切需要一种能够直接处理xml数据的数据库来管理这些结构或半结构化的数据。之前处理xml数据都是在作为文本存储在关系数据库中。由于xml数据格式是层次关系,而且同类文件格式也可能不同,用关系数据库很难表示,更严重的是使用关系数据库保存xml数据无法对xml数据中结点进行检索。使用新型存储格式及检索方式已是必然。随着处理xml文件的一些方法被定义为标准,例如XPath、XQuery等。Xml数据库的应用才越来越广泛了。
Xml数据库即使用xml文件作为数据存储格式的数据库。根据数据库实现模式,xml数据库分为:
1、可以使用xml文件的数据库(Enable-XML Database):数据库内部含有处理xml数据的模块,可以和xml数据文件交换数据,即实现了xml数据的读取,写入,删除,更新等操作,但数据库本身并不是为xml数据设计的。
当前比较流行的数据库oracle,Ms SQL Sever,IBM DB2,Ms Access等都属Enable-XML Database类型。目前大部分关系数据库都支持xml数据。关于Enable-XML Dabase数据库产品,可以参考“XML Database Products_ XML-Enabled Databases.pdf”文档。
此类数据由于底层实现模块中并不是专为xml数据设计,所以在使用xml文件数据时必须通过使用类似ODBC、JDBC等接口程序进行数据交换。接口程序把xml数据读入数据库并转换成数据库可以识别的数据格式后才能操作数据,操作完的数据在通过接口程序转换成xml数据格式,这使得执行效率大幅降低。
2、纯xml数据库(Native-XML Database):满足一下3个条件的就是纯xml数据库:
1)、为xml文档定义了一个逻辑模型,xml数据的存储和查询都基于这个模型。这个模型至少要包含元素、属性以及PCDATA等,并保持文档顺序。
2)、将xml