CN103294821B - 基于多层子查询结果分支树的xml数据查询结果访问方法 - Google Patents
基于多层子查询结果分支树的xml数据查询结果访问方法 Download PDFInfo
- Publication number
- CN103294821B CN103294821B CN201310237756.3A CN201310237756A CN103294821B CN 103294821 B CN103294821 B CN 103294821B CN 201310237756 A CN201310237756 A CN 201310237756A CN 103294821 B CN103294821 B CN 103294821B
- Authority
- CN
- China
- Prior art keywords
- back end
- data
- mapping table
- xml
- subquery results
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
基于多层子查询结果分支树的XML数据查询结果访问方法属于数据库技术领域,适用于多分支树型的多重循环计算形式的查询模式,其特征在于,基于连接、笛卡尔积和选择三种操作,为各层XML数据查询结果构造多层子查询结果分支树,把各子查询结果组织在由1个XML元素和1个有序映射表组成的数据节点中。映射表中按嵌套深度排列的表项保存循环变量和数据节点序列的映射关系,数据节点序列按XML元素序号组织。在数据访问时从根节点出发,从映射表中找到本层循环变量对应的下层子查询结果,经逐层查找可获得所有循环变量对应的子查询结果。本发明提供按用户不同排序要求进行查询以及扩展专用数据组织的方法,同时满足XML数据查询结果访问、排序及可扩展性需求。
Description
技术领域
本发明涉及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元素,根据专用标记可以判断出专用数据的种类,进而通过属性名可以找到属性数据。由于嵌套的数据组织可以作为属性值使用,相同的数据节点序列可以同时绑定与不同数据节点中的循环变量名,使得这种数据组织方法适用于各种树形或图形的复杂数据组织,也支持基于变量名、结构名和属性名的各种数据访问方法。
Claims (3)
1.基于多层子查询结果分支树的XML数据查询结果访问方法,其特征在于是在互联网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.根据权利要求1所述的基于多层子查询结果分支树的XML数据查询结果访问方法,其特征在于当用户具有不同排序要求时,依次按以下步骤实现XML元素的查询:
步骤1,构造一个专用的虚拟数据节点表示一个虚拟的XML元素,在所述虚拟数据节点的映射表中设置一个表项,来保存1个虚拟变量和1个空的数据节点序列的绑定关系;
步骤2,按照用户提出的排序项的数值,从所述多层子查询结果分支树中,复制出对应于排序项的各个子查询结果的各个数据节点;
步骤3,按照所述排序项的数值,把步骤2得到的数据节点排序后,添加到步骤1中所述的映射表中绑定于虚拟变量的数据节点序列中。
3.根据权利要求1所述的基于多层子查询结果分支树的XML数据查询结果访问方法,其特征在于当用户需要专用的数据组织时,依次按以下步骤进行专用数据的查询:
步骤1,在所述的多层子查询结果分支树中,设置1种专用XML元素,以XML元素的标记作为1种专用数据组织的标记;
步骤2,在所述的多层子查询结果分支树中,设置1种专用数据节点,由所述专用XML元素和一个映射表组成,映射表中保存专用数据组织的各个属性名和属性值的映射关系;
步骤3,对于具有嵌套结构的数据组织,分别构造所述的专用数据节点,并且将下层数据项的数据节点作为属性值绑定于下层数据项的名称,添加到上层数据项的数据节点的映射表中;
步骤4,根据专用数据组织的标记,从根节点出发,在各层数据节点中逐层查找,获得具有该种标记的专用数据节点;
步骤5,从具有所述专用数据组织标记的数据节点中,根据属性名从映射表中获得属性值数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310237756.3A CN103294821B (zh) | 2013-06-17 | 2013-06-17 | 基于多层子查询结果分支树的xml数据查询结果访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310237756.3A CN103294821B (zh) | 2013-06-17 | 2013-06-17 | 基于多层子查询结果分支树的xml数据查询结果访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294821A CN103294821A (zh) | 2013-09-11 |
CN103294821B true CN103294821B (zh) | 2016-01-20 |
Family
ID=49095683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310237756.3A Expired - Fee Related CN103294821B (zh) | 2013-06-17 | 2013-06-17 | 基于多层子查询结果分支树的xml数据查询结果访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294821B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874849B (zh) * | 2018-01-31 | 2020-12-25 | 中国科学院计算技术研究所 | 一种非等值关联子查询的优化方法和*** |
CN115495638A (zh) * | 2021-06-01 | 2022-12-20 | 华为技术有限公司 | 基于网络配置协议的查询信息的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081661A (zh) * | 2011-01-19 | 2011-06-01 | 吉林大学 | 基于xml的异构关系型数据库的数据集成方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832133B2 (en) * | 2009-08-24 | 2014-09-09 | Microsoft Corporation | Answering web queries using structured data sources |
-
2013
- 2013-06-17 CN CN201310237756.3A patent/CN103294821B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081661A (zh) * | 2011-01-19 | 2011-06-01 | 吉林大学 | 基于xml的异构关系型数据库的数据集成方法和*** |
Non-Patent Citations (1)
Title |
---|
支持XML查询代数和树模式查询的XQuery***框架;张晓博等;《计算机科学与探索》;20101130;第4卷(第11期);第996-1004页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103294821A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stuckenschmidt et al. | Index structures and algorithms for querying distributed RDF repositories | |
CN102243660B (zh) | 一种数据访问方法及设备 | |
US20030110055A1 (en) | Electronic catalogue | |
CN105630881B (zh) | 一种rdf的数据存储方法和查询方法 | |
US20070174309A1 (en) | Mtreeini: intermediate nodes and indexes | |
US20090222458A1 (en) | Database processing apparatus, information processing method, and computer program product | |
JPWO2009095981A1 (ja) | 表からツリー構造データを構築する方法及び装置 | |
CN103294821B (zh) | 基于多层子查询结果分支树的xml数据查询结果访问方法 | |
US7467130B2 (en) | Method for converting chained join tables to tree structure, and a program for converting the same | |
CN106095961A (zh) | 表显示处理方法和装置 | |
WO2003083712A1 (en) | Method and apparatus for querying relational databases | |
US20060074934A1 (en) | Utilization of display profiles with abstract queries | |
CN102760164B (zh) | 一种关系数据库管理***与xml数据库管理***之间数据交换的方法 | |
Atzeni et al. | Data modeling across the evolution of database technology | |
US8190597B1 (en) | Multistage pipeline for feeding joined tables to a search system | |
Bugiotti et al. | A logical approach to nosql databases | |
CN107291875A (zh) | 一种基于元数据图的元数据组织管理方法和*** | |
JP2010267081A (ja) | 情報検索方法及び装置及びプログラム | |
KR100660028B1 (ko) | 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법 | |
Kapisha et al. | Exploring XML Index Structures and Evaluating C-Tree Index-based Algorithm | |
Leela et al. | Schema-conscious XML indexing | |
CN105608092B (zh) | 一种创建动态索引的方法及装置 | |
JP2004348479A (ja) | 検索装置、検索方法、検索プログラム、および検索プログラム記録媒体 | |
Soujanya et al. | Extensible markup language databases: a study | |
Al Hamad | Xml-based data exchange in the heterogeneous databases (xdehd) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160120 Termination date: 20190617 |
|
CF01 | Termination of patent right due to non-payment of annual fee |