资源描述:
《基于xml的数据流查询算法研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于XML的数据流查询算法研究摘要摘要随着XML数据被越来越广泛地使用,人们对XML数据查询提出了越来越高的要求。前期的研究主要集中在XPath的查询处理上。XPath相对比较简单,但表达能力有限,比如不能表示连接操作等。作为W3C的推荐标准,XQuery的表达能力比XPath强大很多,同时XQuery也比XPath复杂很多。XQuery兼有结构化查询语言和过程化查询语言的特点。一方面,XQuery的FLWR子句在一定程度上类似于SQL的select-from-where子句是XQuery的最重要的表达式;另一方面X
2、Query支持表达式的嵌套,支持诸如条件表达式(IF-THEN-ELSE),循环表达式(FOR),返回值(RETURN)等,还有变量和谓词的作用域问题,这些都是一种编程语言的重要特征。因此关于如何有效地进行XQuery查询,目前是一个研究热点。然而,XQuery查询技术虽然在处理传统的XML数据功能强大,然而它没有充分考虑数据流的问题,即待处理的数据连续不断的到达XQuery处理机。这些数据可能来自于数据采集设备或者是一个运行很长时间的计算仿真。这些XML数据流的长度远远超过了当前计算机的存储容量。从而使得不可能对这
3、些数据进行存储(诸如排序等加工操作),以便在处理这些数据时运算更加简便。然而在特定情况下,要求对数据流进行一遍遍历或计算之后,就能得到正确的答案。本文首先介绍了XML查询的相关概念、内容、特点和作用。阐述了XML的相关技术,分析XQuery查询技术,详细说明了XQuery查询技术的优缺点。然后在目前研究的基础上分析和总结了一种XQuery查询的数据模型,并提出了一种如何在数据流上有效的执行XQuery查询的查询机制。关于这种查询机制,本文将从三个方面来进行:(1)利用一些优化方法(如流数据流程图、水平合并和垂直合并技
4、术等)来对XML数据流,XQuery查询进行转换和优化;(2)提出了一种判定方法来决定那些情况下的XML数据流能被一遍遍历处理,那些情况下不能进行一遍遍历处理,以及经过一遍遍历能否能得到正确的结果;(3)在以上的工作的基础上利用改进的XQuery查询算法对数据流进行一遍查询。I基于XML的数据流查询算法研究在文章的最后,针对文中提出的XQuery查询机制存在的一些问题(比如在一些特定的情况下不能对数据流进行一遍遍历查询等),提出今后进一步的工作。关键词:XQuery数据流程图流依赖聚集依赖IIAbstractAbst
5、ractWithXMLdatamoreandmorewidelyused,peopleputhigherandhigheremphasisonXMLdatarequirements.EarlierresearchesareprimarilyfocusedonXPathqueryprocessing.AlthoughXPathisrelativelysimple,ithaslimitedcapacityofexpression,forinstanceitcannotexpressconnectingoperation.
6、AsrecommendationstandardofW3C,XQueryhasmoreabilitiesthanXPathinexpression,meanwhileXQueryismorecomplexthanXPath.XQueryhasbothstructuredquerylanguageandprocessquerylanguagefeatures.Ononehand,theFLWRclauseinXQuery,tocertainextent,issimilartotheSQLselect-from-wher
7、eclause,itisthemostimportantexpressiononXQuery;Ontheotherhand,XQuerysupportingnestedinexpression,suchasinconditionalexpression(IF-THEN-ELSE),loopexpression(FOR),andinreturnexpressionetc,alsosupportsutilitydomainquestioninvariablesandpredications.Theseareallimpo
8、rtantfeaturesofprogramminglanguage.SoitisahotspotonhowtoeffectivelycarryoutXQueryqueries.However,althoughXQueryhaspowerfulfunctionsinprocessingtraditionalXMLdata,itdoesnotfu