用于存取XML数据的索引制造技术

技术编号:2842587 阅读:208 留言:0更新日期:2012-04-11 18:40
提供了用于索引XML文档的技术。根据一个实施例,创建用于为XML文档的每个索引节点存储一行的PATH表。节点的PATH表的行包括(1)用于定位包含该节点的XML文档的信息,(2)标识节点路径的信息,以及(3)标识包含该节点的XML文档的分级结构内节点位置的信息。如果节点与值相关,则节点的PATH表的行还可以包括值。通过次级索引使得易于使用PATH表来答复XPath查询。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及管理信息,更具体地,涉及存取包含在XML文档中的信息。
技术介绍
近年来,有很多允许存储和查询可扩展标记语言数据(“XML数据”)的数据库系统。尽管有很多XML查询的演进标准,但是所有标准都包括一些XPath的变量。然而,数据库系统通常不是处理XPath查询的最优系统,并且对数据库系统的查询性能还有很多要求。在XML模式定义可用的具体情况下,可获知XML实例文档中所用的结构和数据类型。然而,在XML模式定义不可用以及要查找的文档不符合任何模式的情况下,没有用于使用XPath查询的有效技术。一些数据库系统可采用点对点(ad-hoc)机制来满足与文档(其中,文档模式是未知的)相悖的Xpath查询。例如,数据库系统可通过对所有文档执行全扫描来满足XPath查询。虽然所有文档的全扫描可用于满足所有XPath查询,但是由于缺少索引,所以实施会非常慢。满足XPath查询的另一种方法涉及文本关键字的使用。具体地,很多数据库系统都支持文本索引,并且这些数据库系统可用于满足特定的XPath。然而,该技术仅能满足XPath查询的小子集。因此,在现有数据库系统中没有可用于处理多种XPath查询的有效索引技术。本部分描述的方法是可以推行的方法,而不必是先前已经构思或推行的方法。因此,除非另外指出,不可以仅仅因为本部分中描述的方法包含在该部分中而认为是现有技术。附图说明通过附图中的实例而不是限制的方式来描述本专利技术,在附图中相同的参考标号指向相似的元件,其中图1是示出用于基于新XML文档更新XML索引的步骤的流程图;以及图2可以实施本文所述技术的系统的框图。具体实施例方式在以下描述中,为了解释的目的,叙述了大量特定细节以提供对本专利技术的全面理解。然而,很显然,在没有这些特定细节的情况下也可以实施本专利技术。在其他实例中,以框图形式示出了已知的结构和装置,以避免不必要的使本专利技术不清楚。功能综述提供了一种用于在XML文档中索引路径、值、和次序(order,顺序)信息的机制。该机制可以在不考虑用于存储实际XML数据的数据结构(“基本结构”)和格式的情况下使用。例如,实际XML数据可以以诸如CLOB(存储实际XML文本的字符LOB)、O-R(XML模式下的对象关系结构形式)、或BLOB(存储一些二进制形式的XML的二进制LOB)的任意形式存在于数据库内部或外部的结构中。这里描述的技术涉及使用一组用于存取XML数据的共同组成索引的结构。根据一个实施例,该索引(这里称为“XML数据”)包括三个逻辑结构路径索引、次序索引、和值索引。在一个实施例中,所有这三个逻辑结构都存在于单个表中,这里称为PATH_TABLE。XPath查询语言最常用的部分包括基于值的判定和导航(父子派生)存取。如下文中将要更详细地描述的,通过追踪路径、值、和次序信息,XML索引可用于有效地满足这些存取方法。另外,基于如何实施XML索引的实施例,使用XML索引可产生以下有益效果中的一个或多个(1)改善基于XPath查询的搜索性能,这包括路径匹配以及值判定(predicate);(2)在片段由XPath表达式标识的情况下,处理片段提取;(3)在存在适当XML模式定义的情况下,关于值判定的数据类型认知;(4)通过添加新定义支持演进XML模式和XML索引的能力;(5)处理多类XPath表达式(包括子轴和后代轴),以及等式和范围判定;(6)用户通过包括或排除索引中指定的路径组或命名空间来控制索引路径组的能力,这在文档定向的情况中尤其有用,其中,索引中省略了与格式化相关的标志;(7)允许存储于索引中的实际文本值的用户化,例如,删掉空格(whitespace)、不区分大小写(case-insensitive);(8)大量加载索引以及支持并行索引创建的良好性能。XML文档实例为了解释的目的,下文中将参照下面两个XML文档给出实例po1.xml<PurchaseOrder> <Reference>SBELL-2002100912333601PDT</Reference> <Actions> <Action> <User>SVOLLMAN</User> </Action> </Actions> .... </PurchaseOrder> po2.xml<PurchaseOrder> <Reference>ABEL-20021127121040897PST</Reference> <Actions> <Action> <User>ZLOTKEY</User> </Action> <Action> <User>KING</User> </Action> </Actions> .... </PurchaseOrder> 如上面指出的,po1.xml和po2.xml仅仅是XML文档的两个实例。在此所述的技术不限于具有任何特定类型、结构、或内容的XML文档。下面将根据本专利技术的各种实施例给出如何索引和存取这种文档的实例。XML索引根据一个实施例,XML索引是改善包括基于XPath的判定和/或基于XPath的片段提取的查询性能的域索引(domain index)。例如,可以在存储为CLOB或结构化存储的无模式XMLType列(column,栏)以及基于模式的XML上建立XML索引。在一个实施例中,XML索引是通过协作使用路径索引、值索引、和次序索引所产生的逻辑索引。路径索引提供了基于简单(导航)路径表达式来查找片段的机制。值索引提供了基于值等式或范围的查找。可能存在多个次级值索引——每种数据类型一个。次序索引使分级次序信息与索引的节点相关联。次序索引用于确定XML节点之间的父子、祖孙、以及兄弟关系。当用户提交含有XPath(作为判定或片断标识符)的查询时,XPath语句被分解成存取XML索引表的SQL查询。所生成的查询通常执行一组受路径、值、和次序约束的查找,并将其结果适当地合并。路径表根据一个实施例,逻辑XML索引包括PATH表和次级索引组。如上所述,每个索引XML文档可以包括许多索引节点。对于每个索引节点,PATH表包含一行。对于每个索引节点,该节点的PATH表的行包含与该节点相关的各种信息。根据一个实施例,PATH表中包含的信息包括(1)指示到节点的路径的PATHID;(2)用于对基本结构内的节点的片段数据进行定位的“位置数据”;以及(3)指示包含节点的XML文档的结构分级本文档来自技高网...

【技术保护点】
一种用于存取来自XML文档的信息的方法,所述方法包括:在XML文档内识别将被索引的节点组;对于将被索引的所述节点组中的每个节点,将所述节点的条目存储在索引中,其中,给定节点的所述条目包括用于定位与所述给定节点相关的XML内容 的定位数据,以及以下中的至少一个;(a)分级数据,表示所述给定节点在包含所述给定节点的所述XML文档内的分级位置;以及(b)路径数据,对应于通过包含所述特定节点的XML文档的结构到所述给定节点的路径;以及响应于对来自 所述XML文档的信息的请求,使用所述索引定位所述XML文档内的信息。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:西瓦桑卡兰钱德拉塞卡拉维默西阿希什蒂索安霍图安特兰斯里达穆卡玛拉埃里克塞德拉尼普恩阿加瓦尔
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1