当前位置: 首页 > 专利查询>浙江大学专利>正文

一种空间数据库中排序反向轮廓查询方法技术

技术编号:10016997 阅读:182 留言:0更新日期:2014-05-08 13:08
本发明专利技术公开了一种空间数据库中排序反向轮廓查询方法。选用了广泛使用的R树对查询集建立索引;在此基础上本发明专利技术首先开发了排序反向轮廓过滤引擎,得到最终结果的一个上限;接着开发了开发基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓裁剪引擎,来消除其中错误的命中;最后开发了排序引擎对查询结果进行合并,并按顺序得到最终的查询结果。

【技术实现步骤摘要】
一种空间数据库中排序反向轮廓查询方法
本专利技术涉及数据库的索引与查询技术,特别是一种空间数据库中排序反向轮廓查询方法。
技术介绍
空间数据库系统是描述、存储和处理空间数据及其属性数据的数据库系统。空间数据库是随着地理信息系统的开发和应用而发展起来的数据库新技术。它并不是独立存在的系统,而是与应用紧密结合,通常是地理信息系统的核心。空间数据库的主要任务是研究空间物体的数据表示方法、数据模型以及数据存储结构和建立空间索引的方法,如何以最小代价高效地存储和处理空间数据,正确维护空间数据的现实性、一致性和完整性,为用户提供现实性好、准确性高、完备、开放和易用的空间数据管理。为了快速、有效地处理存储于空间数据库中的海量空间数据,专家学者提出了大量的基于磁盘的空间索引方法。其中在1984年由Guttman提出的R树是目前最流行的动态空间索引结构,广泛应用于学术研究和商业应用中。R树是一种完全动态的空间索引结构。插入、删除和查询可以同时进行,并且不需要周期性的索引重组。R树由中间结点和叶结点组成。叶结点存储的是实际空间对象的最小边界矩形(MBR)而不是实际的空间对象。空间数据库中,轮廓查询及其变体已经被许多专家学者们广泛研究,譬如度量空间下的轮廓查询、数据流上的轮廓查询、不完整数据上的轮廓查询等。反向轮廓查询是一种重要的轮廓查询变体。一些学者也在不同的环境中对它进行了研究,如不确定数据集上的反向轮廓查询,无线传感器网络中的反向轮廓查询等。传统的反向轮廓查询返回的是所有的结果,并且默认用户对所有属性的喜爱程度都是一样的。但在现实情况中,用户可能对不同的属性有不同的喜爱程度。因此,在做选择的过程中可能会更注重某些属性。此外,当反向轮廓查询返回的结果很大时,他们可能只需要那些排名靠前的k个反向轮廓点,而不是全部。然而,传统的反向轮廓查询都不能满足用户的这些真实需求。
技术实现思路
本专利技术的目的在于提供一种空间数据库中排序反向轮廓查询方法。本专利技术解决其技术问题采用技术方案的步骤如下:步骤(1):选择数据库管理系统,并开发一个空间数据库引擎,选用空间数据库索引技术;步骤(2):开发排序反向轮廓查询过滤引擎;步骤(3):开发基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓查询裁剪引擎,消除步骤(3)中得到的一些不是最终结果的对象;步骤(4):开发排序引擎对查询结果进行合并,并按顺序得到最终的查询结果。所述的步骤(1)中选用的数据库管理系统平台支持基本的SQL查询;空间数据库引擎是构建在应用层和数据库层之间的一种中间件,它必须与选用的数据库管理系统相互配合;空间数据库索引选用R树。所述的步骤(2)中的排序反向轮廓查询过滤引擎,主要是得到排序反向轮廓的一个候选集,即第一层全局轮廓;此外,该步骤还需求得第二层全局轮廓,以便在步骤(3)中用来裁剪,计算第一层全局轮廓和第二层全局轮廓的算法如下:2.1)初始化一个最小堆,并将根结点放入堆,该最小堆根据用户给定的距离计算方式所计算的值进行排序;初始化两个对象集合,一个用来保存第一层全局轮廓,另外一个用来保存第二层全局轮廓;2.2)如果最小堆为空,则过滤算法结束,返回两个对象集合,即第一层和第二层全局轮廓;否则取出堆顶元素;2.3)判断取出的堆顶元素被已经找到的第一层和第二层全局轮廓点所全局控制的次数。对于R树索引结点被全局控制的次数,需分两种情况考虑:a)该结点是中间索引结点,这种状况下根据其被全局控制的次数分为两种:i)该中间结点最多只被一个第一层全局轮廓点所全局控制,那么对于其下的索引孩子结点都加入到最小堆中,并跳到2.2)。ii)该中间结点被第一层全局轮廓点所全局控制的次数大于1,那么对于其下的索引孩子结点不做任何操作,并跳到2.2)。b)该结点是数据索引结点,这种状况下根据其被全局控制的次数分为三种情况:i)该数据结点没有被任何一个已找到的全局轮廓点所全局控制,那么将该数据索引结点加入到第一层全局轮廓结果列表中并跳到2.2)。ii)该数据结点被一个已找到的第一层和第二层全局轮廓点所全局控制,那么将该数据索引结点加入到第二层全局轮廓结果列表中并跳到2.2)。iii)该数据结点被已找到的第一层和第二层全局轮廓点所全局控制的次数大于1,那么对于该数据索引结点不做任何操作,并跳到2.2)。所述的步骤(3)中的基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓查询裁剪引擎,首先利用预处理保存的动态轮廓进行裁剪,再利用全局轮廓进行进一步裁剪;基于动态轮廓精炼的算法如下:i)初始化两个对象集合,一个用来保存最终结果,另一个用来保存的是无法判断的对象;ii)取出一个第一层全局轮廓点,计算出该点的窗口,进行下一步精炼;全局轮廓点的窗口中心点是全局轮廓点,查询点q则是该窗口的一个顶点。如果所有第一层全局轮廓都已经精炼完,则算法结束;如果找到的反向轮廓的个数已经达到用户指定的要求,则算法也结束;否则,算法继续操作;iii)从预处理结果中找到该全局轮廓点对应的动态轮廓,如果查询点落在动态轮廓的动态控制区域中,那么该全局轮廓点不是最终结果,并跳到ii);如果查询点落在动态非控制区域中,那么该全局轮廓点是最终结果,把该点加到最终结果的集合中并跳到ii);查询点既不在动态控制区域中,也不在动态非控制区域中,那么该步骤无法判断该全局轮廓点是否为最终结果,加入到无法判断的对象集合中并跳到ii)。基于全局轮廓裁剪的算法如下:a)初始化一个对象集合,用来保存最终结果;b)取出无法用动态轮廓判断的一个全局轮廓点,计算出该点的窗口,进行下一步精炼;窗口的计算方法同上面一样。如果所有的对象都已经精炼完,则算法结束;如果找到的反向轮廓的个数已经达到用户指定的要求,则算法也结束;否则,继续操作;c)遍历第一层全局轮廓点,如果该窗口包含其它第一层全局轮廓点,那么该点不是最终结果并且跳转到b);d)遍历第二层全局轮廓点,如果该窗口包含其它第二层全局轮廓点,那么该点不是最终结果;否则该点是最终结果,加入到最终结果对象集合;跳转到b)。所述的步骤(4)的排序引擎是将步骤(3)中得到的结果进行合并,并根据每个点的值进行排序得到最终的查询结果。本专利技术具有的有益效果是:本专利技术充分利用了空间数据库中现有索引技术、轮廓查询技术和反向轮廓查询技术,能根据用户对查询对象属性偏好,返回用户指定个数的最好的反向轮廓对象,并且提供了最佳I/O性能和CPU性能。附图说明图1是本专利技术的实施步骤流程图。图2为排序反向轮廓查询系统的工作原理示意图。具体实施方式现结合附图和具体实施对本专利技术的技术方案作进一步说明:如图1,图2所示,本专利技术具体实施过程和工作原理步骤如下:步骤(1):选择数据库管理系统,并开发一个空间数据库引擎,选用空间数据库索引技术;步骤(2):开发排序反向轮廓查询过滤引擎;步骤(3):开发基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓查询裁剪引擎,消除步骤(3)中得到的一些不是最终结果的对象;步骤(4):开发排序引擎对查询结果进行合并,并按顺序得到最终的查询结果。步骤(1)中选用的数据库管理系统平台支持基本的SQL查询;空间数据库引擎是构建在应用层和数据库层之间的一种中间件,它必须与选用的数据库管理系统相互配合,对应图2中的排序反向轮廓查询引擎;空间数据本文档来自技高网
...
一种空间数据库中排序反向轮廓查询方法

【技术保护点】
一种空间数据库中排序反向轮廓查询方法:其特征在于该方法的步骤如下:步骤(1):选择数据库管理系统,并开发一个空间数据库引擎,选用空间数据库索引技术;步骤(2):开发排序反向轮廓查询过滤引擎;步骤(3):开发基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓查询裁剪引擎,消除步骤(3)中得到的一些不是最终结果的对象;步骤(4):开发排序引擎对查询结果进行合并,并按顺序得到最终的查询结果。

【技术特征摘要】
1.一种空间数据库中排序反向轮廓查询方法:其特征在于该方法的步骤如下:步骤(1):选择数据库管理系统,并开发一个空间数据库引擎,选用空间数据库索引技术;步骤(2):开发排序反向轮廓查询过滤引擎;步骤(3):开发基于动态轮廓裁剪和全局轮廓裁剪的排序反向轮廓查询裁剪引擎,消除步骤(3)中得到的不是最终结果的对象;步骤(4):开发排序引擎对查询结果进行合并,并按顺序得到最终的查询结果;所述的步骤(1)中选用的数据库管理系统平台支持基本的SQL查询;空间数据库引擎是构建在应用层和数据库层之间的中间件,所述的中间件与选用的数据库管理系统相互配合;空间数据库索引选用R树;所述的步骤(2)中的排序反向轮廓查询过滤引擎,主要是得到排序反向轮廓的一个候选集,即第一层全局轮廓;此外,步骤(2)还需求得第二层全局轮廓,以便在步骤(3)中用来裁剪,计算第一层全局轮廓和第二层全局轮廓的算法如下:2.1)初始化一个最小堆,并将根结点放入堆,该最小堆根据用户给定的距离计算方式所计算的值进行排序;初始化两个对象集合,一个用来保存第一层全局轮廓,另外一个用来保存第二层全局轮廓;2.2)如果最小堆为空,则过滤算法结束,返回两个对象集合,即第一层和第二层全局轮廓;否则取出堆顶元素;2.3)判断取出的堆顶元素被已经找到的第一层和第二层全局轮廓点所全局控制的次数;对于R树索引结点被全局控制的次数,需分两种情况考虑:A)该R树索引结点是中间索引结点,这种状况下根据其被全局控制的次数分为两种:A1)该中间索引结点最多只被一个第一层全局轮廓点所全局控制,那么对于其下的索引孩子结点都加入到最小堆中,并跳到2.2);A2)该中间索引结点被第一层全局轮廓点所全局控制的次数大于1,那么对于其下的索引孩子结点不做任何操作,并跳到2.2);B)该R树索引结点是数据索引结点,这种状况下根据其被全局控制的次数分为三种情况:B1)该数据索引结点没有被任何一个已找到的全局轮廓点所全局控制,那么将该数据索引结点加入到第一层全局轮廓结果列表中并跳到2.2);B2)该数据索引结点被一个已找到的第一层和第二层全局轮廓点所全局控制,那么将该数据索引结...

【专利技术属性】
技术研发人员:高云君柳晴陈璐苗晓晔赵靖文李信晗
申请(专利权)人:浙江大学
类型:发明
国别省市:浙江;33

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

1