以两搜索步骤对数据库进行搜索的方法和设备的制作方法

文档序号:6756206阅读:156来源:国知局
专利名称:以两搜索步骤对数据库进行搜索的方法和设备的制作方法
技术领域
本发明涉及对盘式存储介质特别是CD-ROM或者DVD-ROM上的数据库进行搜索的方法。本发明还涉及对数据库进行搜索的相应设备。
背景技术
数据库系统通常对固定或者动态的数据进行访问。该数据通常储存在硬盘上。有时,该数据也会储存在ROM中,如移动电话语音数据库T9的情形。另外,例如将电话簿储存在CD-或者DVD-ROM上也属于已知的做法。
然而目前动态数据库无法在光介质上进行存储。这是因为相对于硬盘,在光介质上的有限次重写周期具有相对比较长的跳跃时间。因此在光介质上处理复杂的搜索请求需要很长的时间。

发明内容
因此,本发明的目的在于优化对数据库的搜索,特别是在光介质上的搜索。
本发明通过一种对盘式存储介质上的数据库进行搜索的方实现了上述目的,在所述方法的第一搜索步骤中对储存在所述盘式存储介质上的所述整个数据库进行扫描,并提供一个来自于所述第一搜索步骤的中间结果,在来自于所述第一搜索步骤的中间结果中执行第二搜索步骤,并且提供来自于所述第二搜索步骤的最终结果。
本发明还提供了一种用于对盘式存储介质上的数据库进行搜索的设备,该设备包括执行第一搜索步骤的搜索装置,该装置可以用于对所述盘式存储介质上的所述整个数据库进行扫描,以及存储器装置用于储存并且提供来自于所述第一搜索步骤的中间结果,其中所述搜索装置还被用于在来自于所述第一搜索步骤的所述中间结果中执行第二搜索步骤,并且提供来自于所述第二搜索步骤的最终结果。
本发明所基于的搜索概念是要求所述读取头在所述盘式存储介质特别是光盘上进行尽可能少的跳跃。这样所述搜索时间可以被显著的最小化,因为执行彻底的搜索操作从而对所述第一搜索步骤进行完善是可能的,且这种彻底搜索不再求助于所述存储盘而是对快速存储器装置进行访问。
优选地,在所述第一搜索步骤中对所述数据进行处理的速度至少达到对所述数据进行读入的速度。这可以通过使所述搜索深度与所述读入速度相匹配来实现。这意味着在所述第一搜索步骤中在所述存储盘上进行的所述读取操作不会受到干扰,且不需要进行耗时的返回跳跃。
所述第一搜索步骤可以仅执行近似搜索(近似匹配)。相对于如计算密集型的比较运算,对所述近似搜索的执行可以非常快。如果在搜索中采用了索引列表,比较有利的是所述第一搜索步骤包括仅按照扇区编号的降序或者升序的方式进行的向所述搜索位置的跳跃。这种方法也减小了平均跳跃距离。
在所述第一搜索步骤中得到的中间结果可以包括一个或多个子结果,在所述第二搜索步骤中会对所述子结果分别进行搜索。举例来讲,这意味着所述第一搜索步骤可以交付单独的子树,且在所述第二搜索步骤中根据具体的元素会对这些子树进行细化。
在一种优选情况下,所述数据库是动态的并且以分段形式存储,每段数据被连续地读入并且读取头在数据段之间的仅一个方向上跳跃。这同样可以防止所述跳跃次数超过所需要的最小值。特别地,由于所述跳跃仅在一个方向上进行,从而减小了所述跳跃的距离。
为了安全考虑,在所述盘式存储介质上的所述数据被储存在ECC(错误校正码)块中。在这种情况下减少跳跃次数显得更加重要,因为所述ECC块总是被全部读入,并且在所述存储盘上的跳跃通常要求随后移动到ECC块的开始位置。
优选地,如已经指出的,所述盘式存储介质是光盘,例如CD或者DVD。对于这些光盘来说,所述读取头的移动相对于硬盘来说是非常缓慢的,从而所述方法可以期待最大的回报。


结合附图作为参考对本发明描述如下,附图所示为本发明方法的基本概要图。
具体实施例方式
以下详细描述的实施例为本发明的一个优选实施例。本发明实现了对存储盘上的数据库所进行的全面搜索,这是通过在第一进程中(线程)对所述数据进行全面的搜索,同时在第一搜索步骤中执行(从所述处理器能力的角度)简单、粗略并且快速的搜索。在这种情况下,从扇区编号角度来讲在所述存储盘上对所述数据进行的搜索要尽可能连续。这样可以减少驱动器费力的拾取跳跃。
每个搜索命中结果随后都被转送到第二搜索步骤。这意味着适合的数据被从所述第一搜索步骤传送到所述第二搜索步骤,即从第一进程转到并行执行的第二进程。所述第一搜索步骤并不等待来自于所述第二搜索步骤的结果,即所述第一搜索步骤立即继续执行其粗略的搜索。
所述第二搜索步骤负责执行更加复杂,需要更多CPU运算能力的搜索任务,例如比较操作。该搜索过程随后在独立于所述粗略搜索的彼此并行的单独的第二进程(线程)中执行。
所述划分对于例如XML数据库的层级文本数据库特别有意义。对于该种数据库的搜索请求常常包括文本、元素名称以及属性名称。例如,所述搜索请求可以是对一音乐数据库进行搜索以寻找Eric Clapton的歌曲“Wonderful tonight”。所述第一搜索步骤随即在快速文本扫描中对所储存的数据进行搜索。在一个具体实施例中,对所述音乐数据库的搜索目标是与歌手“Eric Clapton”以及歌曲“Wonderful tonight”相关的内容。这是仅要求有限运算能力的搜索类型。对运算能力的要求根据例如执行所述文本搜索的容错级别,以及所述搜索是否对大小写敏感的不同情况而不同。
基本上,可以利用的运算能力是有限的。其用于对数据进行粗略、快速并且持续的扫描。在这此要注意的是,尽管相对于硬盘,在光盘上从一个扇区跳到另一个任意扇区需要一段很长的跳跃时间(可以达到一秒),对连续的光盘扇区的持续读入仅略慢于硬盘的速度。因此,要在尽可能最大的程度上对所述数据的进行持续的扫描。这样做的前提条件是所述粗略的第一搜索步骤不会使所述处理器过载。为达到所述情况,CPU仅要求很少的时间用于所述第一搜索步骤中的处理,这意味着所述驱动器或者读取头可以将每个扇区的数据立即交付给所述第一步骤。否则,就会发生读取头费力的返回跳跃。
因此所述粗略的第一搜索交付可能的命中结果,但不是确定的命中结果。在一个具体实施例中,所述第一个搜索步骤将提供在音乐数据库中所有包含“Eric Clapton”和/或“Wonderful tonight”的条目作为命中结果。这意味着由Eric Clapton演唱的其他歌曲以及演唱该首歌曲的其他演绎者也被作为中间结果储存起来。这些可能的命中结果被直接转发往第二个独立的搜索进程。该第二搜索进程提供精确的搜索,以确认真正的命中结果。因此在这个搜索进程中,执行了更加复杂的搜索运算,例如常常用于XML数据库的复杂的XPath表达。在一个具体实施例中,对带有“Eric Clapton”的命中结果进行搜索,以寻找所述字头“Wonderful tonight”,反之亦然。因此,作为最终结果就可能得到既包含所寻找的演绎者信息又包含歌曲信息的数据库条目。
该两阶段程序的优势在于预选择搜索进程,该预选择搜索进程需要尽可能少的运算能力,并在减少了跳跃的持续扫描过程中对所述数据进行搜索。因此,对所述数据的扫描以最高速度进行。所述第二搜索进程以低于所述第一搜索进程的优先级进行,利用剩余的运算能力以找到最终的命中结果。
本过程对于储存在CD-ROM和DVD-ROM上的固定数据已经提供了执行时间方面的优势。当光盘上的数据以分段形式存储时就更加有效。特别是在所述数据为动态数据时。
例如所述第一搜索步骤允许对XML元素名称、XML属性名称,XML元素值(即文本)和XML属性值(也即文本)以及XML名称空间进行搜索。在这个例子中,只要有充足的运算能力,同样有可能对被同时查询的搜索模块如逻辑与功能以及逻辑或功能进行逻辑结合。这意味着,所述第一步骤的所述搜索深度是依赖于现有的运算能力的。换言之,在这个例子中,可以实时地即在数据被读入的同时对单独的命中结果进行逻辑结合。这也就意味着,所述第一个搜索步骤已经具有层级设计。所述第一搜索步骤随后返回搜索子树。这些搜索子树包含例如所有被要求的元素名称、属性名称和值文本。
在所述第二步骤中,对所述搜索进行完善,即在该步骤中执行更复杂的搜索要求。这些更复杂的搜索要求是,例如,元素顺序,比较操作以及其他在所述第一搜索步骤中不能检测的逻辑依赖关系。
附图所示为所述搜索的并行流程图。由持续时间t的框条代表对所述全部数据进行没有中断的搜索的所述第一搜索步骤,所述第二搜索步骤仅接收来自所述第一搜索步骤的命中结果。随后对这些命中结果进行详细搜索。所述第二搜索步骤是利用现有剩余的运算能力进行的单独的CPU进程。因此所述第一搜索步骤不会受到干扰。由于光盘性质,所述第一搜索步骤一般是更耗时的进程,从而成为了搜索的瓶颈。因此,为防止所述进程受到阻碍,在该进程的安排中采取措施将耗时的检验转移出该进程。从而使得利用预定运算能力并以对应的最大速度进行搜索成为可能。
所述搜索速度也可能由于待搜索数据尽可能按照扇区升序的方式在所述光介质上进行存储而得到提高。
在搜索时不具备索引列表的情况下,所述搜索尤其具有优势。而如果具备索引列表,那么利用所述索引进行搜索往往更为合适。然而如果所述索引列表意味着必须要跳跃到所述数据中不同的位置,那么跳跃到并且对来自于所述索引列表的跳跃点进行搜索就应该按照扇区序号升序排列的顺序进行,从而减少平均跳跃时间。
由于索引列表仅适用于特定的搜索请求,实际上每个数据库都将依赖于全面的搜索以执行特定的复杂搜索请求,这意味着本发明同样可以适用于任何数据库。
总之,可以说本发明最大的优势能够在具有光学驱动器的设备中得到实现,所述光学驱动器的跳跃时间更长并且可以对靠近的扇区进行快速的读取。随即可以利用有限的运算能力以极高的速度对这些在光存储介质上的大量数据进行搜索。按照扇区序号升序方式进行的持续读取将读入全部的ECC(错误校正码)块,并对与所述数据库相关的所有扇区进行扫描。对于DVD来说,所述ECC块包括16个2048位的扇区,对于蓝光光盘来说,所述ECC块包括32个2048位的扇区。即便仅要对一个单独的扇区进行检视,也要将这些ECC块全部读入。为此,例如蓝光光盘约需其内半径的一整圈来读入ECC块。因此,要跨越整个盘的任意跳跃应该是例外情况,并且基本上在本发明中得以避免。
本发明的原则也可以自然地适用于存储在硬盘上的数据。但是在该种情况下其优势可能会略小一些,因为在硬盘上的平均跳跃时间比在光盘上的平均跳跃时间要小几个数量级。另外,在硬盘上的扇区并没有打包成ECC块。
权利要求
1.一种对盘式存储介质上的数据库进行搜索的方法,其特征在于-执行第一搜索步骤,从而对所述盘式存储介质上的所述整个数据库进行扫描,-提供来自于所述第一搜索步骤的中间结果,-执行第二搜索步骤,该步骤的执行是在来自于所述第一搜索步骤的所述中间结果中进行的,-提供来自于所述第二搜索步骤的最终结果。
2.如权利要求1所述的方法,其中在所述第一搜索步骤中对所述数据进行处理的速度至少达到对所述数据的读入速度。
3.如权利要求1或2所述的方法,其中在所述第一搜索步骤中仅进行文本搜索。
4.如前任一权利要求所述的方法,其中所述第一搜索步骤包括仅按照扇区编号的降序或者升序方式,跳跃到来自于索引列表的搜索位置。
5.如前任一权利要求所述的方法,其中所述中间结果包括一个或者多个子结果,并在所述第二搜索步骤中对所述子结果分别进行搜索。
6.如前任一权利要求所述的方法,其中所述数据库是动态的,并且是以分段形式存储,每段数据被连续的读入并且读取头在两段数据之间的仅一个方向上进行跳跃。
7.如前任一权利要求所述的方法,其中所述数据储存在所述盘式存储介质的ECC块中。
8.如前任一权利要求所述的方法,其中所述盘式存储介质是光盘。
9.一种用于对盘式存储介质上的数据库进行搜索的设备,其特征在于-搜索装置,用于执行第一搜索步骤,该第一搜索步骤可以用于对所述盘式存储介质上的所述整个数据库进行扫描,以及-存储器装置,用于储存和提供来自于所述第一搜索步骤的中间结果,其中-所述搜索装置还可以用于在来自于所述第一搜索步骤的所述中间结果中执行第二搜索步骤,并用于提供来自于所述第二搜索步骤的最终搜索结果。
10.如权利要求9所述的设备,其中在所述第一搜索步骤中,在所述搜索装置中对所述数据进行处理的速度至少达到将所述数据读入所述搜索装置的最大或者瞬时读取速度。
11.如权利要求9或10所述的设备,其中在所述第一搜索步骤中,在所述搜索装置中可以仅进行文本搜索。
12.如权利要求9-11中任一所述的设备,其中所述第一搜索步骤包括所述第一搜索装置仅按照扇区编号的降序或者升序方式跳跃到来自于索引列表的搜索位置。
13.如权利要求9-12中任一所述的设备,其中储存在所述存储器装置内的所述中间结果包括一个或多个子结果,在所述第二搜索步骤中可以对所述子结果进行搜索。
14.如权利要求9-13中任一所述的设备,其中所述数据库是动态的,并且以分段方式存储,每段单独的数据可以被连续地读入所述搜索装置并且读取头可以在数据段之间的仅一个方向上进行跳跃。
15.如权利要求9-14中任一所述的设备,其中所述搜索装置以及存储器装置适用于对ECC块进行处理。
16.如权利要求9-15中任一所述的设备,其中所述盘式存储介质是光盘。
全文摘要
本发明涉及以两搜索步骤对数据库进行搜索的方法和设备。本发明旨在搜索时间方面对数据搜索进行优化,特别是对存储在光介质上的数据搜索进行优化。因此本发明公开了采用两个步骤进行所述搜索的方法。在第一搜索步骤中,对所述盘式存储介质上的所述整个数据库进行扫描。在并行的第二搜索步骤中,对来自于所述第一搜索步骤的中间结果进行搜索。这样,特别是对于采用光学驱动器的情况,可以减少在存储盘上的跳跃次数,从而提高搜索速度。
文档编号G11B27/32GK1902628SQ200480039840
公开日2007年1月24日 申请日期2004年11月15日 优先权日2004年1月6日
发明者马尔科·温特, 乌韦·汉森, 沃尔夫刚·克劳斯伯格, 李辉, 迪特乌尔·郝佩尔 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1