admin 管理员组文章数量: 1086019
2024年4月20日发(作者:帝国cms二次开发舞曲)
维普资讯
第23卷第4期
苏州科技学院学报(自然科学版)
V0I.23 No.4
2006年l2月
journal of University of Science and Technology of Suzhou(Natural Science)
Dec.2oo6
基于结构化连接的多版本XML文档查询处理
丁 峥1,2,白 云
f1.苏州科技学院计算中心,江苏苏州215011;2.苏州大学计算机科学与技术学院,江苏苏州215oo ̄
摘要:阐述了现有XML文档的版本管理机制所采用的关键技术,总结其存在的不足,然后设计了新的XML文档
节点的编码方案并生成结构化连接所需要的四元组结构,在此基础上对一个经典结构连接算法进行了扩展,使之支
持多版本xML文档的查询。
关键词:XML;多版本;结构化连接
中圈分类号:TP31 1 文献标识码:A 文章编号:1672—0679(2006)04--0064-05
XML版本管理的目的是不仅可以让使用者操作最新版本的XML文件,还可以取回旧版本的XML文
件,方便XML文件版本发展过程的追踪。最直接的方法是每一次XML文件变动后都另存一份,这样会造成
许多资料重复存储。当文件内容比较多时,会占用大量的存储空间。为降低存储冗余,加快版本撷取速度,需
要对XML文档进行有效的版本管理,XML版本管理的目标是以较小空间存储多个版本文件,以较快速度取
回所需要的版本。
1 XML版本管理现有方法及其不足
目前已提出的XML文件版本管理技术有Dif-based[卜。1、Timestamps—basedl41等方式。
Diff-based方法主要是利用edit—script语法(insert,delete,update,move)来记录同一份的XML文件不同
版本之间的改变。文献[1】是存储最后一次修改的XML文件版本,利用forward complete deltas来记录两个
XML文件版本的改变。Forward completed deltas用于获取之前的XML文件版本,并且经反转Forward com—
pleted deltas后,又可重新返回上一次修改的XML文件版本。文献【2】存储第一次和最后一次修改的XML文
件版本,并加上forward complete deltas的特性,改进了获取XML文件版本的速度。文献【3】首先完整地存储
最原始的XML文件版本,当XML文件版本被连续修改时,只会存储新插入文件的部分,而未改变的部分则
是使用reference record来指向前一版本相同数据的位置 文献【4J以Timestamps—based方法为基础,提出了
以时间戳与数值范围为XML文件版本中每个结点进行编码。但是没有讨论如何明确定义结点数值范围中
的间距值range,也没有说明当新的XML文件版本加入时(例如,新增、删除和修改XML文档),原来XML文
档结点的数值范围应该如何调整。
这几种方法的一个共同缺点是无法直接取出中间某一个版本的内容。查询时需要从第一个版本往后推
算或是从最后一个版本往前推算,恢复到特定XML文件版本,才能查询该版本的内容。本文笔者探讨了多
版本XML文档的结构查询,并不需要以恢复版本为前提,而是利用新的结点编码方案和扩展的结构连接算
法,直接查询特定版本中两结点之间的结构关系。
2多版本XML文档的编码方法
选择XML文件编码的方法。主要考虑3个因素:维护的成本、重建文件的效率和查询的速度。本文所采
用的Numbering Schema在Zhang编码的基础上进行了扩展。
【收稿日期】2006-06-14
【作者简介】丁峥(1978-),女,江苏仪征人,硕士研究生,研究方向:XML数据。
维普资讯
第4期 丁 峥等:基于结构化连接的多版本XML文档查询处理 65
结点编码的定义如下:
(I)每个结点看作是一个四元组(Docld,Startpos:Endpos,Level,Vstart:Vend),其中Docld为结点所在的
文档ID;Startpos为结点在文档中的开始值;Endpos为结点在文档中的结束值;evLel为结点在文档中所嵌套
的深度,即在文档树中的层次。Vstart,Vend分别表示版本起始值和版本终止值。
(2)叶子结点的Startpos值和Endpos值相等
图1是一个多版本XML文件及其结点编码,结点编码中省略了Docld。多版本XML文件是将原始版本
及其后的版本差异整合成一个XML文件。这个多版本XML文件包含了3个版本,版本1只有books结点和
左边分支的book结点,这些结点一直到版本3依然保留,因此每个节点的(Vstart:Vend)都是(1:3),版本2是
books结点增加了右边的book结点以及4个子结点,因此,这些结点的Vstart是2,这些结点在第三个版本
中继续保留,惟独删除了右边book结点的第3个子结点author,因此,该author结点的Vend是2,其他结点
的Vend均为3。
图1 多版本XML文件(版本1—3)以及编码方式
改进后的Numbering Schema存在如下关系:
(1)对于树T的相同版本中的两个给定结点u和v,u是v的父亲结点当且仅当u.stm'tpos<v.startpos<u.
endpos,u.Level:v.eLvel+1;(2)对于树T的相同版本中的两个给定结点u和v,u是v的左兄弟结点当且仅当
u.startpos<v.startpos,u.endpos<v.endpos,u.eLvel=v.eLvel;(3)对于树T的相同版本中的两个给定结点u和v,
u是v的祖先结点当且仅当u.startpos<v.startpos<u.endpos;(4)对于树T,如果要撷取版本V的结点,只需要
结点u满足u.Vstart<V<v.Vend条件即可。
改进后的Numbering Schema具有两方面优良的特性:(1)支持结点之间的包含关系,包括父子关系、兄
弟关系、祖先关系;(2)支持直接获取特定版本的结点。这就为不恢复版本而直接查询特定版本的结点之间
的结构关系奠定了基础,也为结构化连接的算法的扩展提供了可能。
3多版本XML文档的结构查询
3.1查询概述
XML查询的核心是XPath路径表达式查询。通常,一个复杂的XPath路径表达式能够被分解为如下子
表达式的组合:(1)由1个单一元素或单一属性构成的表达式;(2)由2个元素或1个元素与1个属性构成
的满足包含关系(祖先/后裔关系、双亲/孩子关系)的表达式;(3)由1个元素或1个属性与1个搜索关键字
构成的表达式;(4)由2个元素构成的位置关系的表达式(之前/之后关系、左兄弟/右兄弟关系等)。
结构连接,是先将查询路径切断,也就是上面所说的表达式分解,以2个元素为一组的方式分别处理,
最终需要将结构连接得到的结果组合起来得到最终查询结果。结构连接算法,是利用每个元素的Startpos:
Endpos值来判断父子或者祖先一后代关系。高效的算法是查询处理的关键。目前已经提出了许多结构连接的
算法,但都不支持多版本的XML文档。文献【5】的Stack—Tree—Desc连接算法代表了结构连接算法的先进水
平,但是该算法不支持具有版本的XML文档,下面笔者在原算法基础上扩展版本查询的功能。
维普资讯
苏州科技学院学报(自然科学版) 20o6年
3.2查询算法的扩展
算法扩展的前提是产生与结构关系(e1)e )(祖先后代关系或者父子关系)中结点e 匹配的列表Alist=
(al,a …)和结点e 匹配的列表Dlist(d 。d …)。并且每个列表根据它的元素的(DocId,Startpos)值进行排序。列
表Alist和列表Dlist能够从存储XML的数据库中产生,例如,一个原生的XML数据库系统能够将XML数
据树中每个元素结点存储为具有属性(Elementtag,DocId。Startpos,Endpos,Level,Vstart。Vend)的对象,利用
索引查找与给定元素标签相匹配的结点集,然后该结点集按照(Docld,Start)值进行排序从而产生列表Alist
和列表Dlist。
Stack—Tree—Desc—MV算法的基本思想是:引进了栈的机制来存放要连接的元素。栈用来存放一个嵌套
祖先元素接点的序列,假设栈中自底到顶依次存放了n个结 4{s- …,Sn},对于每一个结点St( ∈【2,n]),它是
结点fi 。的后裔结点。在归并过程中,对于Alist列表中扫描得到的一个新结点a,如果它是当前栈顶结点的
后代时,并且它满足版本撷取的条件。即a.Vstart<V<a.Vend,那么该结点进栈。对于Dlist列表中扫描得到的
一
个新结点d,如果满足版本撷取的条件,即d.Vstart<V<d.Vend,并且如果它是当前栈顶结点的后代时,那么
它是栈中所有元素的后代。而且。可以保证它不是A中其它任一结点的后代。因此,结点d与栈中所有结点
的连接结果就可以被输出了。对于Dlist列表中扫描得到的一个新结点d,如果它不是当前栈顶结点的后代,
那么可以得出结论:目前的栈顶元素在Dlist中没有进一步的后代结点,因此,可以将栈顶元素退栈了,并且
判断结点d是否是新的栈顶结点的后裔,直到栈为空。
下面给出具体算法:
算法Stack—Tree—Desc—MV(1ist A,list D,int V)
输入:两个参与连接的表Alist和Dlist。需要获取的XML文件的版本V
输出:按后裔有序的连接结果output
(1)a=Alist一>firstNode;d=Dlist->firstNode;0utputlist=NULL;
(2)do while(the input lists are not empty or the stack is not empty)
(3)if(a.StartPos>stack一>top.EndPos)&&(d.StartPos>stack一>top.EndPos))then
(4)【uple=stack一>popO;
(5)else if(a.StartPos<d.StartPos)then
/ 进栈前需要对a的版本进行判断 /
(6)if a.vstart<v<a.vend then
(7)stack->push(a)
(8)endif
(9)a=a->nextNode
(10)else
/*d与栈中元素连接前需要进行版本的判断 /
(1 1)if d.vstart<v<d.vend then
(12)for(a ̄=stack一>bottom;al!=NULL;al=a1一>up)
(1 3)append(aj,d)to Outputlist
(14)endif
(1 5)d=d->nextNode
(16)endif
(17)loop
父子关系的Stack-Tree—Desc更简单,因为Dlist节点只能跟栈顶节点合并。因此,算法l2一l5行的循环
没有必要,只要将其替换为:if(d.eLvel=stack->top.I ̄vel+1){append(stack->top,d)to Outputlist}即可。
33算法正确性证明
给定两个输入序列Alist、Dlist,均按StartPos的增序排列,算法Stack—Tree—Desc—MV会正确地得出所有
维普资讯
第4期 丁 峥等:基于结构化连接的多版本XML文档查询处理 67
的二元关系结果(越,d 其中 ∈Alist与d,∈Dlist
从两个方面来证明:
(1)V ai, ∈Alist, ∈Dlist,若4, 存在结构化关系(父一子或祖先一后代关系),则 , )必会被输出到
Outputlist中。如果4==)d,,故必有a1,a2,....,al-1]d,(此处假设a。是4—1的后代)。算法Stack-Tree-Desc-MV
的第6条语句和第7条语句保证了a ,a:,....,a¨和4中符合版本撷取条件的结点均会进栈,然后完成连接
操作,从而 , 必然会被输出到Outputlist中;(2)(V ai, )∈Outputlist,a ∈Alist, ∈Dlist,则4, 必存在包
含关系,即aid4。也就是说,Outputlist中输出的都是正确的二元包含关系。
首先,整个算法保证了 ,dJ)∈Outputlist中的ai, 必然来自于Alist,Dlist;其次,假设ai,d,不存在包含关
系,那么,在算法的输出出口处必然会有不满足a,2d ̄的条件,使得a , 不满足相应的包含条件却仍被输出,
但考察算法Stack—Tree—Desc—MV可知,唯一的退栈结构化连接运算输出在第4条语句,其严格的If包含条
件使得上述情况不会发生。
故不可能出现(a“ ∈Outputlist,但ai]d『不成立的情况。
3.4算法的执行过程
下面将用一个查询实例来说明算法的执行过程。如图2所示,其中左边是一个多版本XML文档的树状
结构(版本1~3),每个结点标出了<Vstart:Vend>,此时要查询版本2的祖孙/后代关系,即a/d关系,则算法
的执行过程如图2右侧所示(线段长度代表结点的[Stm'tpos:Endpos]区间大小)。可以看出,算法仅需要对祖
先列表和后代列表扫描一次就可以实现包含关系的结构连接,算法的执行只需要8步,每一步的含义图2
亦有说明,不再赘述。
因
Stepl Step2 Step3 Step4 Step5 SteP6 Step7
口
Step8
图2 Stack—Tree—Desc—MV的执行过程
4结语
多版本XML文档的研究是XML研究领域相对独立的一个研究方向,目前主要由加州大学洛杉矶分校
和台湾嘉义大学从事这方面的研究,国内此项研究尚处于起步阶段。不同于以往研究,本文提出了一种改进
的编码方法,并利用扩展的结构连接算法,突破版本恢复的限制,直接地查询任意版本的内容。至于如何提
出一种新的支持多版本XML文档的索引机制,加快查询的速度,是笔者今后努力的方向。
参考文献:
l1 I Marian,Abiteboul S,Cobena G,et a1 Change-centric management of veI'sion8 in蛐XML warehouse[C]//Proc of the 27th VLDB,Rome:Springer
2001.
[21 Raymond K Wong。Nicoh Lain.Managing and Querying Multi—Version XML Data with Update Ix,gging{Cl//ACM,Berlin:DLR,2002・
【3J Chien S Y,Tsotras V J,Zaniolo C.Efficient Management of Muhiversion Documents by Object Referencing[C]//ln Prc VLDB 2001,Rome o
维普资讯
苏州科技学院学报(自然科学版) 2006卑
[41 Chien S ̄,Tsotras v j,z明iol。C.e£llf.Storing and Queyring Multiversi。n XML Documents using Durable Node Num 【cJ//P呲tJf wlsE,
New Orleans:Springer,2001.
15】AL—Khalifa s,JagadiBh H V,K。ud聃N,e£ .Structral Joins:A Primitive for Efifcienl XML Query Pattern M aIchjnglc】//Proceed ngs 0f山e l8【b
lEEE ICDE inteⅡla【j0nal oonference on dat8 engineerlng.San Jt ,California.USA。F'ebmary 26一march 1,2002・1Josaimnitos:1EEE C。mp t。
cletv.2O02:l41-l52.
Query Processing for Multi-version XML Based on Structural join
DING Zheng 一,BAI Yun
f1。Calculati。n Center,USTS,Suzh。u 2 1 50 1 1,China;2.C。mputer Science&Techno1。gY Scho01,Soochow uniVer-
sity,Suzhou 21 5006,China)
Abstract:In this paper we summarize the vari。us key techniques empl。yed by multi—Versi。n XML d。cuments
management,P。inting。ut the defects,and then design an improved c。ding meth。d・On the basis of this,we ex—
tend classic structural joining algorithm SO that it can support multi—version XML documents・
Key words:XML;multi—version;structural join
矫 !
・ 采
(上接第54页)
Research of Method for GPS Leveling Fitting in Suzhou
WANG Ying .YUAN Ming ,YAN Yong ,FAN Yi—well
(1.Dept、。f Urban and Environmenta1 Science ̄USTS,Suzh。u 2 1 501 1,China;2.Nati。na1 Lab。rat。ry f0r Info珊a-
tion Engine ng in Suweying,Mapping and Remote Sensing,wuhan University,Wuhan 430079,China;3‘
Suzhou Surveying and Mapping Institute Limited Liability Company,Suzh。u 2 1 5006,China)
Abstract:This paper adopts the method of height fitting to solve the normal height of GPS points-Based on th。
examp1e of Suzhou GPS network,the authors introduce the principle and method of GPS leveling fitting,then an—
alvze the fitting point8 of different number and the iftting result of nomral height with diferent distirbution and
compare the resuit with third and fourth classes leveling achievements.It is conclud。d that the meth。d n e ch
the level Grade-3 precision requirement-
Key words:GPS;height anomaly;quasi-geoid;conicoid fitting
版权声明:本文标题:基于结构化连接的多版本XML文档查询处理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713559935a640761.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论