1、XQuery 物化视图增量更新系统框架的研究摘 要 在 Web 应用中,以 XML 为格式的信息查询通常会受到网络传输速度有限等因素的影响。为了减少 XML 的物化视图与其数据源之间的一致性维护中所需的网络数据传输开销,提出了一种面向远程的 XML 物化视图增量维护方法和系统框架。 这种方法根据多用户的查询请求和数据源更新信息,生成 视图维护程序代码,以程序代 码的网络迁移代替 XML 视图的重复查询,有效地减少了网络数据传输量。本文介 绍 了物化视图增量维护的基本原理、系统框架以及设计实现思路。最后通过性能测试,说明这种增量维护系统能够有效地减少传输开销。关键词 XML 物化视图 XQuer
2、y 增量维护RESEARCH ON FRAMEWORK OF XQUER MATERIALIZED VIEW MAINTENANCE FOR WEB APPLICATIONAbstract The queries for XML data of web application are usually affected by limited transmitting speed of the network. In order to reduce the overhead of the network communication for maintaining the consistency b
3、etween XML materialized views and their data source, a web-based incremental maintenance solution for xml materialized views is provided. In the solution, programs are generated for maintaining views according to multiple query requests from clients and the update information about changes to the da
4、ta source. And code migrating of the programs is used instead of querying XML views once again. Therefore it reduces the communication cost effectively. The paper focuses on the basic principles, framework ,design and implementation of incremental maintenance for the materialized views. Finally, per
5、formance test results is also presented. Keywords XML Materialized view XQuery Incremental maintenance 0 引 言在数据库领域中,视图是从一系列的基础表中,通过定义映射关系来获取的数据集。为了加速数据查询,常常会将数据视图进行某种形式的存储,形成物化视图(materialized view)1,2。当物化视图所依据的基础数据发生变化时,就需要修改物化视图,以保持物化视图与其基础数据之间的一致性,这个过程称为物化视图的维护 2,3。在大多数情况下,如果重新计算视图来维护物化视图与基础数据之间的一
6、致性,系统开销通常很大,而微量的基础数据变化可能仅仅影响到一部分的视图数据,因此人们试图根据基础数据中变化了的部分来更新物化视图,即对物化视图进行增量维护。随着 XML 成为网络上兼具可扩展性及灵活性的通用数据传输格式,用 XML 表示的查询视图广泛地应用于各种系统,特别是 Web 应用系统。因此,如何优化 XML 数据的查询检索是迫切需要解决的问题。对常用的数据信息建立物化视图是提高对 XML 数据查询分析的重要手段。然而,XML 文档不同于传统的关系数据库的数据表,其具有半结构化、支持文档序和支持轴操作等特征 4,使得传统的关系数据查询优化技术无法直接用于实现高性能的 XML 数据查询。X
7、ML 视图是通过XML 查询语言定义而成的 XML 文档的子集,它具有层次化的树型结构以及复杂的结果重构,使得其增量维护问题比关系数据库视图复杂得多,应用于关系数据库的增量维护方法也很难用于 XML 视图。与此同时,由于 XML 是网络通信的传输格式,因而对于它的研究势必要考虑到 Web 环境远程操作的特点。信息量过大以及复杂的数据处理都会给网络本身以及客户端和服务器带来巨大压力。同时,客户端可能会针对某个特定的查询对服务器进行多次的请求,若重新查询,不仅降低系统性能,而且在数据源变更不是很频繁的情况下,还会加大数据传输的开销冗余。因此采用对物化视图进行增量维护的方法可以给系统带来快速访问视图
8、以及优化查询过程等益处。然而,在 Web 应用环境下,网络传输是客户端和服务器之间交互的瓶颈,数据源变更往往不能及时反应给客户端的物化视图。这样就会在服务器滞留许多数据源变更的信息。因而就需要一种有效的管理方法将这些信息逐一地反应给客户端,从而保证客户端物化视图与数据源的一致。本文着重探讨远程环境下,XML 视图增量维护物化视图增量维护的基本原理、系统框架以及执行过程。并且详细介绍系统主要核心模块的功能及设计实现思路。最后给出系统性能测试结果。1 增量维护的基本原理1.1 增量计算原理对于一个函数 f(x),输入 x 得到计算结果是 r,在 x 上做一个变化x,使得输入变成 x OPx(OP
9、表示一种变化操作)。如果计算 f(x OP x)时能利用上一次的计算结果 r,那么可以加快获得计算结果的时间。即如果能找到一个 f 函数的增量版函数 finc,使 finc (x, x,r)的计算结果和 f(x OP x)的计算结果一致,那么应用上一次缓存的计算结果 r,f inc (x, x,r)的计算效率会远远高于 f(x OP x)。21.2 XML 物化视图增量维护原理对于 XML 物化视图的增量维护来说,假设 XML 查询的基础数据,即 XML 数据源为 x。客户端请求的 XML 查询计算可以看作 f。其查询计算结果 r 可以表示为:r=f(x)。XML基础数据所发生的变更为x,在树
10、型结构的 XML 数据源中,其变更是以节点为最小单位的,任何 XML 数据源的变更都可以归纳为对某个指定节点的修改、插入、删除操作。当 x 上出现了一个变化x 时,为了计算 f ( x + x )的计算结果 r,我们试图找到对应于 f 的增量计算 finc,使 r = finc ( x, x , r)。在增量计算 finc 的设计中,计算的过程中可以尽可能利用前次的计算结果 r,并尽可能少地访问原有的 XML 数据 x,那么 finc 的计算量就有可能大大小于 f 的计算量,进而实现 XML 物化视图的增量更新。我们已经实现根据 XPath 或 XQuery5查询 f 来组织增量计算 finc
11、 的几种代码生成方法 6。人们可以根据 XML视图定义语言的不同来设计不同的增量计算算法。同理,也可将变化的x,视为客户端请求发生了微小变化,如指定的参数数值发上变化,这样同样可以应用增量计算的原理,利用第一次查询的计算结果 r,计算出新的 finc 的生成代码。同样,以这种参数变化形式的增量维护方法也可以达到减少重复查询开销的目的。在 Web 环境中,XML 查询请求 f 从客户端发出,XML数据 x 作为数据源存储在服务器端,f(x)的前次计算结果 r 保存在客户端。为了保证这种分布式计算的运行效率,我们研制了一种客户服务器软件来支持增量维护计算;服务器配置于数据源一侧,管理数据源以及针对
12、 XML 查询 f 所生成的增量维护程序 finc;当数据源 x 发生数据变化x(或者当客户查询请求的参数数值变化了x)时,生成 finc( x, x , r),并将 finc 计算分解为 2 个部分,在服务器端完成与 x 和x 相关的计算,生成增量更新 fres。这个动态生成的 fres 程序代码被发送到客户端专门处理前次的计算结果 r 并得到新的计算结果 r。即,r= fres (r)。2 相关技术的研究与分析2.1 XQuery 物化视图的增量维护物化视图技术最早出现在数据库领域中。物化视图的增量研究多以传统数据库为基础。在以 XML 为格式的数据库中进行物化视图增量处理的研究还比较少,
13、技术方法也不太成熟。目前国内外已经进行的一些研究是:基于关系数据模型重构XML 数据视图。如:用关系表来存储 XML 文档及物化视图 7。根据数据源的变更,修改 XSLT 程序的动态执行流(XT-tree),实现对视图的增量维护 8。美国伍斯特工业学院计算机科学系的一个研究组采用代数的方法对物化视图进行增量维护,利用 XAT 数据结构进行 XQuery 视图的增量维护 9。还有,直接增量操作由 XML 的查询处理语言所生成的视图,例如,Arsany Sawires 等人提出的 XPath 物化视图的维护方法是具有灵活且较强表达力的视图定义方法 10,而且不限制视图是单调的且与视图结果集规模成正
14、比关系。但是这种维护方法是针对有大量重叠路径和谓词测试的多个视图的维护,因受重复测试和维护范围的限制而缺乏效率。2.2 XML 数据的查询、维护技术目前,对于 XML 数据的查询、维护技术的研究,主要有两个大的方向。一个是应用查询重写技术,根据已保存的XML 物化视图与查询的映射关系,重新修改查询语句,使其提高查询效率。另外一个是应用语义缓存技术,通过在客户端存储的多个 XML 物化视图,根据不同的物化视图相关联的组织,回答新的查询语句,从而达到提高查询效率的目的。总结以上两种技术,主要都是在客户端存储大量的物化视图和进行相关操作,这就给客户端带来了更多负担。而对于服务器端的查询优化技术的研究
15、还相对较少。3 系统框架介绍根据 XQuery 物化视图增量维护的原理,作者设计并实现了支持增量更新服务的实验系统;考虑到 Web 应用系统中客户服务器架构的特点,客户根据应用需求从同一 XML 数据源建立不同的物化视图,系统提供了用于物化视图维护的专用客户端模块;同时,为了支持多客户的物化视图维护,在服务器端提供增量维护代理,负责根据数据源的变化来生成视图更新程序。然而,Web 系统中 XML 数据源是共享资源,视图维护中要求捕获发生于数据源的所有变化,为此设置了数据源和触发器模块。客 户 端X Q u e r y 执 行 引 擎W e b增 量 维 护 代 理X Q u e r y 查 询
16、 引 擎X M L 数 据 源增 量 更 新 变 换 器触 发 器图 1 系统框架图系统中几个关键模块功能如下:(1)客户端 为 Web 应用系统提供了访问物化视图的接口;通过客户端提供的应用接口,Web 应用可以创建基于 XPath或 XQuery 语言的物化视图,并且能够通过增量更新程序的获取和执行来完成物化视图的维护。(2)XQuery 查询引擎 XQuery 查询引擎配置于客户端和服务器端;分别负责视图更新和首次查询获取 XML 视图。(3)增量维护代理 增量维护代理负责调度增量维护服务的各个工作流程,协调客户端请求和数据源变更响应等工作流程的并行处理。它为客户端提供增量维护服务的调用
17、接口,为客户端建立注册信息,管理增量更新程序的存储,维护增量更新程序与对应客户端的版本一致性。(4)增量更新变换器 负责增量计算程序的代码生成。此模块被增量维护代理调用,由增量维护代理提供数据源的变更信息以及客户端注册的 XQuery 表达式作为输入,此模块生成对应的增量更新程序代码。在代码生成过程中,将调用 XQuery查询引擎来完成涉及数据源 XML 文档的计算,并将探索查询的结果拼入增量更新程序。(5)XML 数据源+触发器 当数据源发生变化时,需要根据各种变化向增量维护代理数据源提交变更通知。此模块负责处理数据源变更和数据查询的同步处理控制。变更通知基本包括彭蕾:XQuery 物化视图
18、增量框架的研究 3删除某指定节点操作的变更,插入节点的操作的变更,修改节点操作的变更。3.1 系统执行过程介绍系统的典型的执行过程大体上可以分为三个部分:(1)首次查询情况:首先用户通过客户端发出查询请求,如查询学生列表中的学生信息:let $b:=doc(“StudentSet.xml”)/student return $b得到相关查询结果,并保存在客户端。(2)数据源数据变化带来的影响:当数据源发生数据变化时,数据源通过触发器,将变更信息发送到增量更新变换器,经过计算得到一系列更新程序,并存储于服务器端。如将学号为 200707007 的同学的年龄改为 25。更新语句:REPLACE NO
19、DE 25WITHdoc(“d:ss.xml“)/studentsno=“200707007“/age得到的更新程序为:fn:subsequence($rs, 1, 5),25,fn:subsequence($rs, 7)(3)非首次查询情况: 用户同样通过客户端发出相同请求:let $b:=doc(“StudentSet.xml”)/student return $b (查询刷新)查询将返回相应的更新程序:fn:subsequence($rs, 1, 5),25,fn:subsequence($rs, 7)客户端对首次的查询结果执行上述更新程序,便可得到准确的查询查新结果。4 增量维护代理模
20、块4.1 增量维护代理的功能介绍增量维护代理是服务器端的核心模块,它为了支持物化视图的更新,需要调度整个增量维护的工作流程,包括客户端请求的调度,数据源更新的响应以及注册信息列表的维护工作。针对 Web 系统中可能同时发生多个用户请求和多个数据源变化的特点,增量维护代理具有同步控制机制以满足多用户请求以及多数据源变更的请求。增量维护代理基本上可分为三个子模块,分别为对客户端请求的调度程序、对数据源变更的更新程序管理器,以及存储注册查询信息的注册程序更新程序列表。增 量 维 护 代 理调 度 程 序 模 块更 新 程 序 管 理 器注 册 信 息更 新 程 序列 表查 询 请 求 查 询 结 果
21、注 册 / 返 回 结 果更 新查 询 更 新 信 息 更 新 程 序数 据 源 更 新 触 发图 2 增量维护代理框架图(1)调度程序模块:负责接收客户端的查询请求,接收查询请求后,将信息注册到注册信息更新程序列表,并判断是否为首次查询。发送查询结果和更新程序到客户端。具有同步控制响应机制,可同时接收多用户查询请求。(2)更新程序管理器:负责数据源更新后触发程序的接收,提取注册信息更新程序列表的相关信息,向更新程序生成器模块发送更新程序请求,同时负责将更新程序代码存储到更新程序列表的相应位置。具有同步控制相应机制,可同时接收数据源多个触发请求。(3)注册信息更新程序列表:负责存储用户查询请求
22、的基本信息以及对应的更新程序代码,同时具有版本控制的机制,具体参见论文 11。4.2 增量维护代理中的同步访问机制XQuery 物化视图增量维护系统不同于一般意义上的客户端请求服务器端响应的查询系统。XQuery 物化视图增量维护代理不仅在响应客户端请求时要处于繁忙状态,而且在响应数据源的变更通知时,要对已注册的 XQuery 查询作增量更新计算,生成增量更新程序,也要处于繁忙状态。当客户端的增量维护请求与数据源触发器的变更通知同时发生时,就需要系统能够对这二者做出并行地处理。而对于多客户端同时向增量维护代理发送请求时,增量维护代理还需要在此基础之上同时响应 XQuery 查询的请求。因此,增
23、量维护代理的多线程机制主要分为两个部分:客户端请求查询部分(调度程序模块)和数据源更新部分(更新程序管理器模块)。增量维护代理是部署在服务器端的子系统,客户端随时都可能发出查询请求,然而接收请求和执行查询的过程往往需要同步进行,不仅要随时接收来自客户端的请求,而且还要进行数据的查询。而往往数据查询的时间远大于接收请求的时间。考虑到以上因素,系统应用多线程的机制,由一个主管理线程控制和调度各个子线程,而数据查询等功能都由各自独立的子线程来完成。在增量维护代理中,注册和更新程序列表模块,是数据的共同访问区,应用同步的机制来防止数据读取的死锁发生。主管理线程有三个基本功能,两个负责对客户端请求的查询
24、,一个负责数据源的更新请求。A.当接收到客户端的查询请求后,生成查询处理子线程。B.当接收到查询结束通知时,向子线程获取查询结果。C.当接收到数据源更新信息时,将更新信息加入到更新消息列表。客户端请求查询的同步过程:增量维护代理中的调度程序模块是由一个主管理线程来统一调度的。主管理线程负责随时监听客户端发送的查询请求。当接收到客户端的查询请求时,主管理线程将根据请求信息判断查询种类(首次查询和非首次查询),然后创建一个处理XQuery 查询的子线程,这个子线程负责此查询种类的 XQuery查询请求的查询工作,当查询完成时,子线程先暂时保存着查询结果,之后发送给主管理线程一个查询结束通知。这时,
25、主管理线程在接收到结束通知后负责向子线程提取查询结果,并进行注册信息之后将结果视图返回给客户端。数据源更新请求的同步过程:更新程序管理器部分也同样由上述的主管理线程来控制调度。当收到数据源发送的更新消息之后,主管理线程将其更新的具体信息加入到变更消息队列中。同时,在更新程序管理器4中有一个更新程序生成线程,这个线程主要负责更新程序的调度策略。它随时从更新消息队列中获取变更信息,同时也需要访问注册更新列表,之后依次生成更新程序,将更新程序加入到注册更新程序列表,往复此工作。5 XML 数据源代理介绍5.1 XML 数据源代理功能介绍XQuery 物化视图增量更新系统的数据源代理部分的功能主要包括
26、两个方面:第一,满足用户对于数据源更新的基本操作。第二,在数据源更新时对增量更新系统的触发通信机制以及后续操作。XML 数据源主要包括三个核心模块:管理员更新接口、socket 触发器以及 IDataSource 数据源接口。管理员更新接口 主要负责接收数据库管理员对 XML 数据源的更新操作,提供了五个相关的修改数据源接口,包括前插操作、后插操作、修改操作、删除操作和重命名操作。同时,更新接口还支持多个更新请求同步操作,通过主管理线程分配子线程进行更新操作,同时提供相应的锁机制来保证更新的正确性。Socket 触发器 通过 Socket 通讯机制,向增量维护代理发送数据源收到的更新请求,触发
27、更新程序生成器,使其进行更新程序代码的计算。IDataSource 数据源接口 满足 XQuery 执行引擎的数据源操作接口,是引擎对数据源查询、更新操作的唯一接口。5.2 数据源模块的工作步骤XML数 据 源 管 理 员 更新 接 口S o c k e t 触发I D a t a S o u rc e 数 据 源接 口X Q u e r y 执 行 引 擎增 量 维 护 代 理更 新 监 听接 口增 量 变 换 管 理 器【 7 】 X Q u e r y U p d a t e用 户 ( 管 理 员 )【 1 】 数 据 源 修 改 操 作【 3 】 S o c k e t 触 发 ( X
28、 P a t h E x p , N o d e )【 4 】 U p d a t e 消 息X Q u e r y 查 询探 索 查 询 器【 5 】 探 索 查 询X Q u e r y 查 询【 6 】 X Q u e r y U p d a t e图 3 数据源模块结构图参照上图,详细说明数据源工作过程:1) 数据管理员向数据源发送数据源更新请求。2) XML 数据源在接受到更新请求之后,经过对已有XML 文件的访问,构造生成数据源触发消息。 (触发消息包含更新节点的 XPath 表达式和更新节点内容)3) 触发消息通过 Socket 机制传送到增量维护代理的数据源更新监听接口。4)
29、数据源更新监听接口将更新消息传递给增量变换管理器模块。5) 增量变换管理器通过探索查询和 XQuery 引擎查询等步骤生成增量更新程序。6) 增量变换管理器调用数据源更新的 XQueryUpdate更新方法,向数据源发送更新请求。7) XQuery 执行引擎完成数据源更新的XQueryUpdate。5.3 XML 数据源代理的同步控制机制XML 数据源代理的同步问题主要是两个方面的内容,第一,多用户的数据源操作请求的同步控制。第二,数据源的查询更新操作的同步控制。对于处理多个用户的数据源操作请求,系统在数据源的管理员更新接口的模块中加入了查询同步控制器,使其在处理多个用户同时查询的情况下,产生
30、负责查询的子线程,并且为每个子查询线程分配 XQuery 查询引擎实例,每个 XQuery 查询引擎可以支持同时访问多个数据源。而对于每个数据源的查询、更新操作就需要利用锁机制进行同步访问控制。更新操作类似于数据库当中的写操作,而查询操作则相当于数据库中的读操作。这里就仿照类似于数据库中的同步访问机制,通常情况下在更新操作之前,将数据源加锁,控制查询子线程为阻塞状态。进行更新操作后,释放锁,将查询子线程恢复状态。同时,也在数据源操作同步控制模块中,利用 Java 的多线程控制机制来实现对数据源操作的同步控制,以达到查询引擎可以同步正确地访问数据源的目的。同时,在数据源操作同步控制模块中还预留了
31、数据源管理接口,以便于对数据源的操作与管理。设 计 实 现 部 分X Q u e r y 执行引擎 1 X Q u e r y 执行引擎 2 X Q u e r y 执行引擎 3用户 ( 多个 )查 询 同 步 控 制 器派生线程 2X Q u e r y 查询请求派生线程 1派生线程 3数据源 1数据源 3数据源 2数 据 源 操 作 同 步 控 制 数 据 源 操 作 同 步 控 制 数 据 源 操 作 同 步 控 制数据查询操作数据查询操作数据查询操作数据查询操作数据查询操作数据查询操作查询操作查询操作 查询操作数据源管理接口图 4 数据源同步控制原理图数据源操作同步控制的核心机制:彭蕾
32、:XQuery 物化视图增量框架的研究 5数 据 源 更 新 操 作 1更 新 消 息 处 理 线 程 1更 新 消 息 处 理 线 程 2A d d数 据 源 更 新 操 作 2A d d更 新 操 作 列 表主 线 程 控 制 器监听生成线程更新操作标准接口图 5 更新操作同步控制机制示意图为了使多个更新操作可以同时执行,系统维护了一个更新操作列表,采用类似于生产者-消费者的思想,控制公共的操作列表。当有对数据源的更新操作时,首先将每个更新操作存入更新操作列表。通过一个主线程的管理模块监听列表中是否有操作存在,如果列表非空,表示有操作等候,这时主管理线程创建子线程从列表中取走相应的操作,进
33、行数据构造和发送更新消息等一系列操作。在系统规定的最大子线程个数内,可以持续地从更新操作列表中取等待的操作,直至列表为空。子线程执行完相应的操作后,自动回收以保证有剩余的子线程空间继续执行。6 性能测试为了验证 XQuery 物化视图增量更新系统框架的高效性,性能测试的方案采取记录由后台数据源变化所导致的重新查询及增量维护所耗费的时间,并进行比较。后台数据变化主要分为三种操作:插入、删除和修改。本案例选用数据量不同的四组 XML 文档样本,分别是 200KB,500KB,1MB 和 2MB。测试的硬件环境:客户端:Intel Pentium Dual CPU 1.80GHz, 内存 2GB,操
34、作系统是 Windows XP SP2服务器端:Intel Pentium Dual CPU 1.80GHz, 内存 2GB,操作系统是 Windows 2003 Server SP36.1 测试结果测试结果如表 1 所示,其中“重新计算”表示当后台数据源发生变化时,重新查询视图并返回所耗费的时间;“增量计算(平均)”是数据源发生删除、插入和修改等变化后,采用系统的增量更新方法得到查询结构所耗费时间的平均值。(其中包括插入、删除、更新等操作)表 1.不同视图数据更新时耗费的时间视图大小 200KB 500KB 1MB 2MB重新计算 878(ms) 1513.6(ms) 4340.2(ms)
35、16768(ms)增量计算(平均) 171.7(ms) 188(ms) 281.4(ms) 343.1(ms)6.2 测试结果分析从上述的测试结果以及实验结果之间的比较情况,可以得出以下结论:(1)在维护的视图的数据量相同时,增量维护耗费的时间明显少于重新计算耗费的时间。(2)随着视图数据量的增加,重新计算视图的时间和增量维护的耗费时间均增加,但重新计算的时间明显大于增量维护的时间。(3)物化视图的增量维护方法更适用于维护大数据量的视图,并且性能优势非常明显。7 结 论本文阐述了 XML 物化视图增量维护的原理,并重点说明了 XML 物化视图增量维护系统的设计实现思路。在此基础之上,通过性能测
36、试分析说明了这种增量维护系统能够有效地减少传输开销。本文的贡献在于提供了面向 Web 环境的 XML 物化视图增量维护方法及其系统设计思想和解决方案。这种方法不仅适用于数据源发生变化的 XQuery 物化视图增量维护,还适用于查询语句参数变化的物化视图增量维护。参 考 文 献1 Blakeley, J. A., Larson, P., Tompa, F.W. Efficiently Updating Materialized ViewsC. In Proceedings of the 1986 ACM SIGMOD international conference, 1986.2 Ashish
37、 Gupta, Inderpal Singh Mumick. Maintenance of materialized views: Problems and techniques and applicationsC. IEEE Data Engineering Bulletin. 1995,18(2):3183 A Gupta, IS Mumick, VS Subrahmanian. Maintaining Views IncrementallyC. The 1993 ACM SIGMOD international conference. 1993:157166.4 Abiteboul S,
38、 et al. Incremental Maintenance for Materialized Views over Semistructured DataC. In Procedings of the 24th International Conference on Very Large Databases. 1998:2-24.5 W3C. XQuery 1.0: An XML Query Language. Version 1.0Z. W3C Candidate Recommendation. 2005.11.6 Xueyun Jin, et al. Maintaining Mater
39、ialized XPath Views Incrementally by Program TransformationC. In Proceedings of the 2nd ICCSE. 2007.7 Dae Hyun Hwang and Hyun Chul Kang. XML View Materialization with Deferred Incremental RefreshC. Journal of Information Science and Engineering 21, 1083-1119, 2005.8 Makoto Onizuka, Fong Yee Chan, Ry
40、usuke Michigami and Takashi Honishi. Incremental Maintenance for Materialized XPath/XSLT ViewsC. World Wide Web Conference Committee (IW3C2), May 20059 Maged ELSayed, Ling Wang. An algebraic approach for incremental maintenance of materialized XQuery viewsC. Proceedings of the 4th international workshop on Web information and data management, 2002. ACM Press, 2002:8891 10 Arsany Sawires, Junichi Tatemura,Oliver Po. Incremental Maintenance of PathExpression ViewsC. SIGMOD Conference,2005. 2005:44345411 孟彦等. 面向XML物化视图远程增量维护的版本管理技术研究 J 计算机工程与设计.2008.10(19):5054