首页> 中国专利> 基于多层子查询结果分支树的XML数据查询结果访问方法

基于多层子查询结果分支树的XML数据查询结果访问方法

摘要

基于多层子查询结果分支树的XML数据查询结果访问方法属于数据库技术领域,适用于多分支树型的多重循环计算形式的查询模式,其特征在于,基于连接、笛卡尔积和选择三种操作,为各层XML数据查询结果构造多层子查询结果分支树,把各子查询结果组织在由1个XML元素和1个有序映射表组成的数据节点中。映射表中按嵌套深度排列的表项保存循环变量和数据节点序列的映射关系,数据节点序列按XML元素序号组织。在数据访问时从根节点出发,从映射表中找到本层循环变量对应的下层子查询结果,经逐层查找可获得所有循环变量对应的子查询结果。本发明提供按用户不同排序要求进行查询以及扩展专用数据组织的方法,同时满足XML数据查询结果访问、排序及可扩展性需求。

著录项

  • 公开/公告号CN103294821A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201310237756.3

  • 申请日2013-06-17

  • 分类号G06F17/30(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人楼艮基

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2024-02-19 20:48:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-02

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20160120 终止日期:20190617 申请日:20130617

    专利权的终止

  • 2016-01-20

    授权

    授权

  • 2013-10-16

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20130617

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明涉及XML数据处理系统中XML数据查询的查询结果的组织、构造和访问方法,属于数据库技术领域,用于高效地组织和构造典型XML数据查询的查询结果,提供灵活的数据访问方式。

技术背景

可扩展标识语言(XML语言)已经成为事实上的网络数据交换和数据共享标准。XML数据查询和数据处理已经成为互联网网络软件系统中十分常见的功能。鉴于XML数据的半结构化特征,典型的XML数据查询表现为嵌套的连接操作、笛卡儿积操作和选择操作所组成的多分支树型的多重循环计算,具有复杂的查询模式。在查询结果中相同的一组XML数据元素可能同时属于不同子查询结果。空间开销的限制和交叉引用的需求导致数据结构的复杂化。

XML数据查询的实现要求XML查询结果的组织支持高效简便的构造方法,以保证XML数据查询的高性能。XML数据处理的实现要求XML查询结果的组织支持高效灵活的访问方法。为了满足互联网软件开发中XML数据查询和数据处理的这种普遍的需求,本发明提供了一种XML数据查询结果的组织、构造和访问方法,用于组织典型XML数据查询的查询结果,并且提供高性能的构造和访问方法。

发明内容

本发明的目的是为多分支树型的多重循环计算形式的查询模式,提供高效灵活的数据查询结果的构造方法和访问方法,以支持高性能XML数据处理的实现。

本发明的特征为:

1、本发明是在互联网XML数据处理服务器中依次按以下步骤实现的:

步骤(1)构造一个多层子查询结果分支树:

步骤(1.1)为通过XML数据查询得到的作为子查询结果的每个XML元素创建一个数据节点;每个所述数据节点中保存了作为根节点的当前XML元素和当前XML元素的XML子树中的按层有序排列的子查询结果之间的映射表,所述映射表的表项按照嵌套连接操作的嵌套深度排列,每个表项保存1个表项循环变量和对应的1个数据节点序列之间的映射关系,所述数据节点序列按照XML文档序排列,其中保存了绑定于循环变量的每个XML数据及其子查询结果,所述数据节点按照连接操作关系、笛卡尔积操作关系和选择操作关系三种不同的操作关系按以下步骤分别处理:

在连接操作中,创建上、下两层数据节点映射表,上层数据节点映射表保存外部循环变量名称及其绑定的数据节点,下层数据节点映射表保存内部循环变量名称及其绑定的数据节点;

在笛卡尔积操作中,创建新的数据节点,在所述新数据节点的映射表中,按照嵌套深度的顺序为每个循环变量建立表项,保存循环变量名称及其绑定的数据节点序列;

在选择操作中,根据选择条件中指定的循环变量名称,删除指定层次的其他数据节点;步骤(2)按以下步骤在所述多层子查询结果分支树上对XML元素进行查询:

步骤(2.1)从根节点开始,按照指定的循环变量名在本层数据节点映射表中查找对应的数据节点;

步骤(2.2)若找不到,去下层数据节点,按步骤(2.1)所述的方法查找,一直到查到指定循环变量对应的数据节点为止,执行步骤(2.4);

步骤(2.3)若找到,则从找到的数据节点中获取XML元素,执行步骤(2.4);步骤(2.4)终止查找。

2、本发明中当用户具有不同排序要求时,依次按以下步骤实现XML元素的查询:

步骤(1)构造一个专用的虚拟数据节点表示一个虚拟的XML元素,在所述虚拟数据节点的映射表中设置一个表项,保存1个虚拟的变量和空的数据节点序列的映射关系;

步骤(2)按照用户提出的排序项的数值,从所述多层子查询结果分支树中,复制出对应于排序项的各个子查询结果的各个数据节点;

步骤(3)按照所述排序项的数值,把步骤(2)得到的数据节点排序后,添加到步骤(1)中所述的映射表中绑定于虚拟变量的数据节点序列中。

3、当用户需要专用的数据组织时,依次按以下步骤进行专用数据的查询:

步骤(1)在所述的多层子查询结果分支树中,设置1种专用XML元素,以XML元素的标记作为1种专用数据组织的标记。

步骤(2)在所述的多层子查询结果分支树中,设置1种专用数据节点,由所述专用XML元素和一个映射表组成,映射表中保存专用数据组织的各个属性名和属性值的映射关系。

步骤(3)对于具有嵌套结构的数据组织,分别构造专用数据节点,并且将下层数据项的数据节点作为属性值绑定于下层数据项的名称,添加到上层数据项的数据节点的映射表中。

步骤(4)根据专用数据组织的标记,从根节点出发,在各层数据节点中逐层查找,获得具有这种专用数据组织的专用数据节点。

步骤(5)从具有专用数据组织标记的数据节点中,根据属性名从映射表中获得属性值。

如果属性值本身仍然是专用数据节点,则按照相同方法可获得嵌套结构内部的属性数据。

本发明的效果表现为对于复杂XML数据查询中常见的具有多分支树型的多重循环计算形式的查询模式,查询结果的数据组织支持各种子查询结果的交叉引用和共享,即避免了重复保存需要反复使用的子查询结果,又直接支持笛卡尔积的数据表示,并且保证了数据查询结果的高性能访问。

附图说明

图1:XML数据查询结果的组织结构:其中1.1为1个XQuery查询案例,其第1行表示将a.xml文档根节点的a子孙分别绑定于变量$a,第2行表示将变量$a的b子孙分别绑定于变量$b,第3行表示将变量$a的c孩子分别绑定于变量$c,第4行表示将变量$c的d孩子分别绑定于变量$d,第5行表示返回变量$a、变量$b、变量$c和变量$d的内容;1.2为一个XML文档,即1.1中提到的a.xml;1.3为1.1所示的XQuery查询作用于1.2所示的XML文档时所生成的多层子查询结果分支树,树中记录了1.1中查询涉及的XML节点以及节点之间的关系。

图2:XML数据查询结果的构造方法。

图3:XML数据查询结果的访问方法。

具体实施方式

一、用于组织一种XML数据查询的查询结果的方法;这种XML数据查询表现为嵌套的连接操作、笛卡儿积操作和选择操作所组成的多分支树型的多重循环计算。

二、XML数据查询的查询结果由多层的子查询结果组成,具有树型结构。每个子查询结果保存在1个数据节点中。每个数据节点由一个XML元素和一个有序的映射表组成,保存了以当前XML元素为根的XML子树中获得的子查询结果。数据节点中映射表的表项按照嵌套深度排列,每个表项保存1个循环变量和1个数据节点序列的映射关系。映射表项中的数据节点序列按照XML数据的文档序排列,保存了绑定于当前循环变量的每个XML数据元素及其子查询结果。

三、在XML数据查询过程中XML数据查询结果的构造方法:

(1)为XML数据查询得到的每个XML数据元素,创建1个数据节点;

(2)在连接操作中,创建两层数据节点:上层数据节点的映射表保存外部循环变量名及其绑定的数据节点,下层数据节点的映射表保存内部循环变量名及其绑定的数据结点;

(3)在笛卡儿积操作中,创建新的数据结点,在其映射表中按照嵌套深度的顺序,为每个循环变量建立表项,保存循环变量名及其绑定的数据节点序列;

(4)在选择操作中,根据选择条件中指定的循环变量名,删除指定层次的数据节点。

四、在XML数据处理中XML数据查询结果的访问方法:

(1)根据指定的数据节点,从其映射表可以找到本层循环变量对应的子查询结果,即下一层的数据节点;

(2)随后,通过下层数据节点及其映射表,按照相同的方法,可以逐级找到所有循环变量对应的子查询结果;

(3)在表示子查询结果的数据节点,可以找到查询出的XML数据元素。

在使用XML数据的互联网软件系统中,采用本发明提供的多层子查询结果分支树来组织XML数据查询的结果。在XML数据查询过程中,采用本发明提供的构造方法来自组织查询结果。在XML数据处理的过程中,使用本发明提供的访问方法来获取查询结果中的XML数据元素。在数据查询中存在排序要求时,使用本发明提供的排序方法可以完成查询结果的排序。在用户需要使用专用数据组织时,使用本发明提供的扩展方法可以完成各种复杂数据的组织和访问。

在XML数据查询过程中处理多分支树型的多重循环计算形式的查询模式时,无论采用何种查询算法,如图2所示,在XML数据查询中依次处理每个查询操作。对于查询到的每个XML数据元素,构造一个本发明提出的数据节点,将该XML数据元素作为该数据节点的成员保存。在处理到自然连接、外连接、自连接等各种连接操作时,创建两层数据节点;用上层数据节点的保存外部循环变量名及其绑定的数据节点,下层数据节点的映射表保存内部循环变量名及其绑定的数据结点。在XML数据查询处理到笛卡儿积操作时,创建新的数据节点,在其映射表中按照嵌套深度的顺序,为每个循环变量建立表项,保存循环变量名及其绑定的数据节点序列。在XML数据查询处理到选择操作时,根据选择条件中指定的循环变量名,删除指定层次中不符合选择条件的数据节点。最外层操作得到的数据节点则表示了整体查询结果。如图1所示,1.1给出的查询命令以四重循环的方式,给出了三个自连接和一个笛卡尔积操作。对于1.2所示的XML数据,采用本发明的组织方法形成的查询结果的组织结构如图1中1.3所示。

在XML数据处理过程中使用XML数据查询结果时,如果查询结果采用了本发明提供的组织方法,如图3所示,从表示整体查询结果的数据节点出发,在其映射表可以找到本层循环变量对应的子查询结果,即下一层的数据节点。随后,通过下层数据节点及其映射表,按照相同的方法,可以逐级找到所有循环变量对应的子查询结果,从而使得使用者可以从1个数据节点表示的子查询结果出发,找到其中任意层次的循环变量绑定的数据节点,也就是任意层次的子查询结果。每个数据节点的成员中包含了XML数据查询得到的XML数据元素。因此,从表示整体查询结果的数据节点出发,就可以按照各种嵌套关系,找到XML数据查询得到的所有XML数据元素,以满足XML数据处理的需求。

按照本发明提供的XML数据查询结果组织方法,采用深度优先方式得到的XML数据元素符合XML数据查询中多重循环的数据枚举需求。对于具有不同排序要求的使用需求,可以采用以下特殊处理方法给予实现:

(1)构造1个专用的数据节点,表示1个虚拟的XML数据元素。在其映射表中,设置一个表项,绑定于1个虚拟变量。

(2)将表示数据查询结果的数据节点,按照排序项的数值,复制出多个数据节点。

(3)按照排序项数值的顺序,将上一步得到的数据节点排序后,作为上述映射表项中的数据节点序列。

按照这种实现方法,通过新引入的虚拟变量,采用本发明提供的查询结果访问方法,深度优先地访问其中的每个XML数据元素,就可以得到符合排序要求的查询结果,从而使得这种数据组织方式即可以满足XML数据处理中数据访问的需求,也可以满足数据排序的需求。

按照本发明提供的XML数据查询结果组织方法,当用户需要专用的数据组织时,依次按以下步骤进行专用数据的组织和查询:

(1)设置1种专用XML元素,以XML元素的标记作为1种专用数据组织的标记。同时,设置1种专用数据节点,由所述专用XML元素和一个映射表组成,映射表中保存专用数据组织的各个属性名和属性值的映射关系。

(2)对于具有嵌套结构的数据组织,分别构造专用数据节点,并且将下层数据项的数据节点作为属性值绑定于下层数据项的名称,保存在上层数据项的数据节点的映射表中。

(3)根据专用数据组织的标记,从根节点出发,在各层数据节点中逐层查找,获得具有这种专用数据组织的专用数据节点。从具有专用数据组织标记的数据节点中,根据

属性名从映射表中获得属性值。如果属性值本身仍然是专用数据节点,则按照相同方法可获得嵌套结构内部的属性数据。

按照上述方法,根据循环变量可以逐层找到变量所绑定的XML元素,根据专用标记可以判断出专用数据的种类,进而通过属性名可以找到属性数据。由于嵌套的数据组织可以作为属性值使用,相同的数据节点序列可以同时绑定与不同数据节点中的循环变量名,使得这种数据组织方法适用于各种树形或图形的复杂数据组织,也支持基于变量名、结构名和属性名的各种数据访问方法。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号