XML文件树状路径查询优化研究_计算机论文.docVIP

XML文件树状路径查询优化研究_计算机论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XML文件树状路径查询优化研究_计算机论文.doc

XML文件树状路径查询优化研究_计算机论文 XML文件树状路径查询优化研究_计算机论文 摘 要 XML查询优化成为XML数据库研究热点,其中的结构连接是其主要操作。连接顺序的选择是XML查询的核心问题。本文提出在片段路径树的基础上,提出了一种连接及组合路径表达式的策略,该策略是首先得到最优化路径序列,最后将最优化序列组合成完整的查询结果。 关键词 XML;查询优化;路径表达 1 相关定义 XQuery是由W3C制定的,其目的是提供一种查询语言,让使用者可以从XML文档中找出所需要的资料。XQuery基本上包含三个子句,在For语句中,使用者可以使用XPath指定所要依序处理的元素并将其配置给一个变量,Where语句则是可以对每个变量进行条件限定,而Return语句则是可以指定所希望返回的元素及其格式。 在XML查询中,可以将XPath转化为一棵树,称为查询树。从初始查询树开始,选择查询树中的某一条边,对该边上相连接的两个结点做连接,连接的结果用一个新的结点表示,并代替原树中的两个结点。每次连接时都会使结点减少一个,同时产生一个新的树。当树只包括一个结点时,整个求解过程便结束。 在查询树中,可以将树中的结点分为五种类型,分别是:根节点 (Root),叶节点 (LN),分支节点 (GN),孙子节点 (DN),孩子节点 (CN)。其中与通常情况不同的是,孙子节点是指在查询树中与其下一个节点为祖孙关系的节点。孩子节点是指在查询树中与下一个节点为父子关系的节点。将查询中需要返回的结点,定义为返回节点。 定义1:给定一个查询树QT (N,E),及节点NiIcircN,若Ni为GN或LN或DN,则将此节点称为GLD Node。 定义2:给定一个查询树QT (N,E),及QT中的一条路径P为EiNi….Ni+nEi+nNi+n+1,若Ni与Ni+n+1为GLD Node或根节点,且对于所有的节点Nj属于Ni+1到Ni+n皆不为GLD Node或根节点,则我们称EiNi….Ni+nEi+nNi+n+1为一个后置路径(Suffix Path)。 定义3:给定一个查询树,由根节点开始向下访问,若走访的节点属于GLD Node,则将其建立在片段路径树中,PT (N,E),N是节点的集合,E是边的集合。对于每个ni ∈N都有一个TagName,且ni的类型只属于GN或LN或DN。对于每个ei ∈E为 “/”,代表节点与节点之间的相邻关系为父子关系。称这样的树为片段路径树。 定义4:假设A为Suffix Path的最后一个节点,则XML文档中符合Suffix Path的文件所构成的集合,称之为A的Partial Data,记作Ap。 定义5:在片段路径树 FPT (FN,FE) 中,假设NiIcircFN且以Ni为起始点的路径P为EiNiEi+1Ni+1Ei+2…Ei+nNi+n,若Ni为叶节点或分支节点,Ni+n为最接近Ni的根节点或分支节点,则称路径P为一个片段路径,并以 “Ni-Ni+n” 表示。 2 问题提出 图1(c)所显示的是将XQuery Tree拆分成Suffix Path,即 “/a” 、“//b” 、“//c” 、“//d” 。 图1 情况1:如果我们“//b//c” 、“//b//d” 、“/a//b”组合文件,则//b//c的结果有(b1,c1) 、(b2,c2) 、(b3,c3)共三种选择,其次符合 “//b//d” 的有 (b1,d1)一种选择,所以,没有对应文件的b2,b3会从b中删除。/a//b有一种选择。在此顺序下需要五次选择连接。最后将其组合成最后结果,显然只有一种选择。所以按照如上方式一共做了六次选择连接。 情况2:假设建立的顺序为 “//b//d” 、“//b//c” 、“/a//b”,按照情况1的分析方式,得到3种选择,最后按照“/a//b” 、“//b//c”、“//b//d”的方式组合只有一种选择。显然通过四次选择连接就得到了最后结果。 通过上例,可以看到不同的建立及组合顺序对查询结果确有影响。这正是本文所研究的内容。本文所研究的方法是基于片段路径树的。基本框架为:首先找到最优化的片段路径序列,然后根据Partial Data建立符合片段路径结构的文档,最后得到具有完整结构的查询结果。 3 主要研究方法 本文依据文献[1]的方法得到片段路径树及树中每个节点所对应的Partial Data。首先根据路径树及对应的Partial Data 进行最佳化处理。基本思想是:按照起始点和中间点两种不同的类型节点进行访问。Partial Data大的先访问或者小的先访问。算法的最终目的是输出最佳片段路径序列。 算法3.1 function () { 输入:带有Partial Data的片段

文档评论(0)

wyj199216 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档