论文部分内容阅读
XML,(eXtensible Markup Language)已成为数据交换事实上的标准,随着Web的发展,越来越多的XML数据以流的形式存在,如何在XML,流上高效地执行查询成为当今研究的热点。XML查询的语言主要有XPath和XQuery,XPath语言定义了如何在XML文档中精确定位和匹配XML的元素结点,但表达语义简单,面对用户日益提高的查询需求,XPath显得力不从心,而XQuery性能良好,功能强大,能够更好地满足用户对各种XML据的查询需求。对xOuery语言的研究是适应当前XML查询技术发展的要求,而利用xQuery来实现XML查询是真正意义上有效使用XML数据的途径。
一次典型的XQuery查询过程可分为XPath查询处理、查询后处理两个阶段。XSIEQ(XML Stream Query with Immediate Evaluation)是笔者所在实验室研发的基于XML流的查询XPath引擎,能支持多个XPath式的同时查询,记为:XSIEQ-XP。根据XQuery查询过程,在充分利用XSIEQ-XP已有工作的基础上,笔者及组内其他成员通过分析XQuery查询与XPath查询的区别与联系,设计并实现了XQuery查询原型系统XSIEQ-XQ。
本文的研究集中在XSIEQ.xQ系统的查询后处理阶段,主要的工作和成果有:
1、追踪XQuery标准的发展,对XQuery语言进行深入的分析与研究,从而找到了在现有的XPath查询引擎XSIEQ-XP的基础上扩展支持XQuery查询的途径。
2、参与定义了扩展的XSIEQ机E-XSIEQ(Extended XML Stream Query with ImmediateEvaluation),以及查询后处理所输出的中间结果(即原子表集合)的格式。
3、提出并设计、实现了两种原子表排序连接算法,基于这个算法可以完成由中间结果到结果文档的构造实现。
4、参与实现了XSIEQ-XQ原型系统,它用Java编写,该系统支持嵌套、order by子句的多关键字排序等XQuery查询的复杂特性。对原型系统的查询性能和所做的系统优化进行了大量的实验,实验结果表明查询后处理性能优于Qizx,XSIEQ-XQ系统能有效地处理XML数据流。
5、设计了查询引擎的客户端复用方法,来支持客户端的信息选择分发。