一种基于时空数据的快速索引方法

文档序号:6463059阅读:158来源:国知局
专利名称:一种基于时空数据的快速索引方法
技术领域
本发明属于无线通信计算机领域,具体涉及一种时空数据快速索引方法。
技术背景随着现代通信技术的不断发展,特别是无线通信的多样化和传输速率的迅速提高,使得 它在现代化的生产生活中占有越来越重要的地位。建立一个高效的时空数据索引机制来对大 量的无线数据进行快速査找和迅速定位成为一个非常重要的任务。现在大型商用空间数据库 系统,如Oracle Spatial, IBM DB2 Spatial Extender和IBM Informix Spatial Data Blade,都是 采用R-树索引技术,如图1所示,为R-树的平面示意图和对应的结构示意图。其叶子结点中 存储该结点对应的空间要素的外包络矩形和空间要素标识。非叶子结点(叶子结点的父亲、 祖先结点)存放其子女结点集合的整体外包络矩形和指向其子女结点的指针。从R-树的结构 可以看出,让空间上靠近的空间要素拥有尽可能近的共同祖先,能提高R-树的査找效率;但 是R-树的这种查找是从整个索引空间开始,在一棵深度很大的丰满的R-树中查找,当空间维 数较高或索引目标很多时,空间检索性能会因中间结点目录矩形的重叠增加或重复存储及树 的深度增加而急剧下降;并且难以支持随时间变化的空间数据。因此,建立一个能对空间和 时间特性进行高效管理的时空数据索引机制成为一个非常重要的任务。一种将时间独立出来,并保存每一时间戳的空间数据索引机制在Nascimento, M.A.和 Silva, J.R.0的文章"Towards Historical R-trees", ACM SAC98, Proceedings, p.235-240中描述 了,其结构为两级索引机制,分别对时空对象的时间信息和空间信息进行索引,并采用了重 叠技术,利用部分持久(partially persistent)的索引结构。HR-树的每个时间索引节点包括( 时间片开始时间,时间片结束时间,对应时间片的R-树的根结点指针}。该索引技术的基本 构思如下假定序列表A索引更新发生的时间点,A在tl时刻指向初始的完整的R-树;到 时间片t2时,对象3的MBR (MBR为该目标在k维空间中的最小包围矩形,简称为数据矩 形)发生改变,用3'对发生改变的MBR进行标识,最后只有路径(R1, A, 3}需要更新, 产生新的路径{ R2, Al, 3'),显然在t2时间片R-树的根结点由子树A' 、 B和C组成, 如图2的树形结构示意图所示,在HR-树中没有发生变化的结点不需要复制,只需要建立相 应的指向关系,就可以节省可观的存储空间。又由于HR-树索引是对事务时间索引,时间査 询效率与己存储的数据量无关,但是HR-树仍然采用的是R-树索引,它也就继承了上述所说 R-树的缺点发明内容因此,本发明的目的在于提出了一种基于服-树的改进型时空数据快速索引方法,它能在 不增加存储空间的前提下,取得了优越的査找能力和优秀的插入、删除性能。为达到上述目的,本发明提供一种快速索引方法,它是结合HistoricalR-tree和四叉树 (Quadtree)而提出的一种时空索引结构,也可以把它看作一棵特殊的四叉树。本发明解决 其技术问题所采用的技术方案是包括以下步骤A. 将数据存储到数据库中,并建立以时间点为树根的树形索引结构;1B. 将待索引的数据用深度为d的四叉树将整个k维索引空间IS0划分成w:Z(2"'个子索 引空间进行索引;C. 将四叉树的每个结点均与一个索引子空间和一棵R-树Rti相关联如果相邻时间片的R-树有相同分支,只保留前一个时间片的分支,将下一个时间片的索 引指针指向该分支;如果相邻时间片的R-树没有相同分支,需要建立新的索引关系,将索引指针指向新添加 的数据项;D. 根据所要索引的数据项,进行相应的查找操作,插入操作和删除操作; 步骤B中深度为d的四叉树将整个k维索引空间ISO划分为个数为n的d级子空间,依次记为ISO, ISl,, IS (n-l)。 RtO, Rtl,…,Rt (n_l)这n棵R-树分别与之相关联。步骤D中的査找操作包括时间查询和窗口査询。时间查询是指查找在某一时间戳所有活动的空间对象;窗口查询是査找特定时间戳査询窗口内的所有活动对象。其中,时间査询的操作过程为在时间索引结点所对应的四叉树划分出的子索引空间中查找时间片包含指定时间戳的结点,遍历该四叉树分支对应的R-树,输出该叶子结点中所有索引数据项信息。其中,窗口査询的操作过程为依次对树形结构的所有时间索引结点指向的与子空间对 应的R-树执行R-树的窗口操作,输出各时间片中指定窗口内的时空对象。步骤D中的插入操作实现在的R-树中插入一个新的MBR或者生成一个新的由[A/now]指向 的R-树版本(该节点的时间片[ti,now])。将新的对象插入到树形结构中,空间对象随时间发 生变化,发生时间为当前时间戳。插入操作包括建立分支(create branch)、分裂结点(split node)和调整树(adjust tree)三个过程。情况一,如果一个新的MBR被插入节点,如果节点仍然维持它的最大索引数据项数目,没 有上溢,则直接插入节点;情况二,如果一个新的MBR被插入节点,如果节点不能维持它的最大索引数据项数目,则 上溢,则需要分裂节点,生成两个新节点。由于根节点未满,不需要进一步的分裂。在最坏 的情况下, 一个节点的分裂从叶节点繁殖到根节点,造成二个分支被重建。其中,步骤D中的删除操作实现删除树形索引结构中的对象,由于对象随时间发生了变化, 需要创建新的时间索引结点,同样需要建立分支(create branch)、分裂结点(split node) 和调整树(adjust tree)三个过程。情况一,如果一个MBR被删除后,节点仍然维持它的最小索引数据项数目,没有下溢,则 直接删除节点;情况二,如果一个MBR被删除后,节点维持不了它的最小索引数据项数目,则下溢,由此 原结点的所有记录插入到相邻节点,并且释放原节点。在将原节点记录插入到邻节点的过程 中,若邻节点上溢,则参考插入操作过程。与现有技术相比本发明的优点是提高了索引速度,减少了存储空间。考虑倒相邻时间 片的R-树可能会重叠,若相邻时间片的R-树有相同的分支,只保留该分支的一个版本,节省了存储空间;同时引入四叉树将每一时间戳对应的空间块分成《 = £(2"'个部分,每个部分,=0对应四叉树的一个分支节点,能将索引过程中涉及到的査找空间限制在整个索引空间的一部 分,而不必查找整个树型结构,极大的提高了索引速度。


下面结合附图和实施例对本实用新型进一步说明。图l是R-树的平面示意图和对应的结构示意图。图2是未改进的服-树结构的示意图。图3是tl时刻的二维空间平面的示意图。图4是t2时刻的二维空间平面的示意图。图5是tl到t2时刻的索引结构的示意图。图6为插入一个节点的树结构的示意图。图7为删除一个节点的树结构的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细 描述。图3,图4和图5为二维空间索引结构的一个例子。其中,图3为tl时刻的二维空间平面示意图,由公式n二Z(2"'得, 一棵深度为2的四叉树将整个二维平面索引空间分成了五个子,=0索引空间IS0, IS1, IS2, IS3, IS4。 Rt0, Rtl, Rt2, Rt3, Rt4这5棵R-树分别与之相关联。 在图3中所示,完全包围r3的最小子空间为IS2,因此r3被分配给IS2;完全包围r4的最小子空 间为IS0,因此r4被分配给IS0。其中,图3和图4为从tl时刻到t2时刻的二维数据空间平面示意图。在tl时刻,在子空间ISO中,完全包围的MBR为r4和r5;在子空间IS1中,完全包围的MBR为rl和r2;在子空间IS2中,完全包围的MBR为r3;在子空间IS3中,完全包围的MBR为r6;在子空间IS4中,完全包围的MBR为r7和r8;在t2时刻,r2从ISl移动到IS2, r4从IS0移动到IS3,其索引结构也随之发生了变化。如 图5所示,假定序列表A索引更新发生的时间点。[A/tl]指向初始的树形结构。到时间片t2时, 对象r2的MBR发生改变,从子空间IS1移动到子空间IS2中,路径(Rtl, R2, r2)需要更新,产 生新的路径^t2, Rl' , r2};对象r4的MBR发生改变,从子空间IS0移动到子空间IS3中,路 径(RtO, Rl, r4)需要更新,产生新的路径(Rt3, R2' , r4}。显然在t2时刻,rl, r3 r5, r6以及R3节点没有改变不需要被重建,只需要修改指针,指向下一个时间片对应的节点。其基本算法的实施例如下实施例一数据项查找方法,如图4中所示。以图为例,说明在树形索引结构中进行时空对象査找的操作过程。在一棵深度为2的四叉 树所对应的二维平面索引空间被分成了五个子索引空间ISO, IS1, IS2, IS3, IS4。 RtO, Rtl, Rt2, Rt3, Rt4这5棵R-树分别与之相关联。若要查找t2时刻所有与QR重叠的MBR,过程 如下(1) QR与子空间ISO相交,且与RtO的索引空间相交,因此在RtO中查找,返回满足要求 的数据矩形r5;(2) QR与IS1、 IS2、 IS3都不相交,不用继续比较;(3) QR与子空间IS4相交,且与Rt4的索引空间相交,因此在Rt4中查找,返回满足要求 的数据矩形r7;实施例二数据项插入方法,如图6中所示。以图为例,说明在树形索引结构中插入新时空对象的操作过程。在一棵深度为2的四叉树 所对应的二维平面索引空间被分成了五个子索引空间ISO, IS1, IS2, IS3, IS4。 RtO, Rtl,Rt2, Rt3, Rt4这5棵R-树分别与之相关联。从时间片tl到时间片t2, 一个新的标识为r8的MBR 被插入。算法描述它应该在节点R2中被插入,假定该节点的最大索引数据项数目为1=3,此时 节点R2已满,上溢。因此需要分裂节点,生成节点R21和R22。原节点R2的两个数据项r3和r4 需要修改指针,指向生成的新节点R21;同时数据项r5修改指针,指向生成的新节点R22,并 插入新增加的数据项r8。而节点R1和R3的数据项均未发生改变,由R1和R3修改指针,指向下 一个时间片所对应的节点RtO和Rt4。实施例三数据项删除方法,如图7中所示。以图为例,说明在树形索引结构中删除时空对象的操作过程。在一棵深度为2的四叉树所 对应的二维平面索引空间被分成了五个子索引空间ISO, IS1, IS2, IS3, IS4。 RtO, Rtl, Rt2, Rt3, Rt4这5棵R-树分别与之相关联。从时间片tl到时间片t2,标识为r2和r3的MBR被删 除。算法描述r2应该在节点Rl中被删除,r3应该在节点R2中被删除。假定该节点的最小索引 数据项数目为j-2,此时节点R1和R2均下溢。因此,R2中的数据项r4修改指针,插入到结点R1 中,并且释放R2结点。而节点R3的数据项未发生改变,只需由R3修改指针,指向下一个时间 片所对应的节点Rt4。以上对本发明所提供的时空数据快速索引方法进行了详细介绍,本文中应用了具体各例 对发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解发明的方法及其 核心思想,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替 换、改进等,应均在本发明的保护范围之内。
权利要求
1、一种时空数据快速索引方法,其特征在于,考虑倒相邻时间片的R-树可能会重叠,若相邻时间片的R-树有相同的分支,只保留该分支的一个版本;同时引入四叉树将每一时间戳对应的空间块分成<math-cwu><![CDATA[<math> <mrow><mi>n</mi><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>d</mi><mo>-</mo><mn>1</mn> </mrow></munderover><msup> <mrow><mo>(</mo><msup> <mn>2</mn> <mi>k</mi></msup><mo>)</mo> </mrow> <mi>i</mi></msup> </mrow></math>]]></math-cwu><!--img id="icf0001" file="S2008101013431C00011.gif" wi="83" he="42" img-content="drawing" img-format="tif"/-->个部分,每个部分对应四叉树的一个分支节点,能将索引过程中涉及到的查找空间限制在整个索引空间的一部分,而不必查找整个树形结构。该方法包括一下步骤A.将数据存储到数据库中,并建立以时间点为树根的树形索引结构;B.将待索引的数据用深度为d的四叉树将整个k维索引空间IS0划分成<math-cwu><![CDATA[<math> <mrow><mi>n</mi><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>d</mi><mo>-</mo><mn>1</mn> </mrow></munderover><msup> <mrow><mo>(</mo><msup> <mn>2</mn> <mi>k</mi></msup><mo>)</mo> </mrow> <mi>i</mi></msup> </mrow></math>]]></math-cwu><!--img id="icf0002" file="S2008101013431C00012.gif" wi="84" he="43" img-content="drawing" img-format="tif"/-->个子索引空间进行索引;C.将四叉树的每个结点均与一个索引子空间和一棵R-树Rti相关联如果相邻时间片的R-树有相同分支,只保留前一个时间片的分支,将下一个时间片的索引指针指向该分支;如果相邻时间片的R-树没有相同分支,需要建立新的索引关系,将索引指针指向新添加的数据项;D.根据所要索引的数据项,进行相应的查找操作,插入操作和删除操作;
2、 根据权利要求1所述的方法,其特征在于,步骤B中深度为d的四叉树将整个k维 索引空间ISO划分为个数为n的d级子空间,依次记为ISO, IS1,…,IS(n-l)。RtO, Rtl,…, Rt (n-l)这n棵R-树分别与之相关联。
3、 根据权利要求1所述的方法,其特征在于,步骤D中的查找操作包括时间查询和窗 口查询。时间査询是指查找在某一时间戳所有活动的空间对象;窗口査询是査找特定时间戳 査询窗口内的所有活动对象。其中,时间查询的操作过程为在时间索引结点所对应的四叉树划分出的子索引空间中 査找时间片包含指定时间戳的结点,遍历该四叉树分支对应的R-树,输出该叶子结点中所有 索引数据项信息。其中,窗口查询的操作过程为依次对树形结构的所有时间索引结点指向的与子空间对应的R-树执行R-树的窗口操作,输出各时间片中指定窗口内的时空对象。
4、 根据权利要求1所述的方法,其特征在于,步骤D中的插入操作实现在的R-树中插 入一个新的MBR或者生成一个新的由[A/now]指向的R-树版本(该节点的时间片[ti,now])。 将新的对象插入到树形结构中,空间对象随时间发生变化,发生时间为当前时间戳。插入操 作包括建立分支(createbranch)、分裂结点(splitnode)和调整树(adjusttree)三个过程。情况一,如果一个新的MBR被插入节点,.如果节点仍然维持它的最大索引数据项数目, 没有上溢,则直接插入节点;情况二,如果一个新的MBR被插入节点,如果节点不能维持它的最大索引数据项数目, 则上溢,则需要分裂节点,生成两个新节点。由于根节点未满,不需要进一步的分裂。在最 坏的情况下, 一个节点的分裂从叶节点繁殖到根节点,造成二个分支被重建。
5、根据权利要求1所述的方法,其特征在于,步骤D中的删除操作实现删除树形索引 结构中的对象,由于对象随时间发生了变化,需要创建新的时间索引结点,同样需要建立分 支(createbranch)、分裂结点(splitnode)和调整树(adjusttree)三个过程。情况一,如果一个MBR被删除后,节点仍然维持它的最小索引数据项数目,没有下溢, 则直接删除节点;情况二,如果一个MBR被删除后,节点维持不了它的最小索引数据项数目,则下溢, 由此原结点的所有记录插入到相邻节点,并且释放原节点。在将原节点记录插入到邻节点的 过程中,若邻节点上溢,则参考插入操作过程。
全文摘要
本发明涉及无线通信计算机领域,具体提出了一种时空数据快速索引方法,这是一种高效的索引机制,它使用重叠索引结构存储不同时间戳的时空状态,若相邻时间片有相同的R-树索引分支,只保留其中一个版本,减少了存储空间。同时,对于一个时间片上的数据不再查找整个索引空间,而是采用基于四叉树的分块索引机制,将整个空间划分为n=∑<sup>d-1</sup><sub>i=0</sub>(2<sup>k</sup>)<sup>i</sup>个子索引空间(d为四叉树的深度,k为索引空间的维度),从而只用查找其中的一个子空间,大幅减少了索引时间。利用本索引方法可以用于对多个无线移动节点高效的进行定位和数据监控管理。
文档编号G06F17/30GK101241511SQ20081010134
公开日2008年8月13日 申请日期2008年3月5日 优先权日2008年3月5日
发明者崔晓燕, 灿 袁 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1