Transcript XML数据库测试
报告人:霍江涛
2011-11-26
网络与移动数据管理实验室
XML数据库简介
XML数据库是一种支持对XML格式文档进行存储和查
询等操作的数据管理系统。
XML管理系统主要有两种类型:
(1)支持XML的数据库。如ORACLE,DB2,SQL Server
(2)Native XML数据库。MarkLogic,DBDOM,OrientX
等
XML数据库概述
(1)MarkLogic
Native XML Database的代表,该数据库广泛应用于出版行业。例如:
BusinessWeek(商业周刊)、McGraw-Hill Education、约翰威立父子
出版公司等等。
(2)Oracle XML DB
XML-Enabled Database的代表。
该数据库已经成功应用于以下企业:Northern California Power
Agency(NCPA),加州立法顾问局 ,Warner Music Group(WMG)
(3)Sedna
开源的XML数据库的代表。
Sedna DBMS是一个原生的XML 数据库(NXD)管理系统, 最早由俄罗斯科
学院系统程序研究所MODIS小组开发的。Sedna实现了XQuery,并且专
门为这个语言开发了他的数据模型拓展技术。
(4)OrientX
OrientX是国内具有独立知识产权的XML数据库的代表。
XML数据库测试概述
通过采用一套评测基准,对XML数据库的基础功能进行测
试。
XML数据库测试分类:
文档的导入导出: 通过测试不同大小文档的导入导出时间,
分析各系统数据存取的效率及其伸缩性。
功能测试:设计大约1000个用例,(包括:XPath,
XQurey, XQurey/Update)测试各系统对这些语言的支持
程度
性能测试:设计专门的测试用例,来比较系统特定点上的
性能。
事务并发测试:根据TPox测试基准,通过多个用户同时
不断的对数据库进行查询、插入、删除、更改来模拟并发。
XML评测基准
1、X007基准测试
2、Xmach-1基准测试
3、Xmark基准测试
4、TPoX基准测试
5、XPathMark基准测试
6、Michigan基准测试
测试基准的比较
测试环境配置
基础功能测试概述
测试选用XMark测试基准,测试的数据均由XMark数据生
成工具自动生成,数据大小有两种33KB和10MB。小数据
主要用于简单功能测试,其好处是容易分析结果是否和预
期一致。大数据主要用于复杂的XQuery查询,如连接、分
组、排序等功能,大数据在一定程度上可以保证复杂查询
结果不为空。
基础功能测试主要测试的是数据库系统的基本操作和对
W3C标准的支持程度。基础功能测试共有1200多个测试用
例,基本上涵盖了W3C中XPath,XQuery,
XQuery/Update三方面所有的功能。通过测试用例的总体
通过率,可以基本了解四种数据库对W3C标准的支持程度。
然后通过对XPath、XQuery、函数分别进行分析,了解四
种数据库对各部分的支持程度。由于XQuery/Update是推
荐标准,在此不单独分析。
基础功能测试用例
基础功能测试用例
总体测试结果
总体测试结果分析
从整体状况上来看,测试项目共分为43类,1210个测
试点,包含了作为XML数据库所应该支持的基本操作
和W3C标准的测试点
从结果上看,Sedna的正确结果最多达到1156个,整
体通过率为95.54%,其次是MarkLogic Server达到
1145个,整体通过率为94.63%,Oracle XML DB达到
1079个,整体通过率为89.17%,最后是OrientX为81
个,整体通过率为6.69%
Xpath测试结果
Xpath测试结果
Xpath测试结果分析
在XPath支持情况中,支持最好的依次是Sedna,
MarkLogic Server,Oracle XML DB,OrientX。可以
看出Sedna和MarkLogic Server支持率为100%的大类的
比例要高于Oracle XML DB。这可能是因为前两者是
专门针对xml的数据库系统,而Oracle XML DB要建立
在其复杂的关系数据库基础之上,难免会有包袱。
Xquery测试结果及分析
Xquery测试结果及分析
在XQuery支持情况中,支持最好的依次是Sedna,
MarkLogic Server,Oracle XML DB,OrientX。
XQuery查询引擎是XML数据库系统的核心部分,但由
于XQuery语言本身比较复杂,xml数据库系统技术也
没有关系数据库那么成熟,所以各个数据库对XQuery
的支持并不完美。
函数处理测试结果及分析
函数处理测试结果及分析
函数处理测试结果及分析
XQuery包含100多个内置函数,它们主要针对字符串、
数值、日期和时间的比较和相互转化,对node和
QName的操作,序列操作,布尔值等等。
在函数处理支持情况中,支持最好的依次是
MarkLogic Server,Sedna,Oracle XML DB,OrientX。
总结
1、各个XML数据库都有自己的优势和不足。
2、测试是一项有技术性和技巧性的工作。
2、搞研究重在做精的基础上求博。
3、要动手多实践。