没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报TempoX:一种规范的数据管理在多时态和多模式版本XML数据库Zouhaier BrahmiaZhao,Hind Hamrouni,Rafik Bouaziz计算机科学系,经济管理学院,斯法克斯大学,Aerodome路,Km 4.5,邮政信箱1088,3018斯法克斯,突尼斯阿提奇莱因福奥文章历史记录:收到2019年2019年7月15日修订2019年8月22日接受在线预订2019年8月25日保留字:XMLXQuery Update FacilityXML数据库时态数据库模式版本控制时态XML数据操作A B S T R A C T虽然支持模式版本控制的多时态XML数据库被用于多个领域,如电子商务、电子健康和电子政府,但现有的数据库管理系统和XML工具不提供对管理(插入、更新和删除)时态XML数据或时态XML模式版本控制的任何支持。此外,虽然在过去的十年中,许多研究工作都集中在时态XML数据库中的模式版本控制,任何注意力都致力于在这样的数据库中操作数据。为了填补这一理论和实践的空白,本文提出了一种通用的方法,命名为TempoX(时态XML),在多时态和多模式版本的XML数据库的数据操作事实上,我们(i)定义了一个新的支持时态模式版本的多时态XML数据模型,命名为TempoXDM(时态XML数据模型),(ii)介绍了我们的方法所基于的原则此外,为了证明TempoX的可行性,我们用它来提出一个时态XML更新语言,命名为TempoXUF(时态XQuery更新设施),作为W3C的XQuery更新设施语言的扩展,时间和版本方面。此外,为了验证我们的语言建议,我们开发了一个系统原型,命名为TempoXUF管理器,支持TempoXUF。©2019作者(S)。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍如 今 , 在 不 同 的 领 域 ( 例 如 , 商 业 金 融研 究 . ) , 使 用 XML(W3C,2008)在原生XML数据库中存储数据(Bourret,2010;Eito-Brun,2017),并与合作伙伴和客户交换数据。此外,这些应用程序中的大多数在本质上是临时的,需要保存整个历史数据和模式改变(例如,管理电子商务客户档案的演变、管理电子政府系统中法律文本的更改、在线管理患者的医疗记录)。因此,以有效的方式满足最终用户和应用开发者的所有时态需求的时态XML数据库成为这种应用的必需品。*通讯作者。电子 邮件 地址: zouhaier. fsegs.rnu.tn ( Z. Brahmia ) , hend. fsegs.rnu.tn (H.Hamrouni),rafik. usf.tn(R. Bouaziz)。沙特国王大学负责同行审查应用. 这里值得一提的是,对于一般的时态数据库(Dyreson和Grandi,2018),XML构成了对时态分组数据模型的强大支持(Wang等人,2008年),一直被认为是理想的工具建模的时间信息。时态XML数据库(Brahmia和Bouaziz,2009)是一种内置时间支持的XML数据库,用于管理随时间变化的XML数据。它包括XML文档,其中包含可能随着事务时间和/或有效时间而演变的元素。因此,在这样的上下文中,XML元素可以具有快照、事务时间、有效时间或双时态格式。多时态XML数据库包含不同时态格式的元素(例如,快照、有效时间和双时间)。多时态XML数据库管理系统(Brahmia等人,2014 a)应该被很好地装备,以便通过支持对数据库模式和数据库内容的改变(即,数据),并维护系统目录(或Meta数据库)中的模式变化和数据库中的数据变化的完整和集成的历史。更具体地说,这些先进的DBMS必须提供适当的工具,以帮助(i)数据库设计人员和管理员定义和更改一致的临时XML模式,(ii)最终用户添加、更新、删除,https://doi.org/10.1016/j.jksuci.2019.08.0091319-1578/©2019作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.comZ. Brahmia等人/沙特国王大学学报1473hihihihihi以及在模式版本控制下以透明和有效的方式正确地查询多时态数据。在文献中,有一个在多时态和多版本的原生XML数据库中的数据操作的工作缺乏据我们所知,只有Brahmia和Bouaziz(2009)处理了插入、修改和删除,用于管理多时态XML数据(Brahmia等人,2012 a,2014 a,2015,2018; Roddick,2018; Sundergrass等人, 2008年)。然而,更多的注意力已经被给予(i)管理时态XML数据库中的模式版本化(Brahmia等人,2012 b,2014 a,2014 b,2016; Currim等人,2009年; Sundergrass等人, 2008年),(ii)解决模式演变的传统(Amavi等人,2014;Cavalieri等人 , 2011;Necasky'etal. , 2012;Nösinger 等 人 , 2013 ) 和 颞 叶(Curino等人,2008; Moon等人, 2008)XML数据库,(iii)将时态关系数据(存储在表中)发布为XML文档并使用XQuery来表达(复杂的)对这些文档的时态查询(Wang和Zaniolo,2005),以及(iii)在单个模式版本下查询时态XML数据库(Mandreoli等人, 2006 年 ; Noh 和 Gadia , 2006 年 ;Rizzolo 和 Vaisman , 2008年)。现有的原生XML DBMS(例如,xDB、eXist、Sedna、BaseX和Tamino),支持XML数据处理的关系DBMS(例如,Oracle 12c和DB2 ver.10),甚至是NoSQL DBMS(例如,HBase、MongoDB、Oracle NoSQL数据库和GraphBase)不提供对操作时态(XML)数据的任何支持。此外,尽管已经提出了几种语言来更新传统的XML数据,如 XUpdate ( Laux 和 Martin , 2000 ) 、 UpdateX ( Sur 等 人 ,2004)、XQuery Update Extension(由eXist-db支持)和XQueryUpdate Facility(XUF)(W3C,2011),它们都不支持在单个或多个模式版本下操作时态XML数据。因此,应用程序开发人员在制作处理多时态和多版本XML数据库中的数据的程序时,不得不以特别的方式进行。因此,我们认为,在模式版本控制下操作时态XML数据的问题是非常有趣的,需要更多的关注,无论是研究人员和公司建设DBMS和软件,这是邀请提出通用的,有效的和完善的解决方案。出于上述所有原因,为了在理论和实践层面上填补这一空白,我们 在 本 文 中 提 出 了 一 种 新 的 通 用 方 法 , 称 为 TempoX ( 时 态XML),用于操作(即,插入、删除和更新)时变XML数据。准确地说,我们定义(ii)一个新的多时态XML数据模型支持时态模式版本,命名为TempoXDM(时态XML数据模型),(ii)我们的方法的基本原则和约定,以及(iii)所有数据操作操作的规范请注意,我们提出了一个新的操作,名为“evolve”,它是特定于时间设置的。此外,由于操作的时态XML元素需要访问和确定所有有关的元素,我们优化我们的模型,通过引入语义和描述同一实体的时态XML元素之间的直接联系。请注意,我们的TempoX方法是通用的,因为它既独立于XML语言,也独立于XMLDBMS。因此,为了更实用,我们使用我们的方法提出了一种时态XML更新语言,名为TempoXUF(Temporal XUF),作为W3C(传统)XUF(W3C,2011)语言在时态和版本方面的扩展一般来说,每个TempoXUF数据操作操作都用某个时态子句扩展XUF操作。此外,为了在技术上验证该建议,我们开发了一个名为TempoXUF-Manager的软件工具,该工具支持Tem-poXUF。因此,我们在XML数据管理的最新技术和实践方面的贡献是非常重要的。显然,就我们所知,我们是第一个提供理论方法和实际解决方案的人,用于在共存多个时态XML模式版本的环境中管理可能具有多个时态维度的XML数据的问题。本文的其余部分组织如下。秒2提出了TempoXDM,我们的多时态XML数据模型,支持时态模式版本。秒3介绍了我们的TempoX方法的基本原则。秒4提供了不同数据操作的规范。秒5处理我们建议在每个时间版本化的XML元素的各个元素之间定义的语义链接。秒6通过引入根据TempoX 方法定义的时态XML 更新语言TempoXUF 和系统原型TempoXUF-Manager来展示我们方法的可行性。秒第七章讨论了相关的工作,并澄清了本工作对最先进技术的贡献。8提供了文件的摘要和对我们未来工作的一些评论2. TempoXDM:支持时态模式版本控制的多时态XML数据模型我们提出的数据模型被命名为TempoXDM(Tempo- ral XML数据模型)。它是XML Schema(W3C,2004)在时间和版本方面的扩展;选择XML Schema是因为它是最强大的XML Schema语言,并且得到了W3C的支持。我们在下面介绍TempoXDM的功能。TempoXDM是多时间和多版本的:话语领域的每个实体(例如,学生、课程和教师)可以有几个多时态XML模式版本和几个多时态XML文档(Brahmia和Bouaziz,2008年)。多时态XML模式版本是包含不同格式的XML元素的XML模式版本:transaction-time、valid-time、bitempo- ral和snapshot(默认格式)。符合多时态XML模式版本的多时态XML文档是包含不同格式的XML元素的XML文档。时态格式并不表征XML模式版本,而只是表征XML模式版本的元素,因为对历史的要求可能因元素而异。快照元素没有任何temporal属性。transaction-time元素有两个时间属性:TST和TET。valid-time元素有两个时态属性:VST和VET。bitemporal元素有四个时态属性:TST、TET、VST和VET。此外,由于我们的模型是一个时间分组的数据模型(它是基于XML),我们建议分组和表示任何时间元素的演变(即,transaction-time、valid-time或bitemporal元素),该复杂XML元素还包括若干其他复杂元素:根据演化元素的格式,每个演化由具有两个或四个时间属性的复杂元素具体化。很好的例子。图1显示了我们的Tem- poXDM模型的一个实例,它提供了包含一组产品的商店的第一个XML模式版本。每个产品/元素由“代码”属性表征图2给出了对应于图1中给出的模型并表示商店的第一个XML模式版本的XML模式代码。在这个XML模式代码中,每个时态元素1474Z. Brahmia等人/沙特国王大学学报hihihihihihi喜喜hi喜喜喜喜hihi嗨嗨嗨嗨嗨嗨嗨嗨嗨Fig. 1. 描述商店中产品的TempoXDM模型。(即,Price/、StockQt/和MinStockLevel/)被包括在另一个复杂元素中,以便对时态元素的演变进行分组;该复杂元素的名称是时态元素 的 名 称 的 复 数 形 式 。 因 此 , 元 素 Prices/ 、 StockQts/ 和MinStockLevels/ 被 定 义 为 分 别 对 元 素 Price/ 、 StockQt/ 和MinStockLevel/的演变进行分组。此外,系统自动地将适当的时间戳属性与元素Price/、StockQt/和MinStockLevel/相关联,根据它们中的每一个的时间格式:系统自动地将四个时间戳属性VST、VET、TST和TET分配给元素Price/(bitemporal),将两个时间戳属性VST和VET分配给元素StockQt/(valid-time),并且将两个时间戳属 性 TST 和 TET 分 配 给 元 素 MinStockLevel/ ( transaction-time)。至于快照(即,non-temporal)元素Description/,它是在没有times-tamp属性的情况下定义的,并且由一个简单的XML元素表示,因为该元素只有一个版本(即,最后一个版本)将保存在每个XML文档中,该文档对图1所示的XML模式版本有效。 2;请注意,如果快照元素具有某些属性,则它将由复杂的XML元素表示。然而,尽管是快照格式,我们也选择将Description/元素放在一个名为“Descriptions”的复杂父元素中(即,快照元素名称的复数形式),以便以相同的方式处理元素,而不管其格式如何。在图2中,元素Products/包含所有Product/ elements;它是根元素schema/的唯一子元素。此外,元素Description/、StockLevel/和MinStockLevel/中的每一个对于其属性minLevel具有值“0”,这意味着设计者已经将这些元素指定为可选的(即,对于某些产品/元素,它们可能不存在)。图3给出了一个XML文档,它对第一个模式版本“ProductSchema_V1.xsd”有效3. 拟议办法我们在多时态和多版本XML数据库中管理数据的方法所依赖的基本原则P1:有三种基本的数据操作:插入、更新和删除XML元素。复杂的操作,如将XML元素从同一文档中的一个位置移动到另一个位置、复制XML元素以及将XML元素拆分为多个元素,可以使用这三个操作的序列来表示。P2:数据操作对时态XML文档的有效性没有影响。每个XML数据操作操作必须使每个更新的文档保持格式良好,并对其XML模式版本有效。因此,数据库的一致性得以保持。P3:数据更新操作不得导致模式更改操作。我们的方法不支持的情况下,当一个数据操作操作的XML文档需要一些改变对应于此文档的XML模式版本(为了有更新的文档有效的模式版本),这样的操作总是被取消。P4:数据操作的范围。更新XML元素意味着更新其内容和/或更新其有效时间属性(VST、VET)的值。P5:默认使用当前XML模式版本。默认情况下,终端用户在这样的实体的当前XML模式版本下操纵任何实体的数据:(i)新元素被插入到对当前XML模式版本有效的相应XML文档中,以及(ii)通过在链接到当前XML模式版本的相应XML文档中记录修改或删除操作的轨迹,根据当前模式版本修改和删除存储在对先前模式版本有效的XML文档中的已经存在的XML元素(第二个方面将在小节4.2和4.3中详细解释)。P6:过去的XML模式版本只能显式使用。在某些情况下,终端用户可能需要在其对应的过去模式版本下操纵一些过去的数据(例如,纠正错误的过去数据、添加遗忘的过去数据、移除一些无用的过去数据)。在这种情况下,为了满足他/她的需求,最终用户应该明确指定他/她想要使用的过去版本。P7:将以前XML模式版本下定义的数据逐步迁移到当前XML模式版本。默认情况下,对在以前的XML模式版本下定义并存储在旧XML文档中的时态XML元素的修改是通过一个新元素来执行的,该新元素被插入到对当前XML模式版本有效的相应XML文档中。这提供了从链接到过去的XML模式版本的文档到与当前XML模式版本相关联的XML文档的数据因此,在某个时间点,所有对应于过去XML模式版本的XML文档将只包含过去的数据;所有未来和当前数据将只存在于与当前模式版本相关联的P8:模式版本控制是临时的。在我们的环境中,XML模式随着事务时间的推移而发展(Grandi,2015)。每个XML模式版本都由它的TST和TET来标记时间戳,当它被创建和改变时,它们分别由DBMS自动分配给这个版本。P9:通过使用中Z. Brahmia等人/沙特国王大学学报1475图二、ProductSchema_V1.xsd,描述产品的第一个XML架构版本多时间和多版本XML环境,XML元素的列表,其存储相同数据的演变一个雇员的所有工资,一个产品的所有价格),可以是分布在不同的XML文档中,使得它们中的每一个对于不同的模式版本都是有效的。我们提出了“通用XML元素”的概念1476Z. Brahmia等人/沙特国王大学学报图3.第三章。ProductInstances_V1.xml,对“ProductSchema_V1.xsd”有效的第一个XML实例文档版本4. 数据操作规范在本节中,我们将提供时态XML数据操作(插入、修改和删除)的规范。4.1. 插入在下文中,我们将研究插入快照、transaction-time、valid-time和双时态XML元素。4.1.1. 插入快照元素快照格式的XML元素是传统的XML元素(即,没有时间戳属性)。只有当没有其他相同的(当前)元素属于同一个通用XML元素时,才允许插入这样的元素。插入的元素被认为是当前的,直到更改。4.1.2. 插入事务时间元素一个事务时格式的XML元素是一个标记了两个时间的元素,TST和TET。当最终用户引入新的事务时间XML元素时,系统自动地将当前时间的值和值“UC”(“until change”)分别分配给该元素的属性TST和TET。由于事务时不允许管理过去的数据,因此如果已经存在属于同一个泛型XML元素的当前元素,则不允许插入操作。4.1.3. 插入有效时间元素要插入有效时间格式的元素,其有效时间间隔必须不与属于同一通用XML元素的任何其他正确元素的有效时间间隔重叠。有效时间元素可以是当前、过去或未来元素,这取决于当前时间相对于其有效时间间隔的位置。回想一下,两个有效时间(VST和VET)是由用户提供的。属于通用XML元素“gxe”的元素“e”的VET属性在这种情况下,我们不能有一个属于'' gxe ''的未来元素但是,future元素的VET4.1.4. 插入双时态元素双时间元素的插入以与有效时间元素的插入类似的方式执行,除了系统还将当前时间的值分配给TST属性并且将值“UC”(如果它是当前或未来元素)或当前时间的值(如果它是过去元素)分配只有当一个双时态元素的有效时间间隔不与属于同一个通用XML元素的任何其他正确元素的有效时间间隔重叠时,它才能成功插入。4.2. 修改时间元素的修改可以是其内容的修改和/或其有效时间属性的值的修改(即,修改有效时间间隔)。我们还区分(i)由最终用户指定的一个元素的修改和(ii)元素集合的修改,其中每个元素具有部分重叠或等于由用户指定的时间段的有效时间间隔。4.2.1. 修改最终用户在下文中,我们提出了由用户指定的快照、事务时间、有效时间和请注意,对于有效时间或双时态元素,修改操作可以被认为是对某些错误的纠正,或者是对当前事实的演变。A) 修改快照元素以破坏性方式修改快照元素。它的旧值被新值取代。B) 事务时间元素事务时间元素仅在它是当前元素时才被修改。通过插入新元素来执行修改,该新元素提供元素的正确内容和/或某些属性的正确值(即,属性中不同于TST和TET属性的属性),并通过将当前时间的值分配给修改元素的TET属性C) 修改有效时间元素有效时间元素的修改可以是数据校正,包括修复一些现有的错误,或者是数据修改。Z. Brahmia等人/沙特国王大学学报1477演化,其包括记录真实世界中某些信息的演化(即,从状态/值传递到新的状态/值而不将最后的状态/值视为错误)。C.1) 纠正用户指定的有效时间元素以破坏性方式执行有效时间元素的校正。实际上,由用户定义的校正元件替换应当被校正的元件:插入校正元件并且由用户指定元件被物理移除。校正元素的有效时间间隔可以包括属于同一通用XML元素的其他校正元素的有效时间间隔或与之重叠在列入的情况下,有关的元素被物理删除。然而,在重叠的情况下,所涉及的元素(一个或两个元素)的有效时间间隔被减少到非重叠时段。图4提供了示出两种情况的示例;元素e2由e5校正,e5的有效时间间隔包含e2和e3的有效时间间隔并且部分地重叠e1和e4的有效时间间隔。因此,校正操作移除e2和e3,减少有效-时间间隔E1和E4,并插入E5。C.2) 由用户指定的有效时间元素的演变修改操作被认为是演变操作。当它通过提供当前元素的新版本而不考虑先前版本来“更新”当前元素时修改后的版本是错误的。这个操作是通过插入一个演化元素来执行的,该演化元素演化另一个当前元素。当(i)演化元素的VET等于“now”(当VET属性的精确值未知时也使用此值),以及(ii)演化元素的VST高于或等于当前时间时,我们有一个演化操作演化元素的VET将变得等于刚好在演化元素的VST之前的值。图在图5中,我们给出了元素e2通过另一元素e3的演化操作的示例。D) 双时态元素类似于有效时间元素的修改,双时态元素的修改可以是错误校正或数据演化(这是罕见的情况)。D.1) 用户指定的双时态元素的校正双时态元素的校正以对数方式执行。实际上,这是通过插入校正元素并将校正元素记录为错误元素来实现的。注意,校正元素的有效时间间隔可以完全或部分地与属于同一通用元素的其他校正元素的有效时间间隔重叠。在这种情况下,涉及的元素处理如下:完全重叠的元素可以包括当前元素、一些未来元素和一些过去元素。从现在开始,所有这些元素都被认为是错误的(过去的)元素,但只有当前和未来的元素被更新:每个当前或未来元素的TET属性采用当前时间值,因此相应的元素成为错误的过去元素;过去的元素不被更新,但它们被认为属于错误元素的集合。部分重叠的元素最多是两个元素,一个元素的有效时间间隔在左边重叠,另一个元素的有效时间间隔在右边重叠。然后,这些元素中的每一个在非重叠时段期间被认为是正确的,而在重叠时段期间被认为是错误的/不正确的因此,这些元素的有效时间间隔应减少到不重叠的时间间隔。每个(部分重叠的)元素的校正通过插入具有等于非重叠时段的有效时间间隔的归约元素来执行;校正操作在这里被称为归约操作。如果减少的元素是当前或未来的元素,则其TET属性采用当前时间的值(即,执行校正/归约操作的时间),因此它变成错误的过去元素。图6示出了用新的双时间当前元素e4对双时间过去元素e2的校正。e4的有效时间间隔包括e2和e3(当前元素)的有效时间间隔,并且在右侧部分地重叠e1(过去元素)的有效时间间隔。因此,e3的TET属性取当前时间的值,E3成为错误的元素。此外,插入e4作为新的当前元素,并且添加过去的缩减元素e5以便缩减e1。见图4。 校正由用户指定的有效时间元素的第一示例。图五. 有效时间元素的“演变”示例●●1478Z. Brahmia等人/沙特国王大学学报见图6。 一个双时态元素的校正示例,同时使用一个缩减元素。D.2) 用户指定的双时态元素的演化与有效时间元素的演化类似,如果满足以下三个条件,则发生双时态元素的演化:要演化的元素是当前元素,其VET属性的值等于演化操作执行如下:a) 通过将当前时间的值分配给待演进元素的TET属性来关闭待演进元素的事务时间间隔;b) 加入进化元素;c) 插入新元素,其表示要演进的元素的新版本,有效时间间隔等于:[下限=演进元素的VST,上限=(演化元素的VST- 1)]。注意,如果演化元素是未来元素,则这样的元素可以是当前元素,或者如果演化元素是当前元素,则这样的元素可以是过去元素。图7提供了演化操作的示例,其中终端用户提供未来元素e3(演化元素)以e2(它是一个双时态元素,具有VET =“now”)。为了执行此操作,系统执行以下操作:通过将当前时间的值分配给e2的TET属性,关闭e2的事务时间间隔;- 插入新元素e4,以便将e2的VET属性的值● 插入新元素e3。4.2.2. 在最终用户指定的时间段内进行修改有时,最终用户可以指定一个修改生效的时间段。 例如,在2019-01-01至2019-12-31期间,销售部门所有员工的工资增加100。在这种情况下,修改操作涉及具有部分重叠或等于指定周期的有效时间间隔的每个元素。由于属于同一通用XML元素的元素可以在多个模式版本下定义,并因此存储在不同的XML文档中,因此指定的周期可以重叠不同格式的几个元素(有效时间,事务时间,和双时态)和不同类型(过去、当前和未来)。见图7。 一个双时态元素的“进化”的例子●●Z. Brahmia等人/沙特国王大学学报1479此外,如果修改操作涉及属于不同通用XML元素的元素(例如,修改从2019-01-01到2019-04-30期间的一组产品的当前生产成本和当前销售价格有效时间和双时间)和不同类型(例如,过去和当前),并且属于不同的类属元素。这种修改操作被称为多模式修改。注意,由于其性质,此操作非常复杂且代价高昂,因此需要进行一些优化以提高其性能;我们将在第二节中处理一些优化方面。五、无论如何,每个涉及的元素都应该根据其模式版本、类型、时间格式以及最终用户指定的新值和/或系统(从指定值)导出的值进行更新因此,多模式修改可能会影响多个XML文档,这对最终用户是透明的。请注意,指定的时间段可以完全或部分重叠一组正确的有效时间和双时间元素的有效时间间隔,这些元素满足修改操作的条件。这些元件如上面所解释的那样被修改此外,当用户指定的时间段包括当前时间时,修改操作可能涉及一些快照和当前事务时间元素。事实上,即使任何快照元素都没有时间间隔,它也被认为是任何时间的当前元素。对于当前事务时间元素,由用户指定并且包括当前时间的时段可以完全或部分地与这样的元素的事务时间间隔重叠:当时段的开始在元素的TST之前时完全重叠,并且当时段的开始在元素的TST之前时部分重叠。周期的开始跟随元素的TST。如上所述,这些涉及的快照和当前事务时间元素被修改图8提供了在指定时间段P期间的校正操作的示例,该指定时间段P与e2(过去的有效时间元素)和e3(过去的双时间元素)的有效时间间隔完全重叠,并且与e1(过去的有效时间元素)和e4(过去的双时间元素)的有效时间间隔部分相应地,通过插入校正元素e6(过去的双时间元素)来校正元素e3,同时用元素e5(过去的有效时间元素)来替换e2。此外,通过在左边减小其有效时间间隔并插入有效时间间隔覆盖重叠时段的元素e7(过去的有效时间元素)来校正元素e1,而通过插入减小元素e9和校正元素e8(两个双时间元素)来校正e4。4.3. 删除与修改操作类似,我们在此区分(i)删除由最终用户指定的一个元素(见4.3.1小节)和(ii)删除一组元素,其中每个元素的有效时间间隔部分重叠或等于用户指定的时间段(见4.3.2小节)。4.3.1. 删除用户指定的元素快照或有效时间元素的删除是以破坏性的方式执行的:从数据库中物理删除该元素。任何过去、当前或未来的有效时间元素都可以被删除。事务时间或双时态元素的删除以逻辑方式执行。实际上,被删除的元素仍然存在图8.第八条。在用户指定的时间段内的校正操作示例在执行删除操作后,在数据库中,删除操作如下:transaction-time元素的删除是通过将当前时间的值赋给该元素的TET属性来执行的(该元素必须是当前元素,否则不能删除)。双时态元素的删除是通过(i)如果它是当前或未来,则将当前时间的值分配给该元素的TET属性,以及(ii)插入删除元素来执行的注意,删除元素被认为是正确的元素。此外,尽管删除元素是正确的元素,但它不被处理正确元素的数据管理操作显式地使用(例如,它不会在查询操作的结果中返回);它们隐式地考虑它,并将其与相应的已删除元素一起忽略。只有在审计操作中,或者当DBA希望在某个时间段或某个时间点执行所有数据管理操作的所有细节时,才明确考虑它图9示出了通过插入删除元素e3来删除双时间过去元素e1。4.3.2. 在用户指定的时间段内删除类似于在一段时间内的修改,最终用户可以指定一个时间段,在该时间段内,删除应被执行。例如,删除客户在2011-01-01和2011-12-31之间下的所有订单。在这种情况下,删除操作涉及具有有效时间间隔的每个元素,该有效时间间隔完全或部分地与指定时段重叠。此外,所涉及的元素可以具有不同的格式(有效时间、事务时间和双时态)和不同的类型(过去、当前和未来)●●1480Z. Brahmia等人/沙特国王大学学报见图9。 删除用户指定的双时态元素的示例。此外,如果删除操作涉及属于不同通用XML元素的元素(例如,删除了从2009- 01-01到2009-12-31期间所有产品的生产有效时间和双时间)和不同类型(例如,过去和现在),并且属于不同的通用元素。这种删除操作称为多模式删除。请注意,类似于多模式修改,此操作可能是昂贵的,因此通过一些优化来提高其性能很重要;我们在第二节中处理优化问题。五、无论如何,每个涉及的元素都应该根据其模式版本、类型、时间格式以及最终用户指定的新值和/或系统(从指定值)导出的值来删除因此,多模式删除可能会影响多个XML文档,这对最终用户是透明的。图10提供了在指定时间段P期间的删除操作的示例,该指定时间段P与e2(过去的有效时间元素)和e3(过去的双时间元素)的有效时间间隔完全重叠,并且与e1(过去的有效时间元素)和e4(过去的双时间元素)的有效时间间隔部分相应地,通过插入删除元件e5来删除元件e3,同时物理地去除e2此外,e1的有效时间间隔在左侧(非重叠时段)被缩减,并且缩减元素e6(双时间元素)被插入以缩减e4的有效时间间隔。5. 通用XML元素的元素之间的语义链接如上所述,通用XML元素可以包括(i)在多个XML模式版本下定义的并且因此(ii)存储在不同XML文档中的若干XML元素。此外,这些元素可以具有(iii)不同的时间格式(有效时间、事务时间和双时间),以及(iv)不同的类型(错误元素、正确的过去元素、删除元素、当前元素和未来元素)。这种情况使得软件或人类用户很难容易且快速地分析和解释通用XML元素的语义(例如,要知道正确元素的有序列表,第一个正确元素,或者最后一个正确的元素;为了区分删除的和删除的元素,. ).此外,与时态XML元素相关联的两个或四个时态属性(为了反映其时态格式)不足以允许直接和快速访问(通用XML元素的)正确XML元素的列表,这些元素是普通和日常操作最常用的:它们是查询操作最需要的,并且是更新操作唯一涉及的元素。实际上,错误元素、删除元素和删除元素仅用于审计目的。此外,我们认为,图10个。在用户指定的时间段内执行删除操作的示例Z. Brahmia等人/沙特国王大学学报1481p喜喜在这种情况下,很难确定对所有元素进行的更新的所有轨迹。因此,为了改善这种情况,避免其缺点,我们建议定义任何通用XML元素的元素之间的语义链接。这些链接分为水平链接和垂直链接。水平链接允许互连可直接访问的正确元素,其可以是校正元素、减少元素、删除元素和其他正确元素(即,纠正不纠正、减少或删除任何其他元素的元素;通过插入操作添加的元素)。垂直链接允许相互链接:每个校正元素对应于由其校正的元素● 每一个归约元素对应于被它归约的元素因此,我们可以说我们有三种类型的垂直链接:更正链接,减少链接和删除链接。如图所示。 在插入e4以校正e2但它部分地重叠e1和e3的情况下,该校正元素(在我们的例子中为e4)仅垂直地链接到该元素列表的第一个和最后一个元素,以表示校正元素部分地校正这两个元素并完全校正它们之间的元素(如图11所示)。 其中e4垂直连接到e2和e3)。显然,这样一个列表的所有元素(在我们的例子中是e1、e2和e3)在执行校正操作之前在它们之间水平链接,因为它们是连续的正确元素,并且在执行这样一个操作之后,因为它们变成连续的错误元素(见图11)。 12)。还注意到,在图的示例中。 11,通过e4对e2的校正产生了两个归约元素:e5,其减少e1,和e6,其减少e3。每个归约元素垂直地链接到其对应的归约元素,但也水平地链接到新的正确元素e4(见图11)。 12)。我们还建议通过以下属性来表示这些链接,这些属性应该由系统自动添加到任何新的XML元素NUM_E:通用XML元素中元素“e”的编号它由系统分配,取值为1、2、3等。PRED_E:pred或correct元素“e“到”e”的编号然而,见图12。 用e4校正e2后元素之间的水平和垂直链接。SV_PRED_E:与XML文档相关联的模式版本号,该XML文档包含前置正确元素SUCC_E:后继正确元素“es”到“e”的编号。然而,SV_SUCC_E:与包含后继正确元素“es”to“e”的XML文档相关联的模式版本号ERR_E:错误元素“eer”的编号,该错误元素SV_ERR_E:与包含错误元素“eer”的XML文档相关联的模式版本号,该错误元素这些属性允许实现以下目的:(i)容易和快速地分析和解释通用XML元素的语义,(ii)直接和快速地访问列表正确的XML元素,这是最常用的普通和日常的数据管理操作,以及(iii)确定容易和快速的所有轨道上的所有元素的更新运行示例。为了说明这些语义链接属性的使用,让我们继续我们在第二节开始的例子。2、公司产品数据的管理。图13示出了XML文档“ProductInstances_V1.xml”的新内容 Price/和StockQt/元素)。 这些属性以粗体显示。显然,ProductInstances_V1.xml支持这些语义链接属性(即,在数据级)要求XML模式版本在模式级别),这样我们的XML 文 档 对 于 它 们 的 XML 模 式 总 是 有 效 的 。图 14 示 出 了“ProductSchema_V1.xsd”的新内容,同时考虑了时间属性的语义链接属性。改动以黑体字表示。见图11。 数据库在用e4校正e2之前和之后的状态。●●●●●●●●●1482Z. Brahmia等人/沙特国王大学学报hi图十三.文档6. 执行为了证明我们的TempoX方法的可行性,我们用它来定义一个时态XML更新语言。确切地说,由于XUF语言(W3C,2011)是当前W3C推荐的用于更新XML数据的语言,并且得到了几个主流XML DBMS(如xDB和BaseX)的支持,因此我们将其扩展到了时态和版本控制方面。新语言被命名为TempoXUF(Temporal XUF)。此外,为了更加实 用 , 我 们 还 开 发 了 一 个 支 持 TempoXUF 的 系 统 原 型 , 名 为TempoXUF- Manager 。 在 下 文 中 , 我 们 分 别 介 绍 TempoXUF 和TempoXUF-Manager。6.1. TempoXUF语言TempoXUF语言是通过扩展标准XUF语言来定义的,它具有必要的概念、构造函数和运算符,以支持在存在多个时态XML模式版本的情况下操作多时态XML数据。TempoXUF提供四种数据操作,即,“插入”、“修改”、“删除”和“演变”,分别通过四个语句“插入”、“替换”、“删除”和“演变”。TempoXUF的语法扩展了XUF的时态规范。准确地说,每个TempoXUF数据操作操作都用一个时态子句扩展其相应的XUF操作。例如,TempoXUF中的 “insert” 操作 用时 间子句 (i )“as transaction” 来扩 展XUF中的“insert” 操 作 , 以 插 入 事 务 时 间 XML 元 素 , ( ii ) “asvalid”validityPeriodExpr(其中validityPeriodExpr是指定正确时间段的表达式,例如,'[2019/01/01-2019/ 12/31'),以插入有效时间XML元素,或(iii)''作为有效的”validityPeriodExpr ''和transa
下载后可阅读完整内容,剩余1页未读,立即下载
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)