论文部分内容阅读
动态空间数据的索引和查询是时空数据库系统研究的重要内容,在交通管理、智能导航、土地规划、移动通信等领域有重要的应用价值,是数据库领域近年来研究和发展的方向之一。由于空间信息的多维特性和时间维的特殊性,传统数据库中的索引机制及查询算法不再适用,现有时空索引机制多在空间索引的基础上演变而来,形成了以R树家族索引为主的时空索引系列,以此为基础,空间数据的窗口、最近邻、最近对等查询也演变为具有时间片、时间区间和针对未来时刻等时间限制的时空查询。然而,随着移动用户的日趋增多,对动态空间数据集的频繁更新、多重查询、连续性查询等问题越来越受人关注,这对时空索引机制和查询算法提出了新的挑战。针对动态的数据集和查询集合,对现有时空索引和查询算法做进一步的优化,可以使时空数据库的发展更加适应未来的需求。现有的R树系列时空索引较注重结构的精巧设计和查询性能的优化,通过复杂的插入算法获得理想的查询性能,忽略甚至增加了索引的维护开销。根据R树的结构与对象分布相关,而后者在动态数据集中往往相对稳定的特点,采取了基于栅格划分的R树更新缓存与批处理机制,依据栅格选取代表对象分布情况的R树种子节点,提出了针对种子节点的简单合并与利用种子记录的分组插入两种更新算法,在遵循R树节点分布原则的前提下降低了维护开销,且保证了查询的效率。运动轨迹索引需要同时处理更新和历史数据的存取,由于对轨迹线段有连续存储的需求,不宜使用融合了多版本分裂与R树思想的时空历史索引,而现有的轨迹索引在考虑连续性的同时却一定程度上弱化了空间查询性能,且未考虑更新的开销。为此提出了基于位置变化的轨迹索引机制,通过定义轨迹单元,在对轨迹进行合理划分的同时优化了索引的维护开销。实验表明,轨迹单元索引机制在有效支持时间片和时间区间查询的同时减少了索引的节点数,降低了维护的开销。TPR树是用于未来时空预测查询的R树变种,现有的TPNN算法以TPR树为基础,反复利用对时间参数的最近邻计算来求得结果,且对多次出现的候选对象重复查询,影响了查询的效率。鉴于此,提出了基于距离函数的预测查询算法,通过一次遍历TPR树生成候选对象的距离函数中间结果,利用距离函数的排序与分析得出带时间参数的查询结果。以一定的缓存资源避免了对索引的多次遍历和候选对象的重复访问,减少了查询的I/O代价。动态空间数据环境下,查询点的坐标也可能持续改变,多重连续性查询策略需要在针对时空索引的时间片或时间区间查询算法的基础上加以改进。现有方法中SEA-CNN最具代表性,通过动态维护查询的影响和搜索区域、建立查询索引机制等手段降低了系统I/O开销,但对中间结果的利用和动态查询的优化上却未深入讨论。为此提出了对象和结果的双缓存机制,减少静态查询重新初始化次数,进一步缩小动态查询搜索区域,实现了对象访问和查询结果的双重共享。实验表明该机制在对象分布相对稳定的情况下有最佳效果,能有效降低系统在较长时间内的I/O开销。基于上述充分利用中间结果的思想,进一步对组最近邻连续性查询进行优化,通过定义查询的外包容影响区域、栅格影响区域和扩展外包容影响区域,在不显著增加查询的初始化计算开销的前提下合理的增加初始化结果列表的长度,在减少查询重新初始化次数的同时控制了初始化的成本。现有的以R树为基础的利用节点间MinMinDist距离的最近对连接查询算法在参与连接的两个数据集空间重叠较大时优先级队列过长,导致节点重复访问,性能下降。对此问题提出了将最近对查询转换为基于滑动窗口子查询的基本策略,通过定义窗口安全区域、异常区域、安全排列模式减少了对象的重复访问,将连接运算的I/O开销转化为一系列窗口查询的开销,控制了重叠情况下的查询开销。