用于查找数据库的方法和数据库的制作方法

文档序号:6446163阅读:208来源:国知局
专利名称:用于查找数据库的方法和数据库的制作方法
技术领域
本发明涉及用于在分层结构数据库中进行查找的方法。此外,本发明涉及分层结构数据库,它允许其元素的方便查找。
现有技术现今,数据库是用于管理大量数据的普通技术工具。分层结构数据库的特征是,按层次排列条目,例如可以被想象为包含根、叉、子叉等等的树形结构。例如,可以使用分层数据库管理图书馆的图书。数据库的每个元素,即每本图书,都具有几个属性,诸如标题、作者、图书中的章节等等。这些属性也可以具有子属性,例如作者的名字、他/她的地址、章节的文本等等。在分层结构数据库中,属性和子属性形成所谓的层次的节点。
数据库的一个目的是方便其元素的检索。例如,图书馆的用户会需要在图书馆中根据其作者的姓和名快速找到特定的图书。为此,如现有技术中已知的,分层结构数据库常包括一个或多个索引,它们使特定节点的值与数据库的元素的标识符相关,从而允许根据被查元素的节点的条件非常快速地查找数据库的元素。这样,由于由数据库生成的索引本身产生查找结果,就不必检查数据库的每一个元素。这节省了时间和处理成本。


图1、11a和11b说明了现有技术的查找技术图1示出了图书1-3的基于XML的数据库的三个元素的简化实例。每个元素都包括几个属性,表示作者、姓和名、包含标题和文本的图书章节等等。图11a和11b呈现两个实例性索引表201、202,一个用于图书馆中图书作者的名(图11a,201),另一个用于作者的姓(图11b,202)。如果用户查找由姓“Jones”的作者撰写的图书,图11b的索引202将立即导向一结果,即图书3是所需的图书。
但是,数据库查询通常更加复杂并会包括两个或更多条件。例如,查找可以针对图1的数据库中作者“Jim Miller”的图书。使用现有技术的索引,图11a中对属性“名”的索引201将首先被查找以产生图书1、2和3的一组。随后,查找对于属性“姓”的图11b中的索引202,以引向图书1和2的一组。满足查询的这两个条件的这两组图书的相交是图书1和2。但是,图1中数据库元素的检查示出,仅图书2是正确的结果。原因在于,图书可以由几个作者一起撰写,其中一个的名是“Jim”而另一个的姓是“Miller”。
克服该困难的一种方法是提供复合索引,例如通过使作者的组合的姓名与数据库的图书相关。但是,如果使用其它查找标准,而不是相当有限数量的作者名字,例如如果所需图书的章节标题和该章节中文本的单词是查找标准,则这种复合索引将导致海量的索引条目。这样,由于章节文本中的每个单词将与标题一起必须被组合用于复合索引的条目,明显的是,这种方法将再次导致数据库查询的很长的查找时间和较高的处理成本。
因此,本发明的问题在于提供一种用于查找数据库的方法以及一种数据库本身,它们即便对于复合查询也允许快速和有效的查找,以克服现有技术的上述缺点。

发明内容
通过一种方法解决了该问题,该方法用于在分层结构数据库的元素内进行查找,其中每个元素都具有用于限定所述元素的属性的一个或多个分层结构节点,且其中所查找的元素的一个或多个节点必须实现一个或多个查找条件,该方法包括以下步骤a.选择多个节点并向每个所选节点分配唯一的标识符;b.创建参考索引,它允许为所选节点的每个唯一的标识符派生数据库的相应元素;c.对于一个或多个查找条件中的每一个为实现各查找条件的节点检索起源(ancestor)节点的唯一标识符的组;d.使这些组相交,以获得唯一标识符的最终组;以及e.根据唯一标识符的最终组和参考索引检索数据库的所查找的元素。
与其中查找索引直接关于数据库的被查找元素的现有技术相反,本发明使用唯一标识符的概念。几十在数据库的分层的不同层次处,这也允许管理具有无限数量的条件的复杂查询。此外,尽管具有超过一个条件的复杂查询的复合索引的上述使用要求基本量的预先计划,但本发明的方法提供迄今更灵活的方法来用一个或多个条件获得查找结果。
步骤c.的检索包括使用一个或多个查找索引,它们使起源节点的唯一标识符与可能是一个或多个查找条件的对象的节点相关联。由于可以更快速地查找这种索引,就可以在相对较短的时间内获得唯一标识符的组以及作为这些组的相交的最终组。
较佳地,参考索引为每个唯一标识符直接指向其有关的数据库元素或者指向作为发起唯一标识符的节点起源的节点的唯一标识符。结果,可以直接或间接地(即参考索引的循环使用)获得与方法步骤d.的唯一标识符相交相对应的数据库元素。
为了减少方法的总开销,较佳地,如果在相同的分层层次上存在几个节点,则唯一标识符仅被分配给节点。这不限制上述查找方法的可应用性。代替使用仅出现一次的起源节点的唯一标识符,出现超过一次的最近起源节点可用来获得查找的相同结果。结果,对于使仅出现一次的节点的唯一标识符相关联,查找索引也是不必要的,较佳地,如果所述节点的子节点被预计是一个或多个查找条件的对象,则唯一标识符仅被分配给节点。
在较佳实施例中,唯一标识符是唯一的数字且数据库是基于XML的数据库。
根据另一个方面,本发明涉及具有多个元素的数据库,它包括a.多个分层结构节点,它们描述数据库的元素的属性;b.多个唯一标识符,它们被分配给所选的节点;c.参考索引,它允许为所选节点的每个唯一标识符派生数据库的相应元素;d.一个或多个查找索引,它们使起源节点的唯一标识符与可能是一个或多个查找条件的主题的节点相关联。
此外,从属权项涉及数据库的较佳实施例。
附图概述在以下详细描述中,将参考附图描述本发明的较佳实施例,其中图1用于图书1-3的分层数据库的实例;图2图1的数据库节点的唯一标识符的实例性分配;图3用于图1和2的数据库的唯一标识符的参考索引;图4和5可能是一个或更多查找条件的主题的节点的查找索引的实例;图6描述本发明的较佳实施例的流程图;图7用于实现查找索引的XML概要的实例;图8根据本发明的较佳实施例构建数据库的过程的示意性表示;图9样本XML文档和用于说明唯一标识符的适当分配的相应XML概要;图10XML文档,说明何时应用语义将省去唯一标识符的分配;以及图11a;b根据现有技术用于查找数据库的两个查找索引。
具体实施例方式
以下,参考分层结构XML文档形式的数据库描述根据本发明的方法和数据库的较佳实施例。但是,可以理解,本发明不限于用于构建文档的该具体标记语言,而是可以应用于任何类型的具有树形分层结构的数据。此外,应注意,本发明可以与现有技术的查找方法和数据库组合,特别是本发明的介绍部分中所描述的技术。
图1示出了包含3本图书(图书id=1,2,3)的数据库10的已描述的简化实例。以下,参考数据库10中对一本图书的查询描述根据本发明的方法和数据库,这本图书例如具有含单词“standards”的标题的章节,同时该章节的文本包含单词“namespaces”。
为了执行查找,数据库10具备唯一的标识符,它可以是称作EID的唯一数字的形式,用于明确地识别数据库10的所选节点。这在图2中示出。如图所示,数据库10的三本图书的每一个章节都具备唯一的EID。一旦分配了EID,就可以建立图3所示的参考索引20,它将每个分配的EID与数据库的各元素(即本实例中各图书的文档id)相关联。
但是,参考索引20不必直接指向数据库中的元素。或者,它可以使第一EID与属于一节点的第二EID相关联,其中上述节点是由第一EID标识的节点的起源。在这种情况中,可以通过循环地访问参考检索20找到数据库的各元素。
在进一步的预备步骤中,建立一个或多个查找索引,其使得可以是查询的查找条件的主题的节点值与这些节点的起源的EID相关联。这种EID索引的实例在图4和5中以表的形式示出,其中图4的EID索引31使得节点“文本”中的单词与各章节的EID(即节点文本的起源节点)相关联。按照相同的方式,图5的EID索引32使得节点“标题”的值与各章节的EID索引相关联。图7中示出符合EID索引的定义的实例性XML概要。
一旦已通过提供参考索引20和EID索引31、32准备了数据库10,就可以进行最初描述的对其文本中具有单词“namespaces”和其标题中具有单词“standards”的章节的图书复杂查询。为此所执行的步骤在图6的流程图中进行说明。
在步骤101中,调查与第一查找条件c0相对应的EID索引并检索包含满足条件c0的节点的EID的列表L。在本实例中,条件c0是单词“namespaces”出现于所查找的图书的章节的文本中。这产生包含EID57和66(比较图4)的列表L。
在步骤102中,检查是否存在要满足的进一步的查找条件ci。如果有,则方法以步骤103继续,其中调查与查找条件ci相对应的EID索引以检索EID的进一步的列表Ei。在本实例中,第二查找条件是单词“standards”出现于章节的标题中。使用图5的EID索引,就获得包含EID57和69的列表。在步骤104中,使两个列表L和Ei相交,在这种情况中形成仅包含EID57的列表。
如果没有要满足的进一步的条件,方法进行到步骤105,其中使用参考索引20将所产生的列表L的EID转换成数据库的元素。这需要在步骤107中判断以执行对参考索引20的循环访问,以便解析不直接参考数据库元素而是起源EID的EID,如上所述。在步骤106中移除所生成的数据库元素的复本。
在本实例中,必须解析单个EID57,这通向具有文档id2的图书从而仅通向正确的结果,因为仅图书2包含章节标题中的单词“standards”和该章节的文本中的单词“namespaces”,如查询所要求的那样(比较图1中数据库10的XML文档)。
参考特定简单实例说明的所述方法也可以用于任意数量节点的查找条件的组合而不需要预先计划这些组合。这与组合索引的上述现有技术的方法相反。此外,条件可以涉及数据库的不同层次处的节点,这增加了执行复杂查询的灵活性。在数据库内容(即XML文档)修改的情况下,所述查找方法是稳定的,因为EID被分配给节点而不是这些节点的值,它们在文档更新时会变化。
按上述方式执行复杂查询要求准备数据库。如果结构XML文档用于数据元素,可以进行必要处理,如图8所示。存储具有要构建的EID索引的详细说明的XML概要50和包含实际数据的XML文档51。存储过程包括创建一个或多个EID索引52,创建参考索引53和存储文档54本身。一旦XML文档已按这种方式存储,就准备复杂查询的上述有效处理。
本发明的进一步重要方面是将EID分配给分层结构数据库的节点。为了减少用于处理复杂查询和存储XML文档的总开销,不必将EID分配给层次中的每个节点。优选限制可能出现一次以上的节点的EID分配。以下参考图9对此进行进一步说明。
尽管图9的上部呈现用于单本图书的样本XML文档,图9的第二部分显示基础XML概要。如图所示,图书可以具有几个作者(比较图9的XML概要中的行″<xselement ref=″author″maxOccurs=″unbounded″/>)。但是,每个作者都具有包含单个姓和单个名的单个名字。因此,有意义的EID分配考虑数据库结构的这种属性并仅将EID分配给作者而不分配给名字。
减少数据库中总开销的另一个方法是仅为可能是查找条件的主题的节点准备EID索引。例如,对于由图10中的XML文档表示的图书,用关于页数和章节的标题的条件的查找的相当不可能的。因此,不必创建用于使标题值与章节EID相关的EID索引和/或使numberOfPages值与章节的EID相关联的EID索引。其它条件也是可以想象的,其中应用语义可用于演绎出可以省去EID分配的特定层次和相应EID索引的创建。
权利要求
1.一种用于在分层结构数据库(10)的相同层次上的元素内进行查找的方法,其特征在于,每个元素都具有用于限定所述元素的属性的一个或多个分层结构节点,且其中所查找的元素的一个或多个节点必须实现一个或多个查找条件(c0,ci,...),该方法包括以下步骤a.选择多个节点并向每个所选节点分配唯一的标识符(EID);b.创建参考索引(20),它允许为所选节点的每个唯一的标识符(EID)派生数据库(10)的相应元素;c.对于一个或多个查找条件(c0,ci,...)中的每一个为实现各查找条件的节点检索起源节点的唯一标识符(EID)的组(L,Ei);d.使这些组(L,Ei)相交,以获得唯一标识符(EID)的最终组(L);以及e.根据唯一标识符(EID)的最终组(L)和参考索引(20)检索所查找的元素。
2.如权利要求1所述的方法,其特征在于,方法步骤c.中的检索包括使用一个或多个查找索引(31,32),它们使起源节点的唯一标识符(EID)与可能是一个或多个查找条件(c0,ci,...)的主题的节点相关联。
3.如权利要求1或2所述的方法,其特征在于,参考索引(20)为每个唯一标识符(EID)直接指向其有关的数据库元素或者指向作为发起唯一标识符(EID)的节点起源的节点的唯一标识符(EID)。
4.如权利要求1-3中的任一项所述的方法,其特征在于,如果在相同的分层层次上存在几个节点,则唯一标识符(EID)仅被分配给节点。
5.如权利要求1-4中的任一项所述的方法,其特征在于,如果节点的子节点被预计是一个或多个查找条件(c0,ci,...)的主题,则唯一标识符仅被分配给节点。
6.如以上任一权利要求所述的方法,其特征在于,唯一标识符(EID)是唯一的数字。
7.如以上任一权利要求所述的方法,其特征在于,数据库是基于XML的数据库(10)。
8.一种具有多个元素的数据库(10),其特征在于,包括a.多个分层结构节点,它们描述数据库(10)的元素的属性;b.多个唯一标识符(EID),它们被分配给所选的节点;c.参考索引(20),它允许为所选节点的每个唯一标识符(EID)派生数据库(10)的相应元素;d.一个或多个查找索引(31,32),它们使起源节点的唯一标识符(EID)与可以是一个或多个查找条件(c0,ci,...)的主题的节点相关联。
9.如权利要求8所述的数据库(10),其特征在于,参考索引(20)为每个唯一标识符(EID)直接指向其元素或者指向作为发起唯一标识符(EID)的节点起源的节点的唯一标识符(EID)。
10.如权利要求8或9所述的数据库(10),其特征在于,如果在数据库(10)的相同分层层次上存在几个节点,则唯一标识符(EID)仅被分配给节点。
11.如权利要求8-10中的任一项所述的数据库(10),其特征在于,如果所述节点的子节点被预计是一个或多个查找条件(c0,ci,...)的主题,则唯一标识符仅被分配给节点。
12.如权利要求8-11中的任一项所述的数据库(10),其特征在于,唯一标识符(EID)是唯一的数字。
13.如权利要求8-12中的任一项所述的数据库(10),其特征在于,数据库(10)是基于XML的数据库(10)。
全文摘要
本发明涉及一种用于在分层结构数据库(10)的元素内进行查找的方法,其中每个元素都具有用于限定所述元素的属性的一个或多个分层结构节点,且其中所查找的元素的一个或多个节点必须实现一个或多个查找条件(c
文档编号G06F17/30GK1645368SQ20041010229
公开日2005年7月27日 申请日期2004年12月16日 优先权日2003年12月16日
发明者J·哈巴斯, K·H·-P·文克勤, H·R·邵尼恩 申请人:软件股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1