空间索引

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.空间索引的定义
空间索引是指根据空间要素的地理位置、形状 或空间对象之间的某种空间关系,按一定的顺 序排列的一种数据结构,一般包括空间要素标 识,外包络矩形以及指向空间要素的指针。
2.空间索引的作用
为了GIS系统中快速定位到所选中的空间要素, 从而提高空间操作的速度和效率。 空间索引的技术和方法是GIS关键技术之一,是 快速高效的查询、检索和显示地理空间数据的重 要指标,他的优劣直接影响空间数据库和GIS系 统的整体性能。
• 每个结点所能拥有的子结点数目有上、下限,下 限保证对磁盘空间的有效利用,上限保证每个结 点对应一个磁盘页,当插入新的结点导致某结点 要求的空间大于一个磁盘页时,该结点一分为二。
• R树的特点
1.根节点若非叶子节点,则至少有两个子节点; 2.每个非根叶节点和非叶节点包含的实体个数均 介于m和M之间; 3.所有叶子节点在同一层次 。
• X树
X树是线性数组和层状的R树的杂合体,通过引入 超级结点,大大地减少了最小边界矩形之间的重 叠,提高了查询效率。
X树用边界圆进行索引,边界矩形的直径(对角线) 比边界圆大,SS树将点分到小直径区域。
由于区域的直径对最邻近查询性能的影响较大, 因此SS树的最邻近查询性能优于R*树;边界矩形 的平均容积比边界圆小,R*树将点分到小容积区 域;由于大的容积会产生较多的覆盖,因此边界 矩形在容积方面要优于边界圆。
例:M=3
◇ B-树的特性:
1.关键字集合分布在整颗树中; 2.任何一个关键字出现且只出现在一个结点中; 3.搜索有可能在非叶子结点结束; 4.其搜索性能等价于在关键字全集内做一次二分 查找; 5.自动层次控制。
◇ B+树
B-树的变体,也是一种多路搜索树,与B-树不同 的是: 1.非叶子结点的子树指针与关键字个数相同; 2.非叶子结点的子树指针P[i],指向关键字值属 于[K[i], K[i+1])的子树(B-树是开区间); 3.为所有叶子结点增加一个链指针; 4.所有关键字都在叶子结点出现。
B+树:在B-树基础上,为叶子结点增加链表 指针,所有关键字都在叶子结点中出现,非 叶子结点作为叶子结点的索引;B+树总是 到叶子结点才命中; B*树:在B+树基础上,为非叶子结点也增加 链表指针,将结点的最低利用率从1/2提高 到2/3。
(二Байду номын сангаасR树空间索引
1.R树
1984年Guttman发表了《R树:一种空间查询的动 态索引结构》,首次提出了R树空间索引结构。 其后,人们在此基础上针对不同空间运算提出了 不同改进,才形成了一个繁荣的索引树族,是目 前流行的空间索引。
• R树空间索引的研究要求
①支持高维数据空间; ②有效分割数据空间, ③来适应索引的组织; ④高效的实现多种查询方式系统中的统一。
三、R树和B树的比较
①R树是B树在多维空间的扩展,是一种平衡的
树结构。
②R树结构采用平行于数据空间轴的最小的边界
矩形来近似复杂的空间对象,可以用一定数量的 字节来表示一个复杂的对象。
②R树的插入操作
同B树的插入操作类似。
当新的数据记录需要被添加入叶子结点时,若叶 子结点溢出,那么我们需要对叶子结点进行分裂 操作。 显然,叶子结点的插入操作会比搜索操作复杂。
③R树的删除操作
与B树的删除操作会有所不同,不过同B树一样, 会涉及到压缩等操作。 R树的删除同样是比较复杂的,需要用到一些辅助 函数来完成整个操作。
R树是一种高度平衡的树, 由中间节点和页节点组成, 实际数据对象的最小外接 矩形存储在页节点中,中 间节点通过聚集其低层节 点的外接矩形形成,包含 所有这些外接矩形。 R树是一种动态索引结构, 即:它的查询可与插入或 删除同时进行,而且不需 要定期地对树结构进行重 新组织。
R树示例图
• R树是B树向多维空间发展的另一种形式,它将空 间对象按范围划分,每个结点都对应一个区域和 一个磁盘页,非叶结点的磁盘页中存储其所有子 结点的区域范围,非叶结点的所有子结点的区域 都落在它的区域范围之内;叶结点的磁盘页中存 储其区域范围之内的所有空间对象的外接矩形。
与R树相比,QR树以略大(有时甚至略小)的空 间开销代价,换取了更高的性能,且索引目标数 越多,QR树的整体性能越好。
• SS树
SS树对R*树进行了改进,通过以下措施提高了 最邻近查询的性能: ①用最小边界圆代替最小边界矩形表示区域的形 状,增强了最邻近查询的性能,减少将近一半存 储空间; ②SS树改进了R*树的强制重插机制。
2.R-Tree空间索引的研究历程
• R+树
在Guttman的工作的基础上,许多R树的变种被 开发出来, Sellis等提出了R+树。 R+树与R树类似,主要区别在于R+树中兄弟结点 对应的空间区域无重叠。
• 消除了R树因允许结点间的重叠而产生的“死区 域”(一个结点内不含本结点数据的空白区域), 减少了无效查询数,从而大大提高空间索引的效 率。
空间索引
主要内容
一、空间索引 二、空间索引方法 三、R树与B树的比较
一、空间索引
对一个数据集做“索引”,是为了提高对这个数据 集检索的效率。
索引是用来提供快速、有选择性的存取数据库的一 种机制。相当于一个映射机构,将属性的值转换为 相应的地址或地址集。 对于空间数据,其存储主要依赖于空间对象之间的 位置关系而非属性值。鉴于空间数据的特点,我们 需要寻找适用的空间索引机制 。
• R树的数据结构
(1)R-Tree是n叉树,n称为R-Tree的扇(fan);
(2)每个结点对应一个矩形;
(3)叶子结点上包含了小于等于n的对象,其对应 的矩为所有对象的外包矩形; (4)非叶结点的矩形为所有子结点矩形的外包矩形。
• R树的操作
①R树的搜索操作
很简单,跟B树上的搜索十分相似。
返回的结果是所有符合查找信息的记录条目。
当B树的搜索性能逼近 二分查找时,它比连 续内存空间的二分查 找的优点是:改变B树 结构(插入与删除结 点)不需要移动大段 的内存数据,甚至通 常是常数开销。
B树在经过多次插入与删除后,有可能导致不同的 结构:右边也是一个B树,但它的搜索性能已经是 线性的了;同样的关键字集合有可能导致不同的 树结构索引。
◇B树即二叉搜索树: 1.所有非叶子结点至多拥有 两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向 小于其关键字的子树,右 指针指向大于其关键字的 子树。
◇ B树的搜索
从根结点开始,如果查询的关键字与结点的关键 字相等,那么就命中;否则,如果查询关键字比结 点关键字小,就进入左儿子;如果比结点关键字大, 就进入右儿子;如果左儿子或右儿子的指针为空, 则报告找不到相应的关键字。
3.空间索引的分类
按照搜索分割对象不同,可将空间索引分为3类,即 基于点区域划分的索引方法、基于面区域划分的 索引方法和基于三维体区域划分的索引方法。B 树是常见的基于点区域划分的索引。
按照空间分割方法将空间分割分为规则分割法和 对象分割法。R树是规则分割法中的一种。
二、空间索引方法
(一)B树空间索引
例:M=3
◇B*树
B+树的变体,在B+树的非根和非叶子结点再增加 指向兄弟的指针; B*树定义了非叶子结点关键字个数至少为(2/3)*M, 即块的最低使用率为2/3(代替B+树的1/2)。
总结
B树:二叉树,每个结点只存储一个关键字,等于 则命中,小于走左结点,大于走右结点;
B-树:多路搜索树,每个结点存储M/2到M个关键 字,非叶子结点存储指向关键字范围的子结点; 所有关键字在整颗树中出现,且只出现一次,非 叶子结点可以命中;
◇ B-树
一种多路搜索树(并不是二叉的):
1.定义任意非叶子结点最多只有M个儿子;且 M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M1个关键字;(至少2个关键字)
5.非叶子结点的关键字个数=指向儿子的指针个 数-1; 6.非叶子结点的关键字:K[1], K[2], …, K[M-1]; 且K[i] < K[i+1]; 7.非叶子结点的指针:P[1], P[2], …, P[M];其中 P[1]指向关键字小于K[1]的子树,P[M]指向关键 字大于K[M-1]的子树,其它P[i]指向关键字属于 (K[i-1], K[i])的子树; 8.所有叶子结点位于同一层。
• 对于插入、删除空间对象的操作,由于操作要保 证空间区域无重叠而使得效率降低。
• 同时R+树对跨区域的空间物体的数据的存储是有 冗余的,而且随着数据库中数据的增多,冗余信 息会不断增长。
• R*树
在1990年,Beckman和Kriegel提出了最佳动态R 树的变种—R*树。 R*树和R树一样允许矩形的重叠,但在构造算法 R*树不仅考虑了索引空间的“面积”,而且还考 虑了索引空间的重叠。
③尽管会丢失很多的信息,但是空间物体的最小
边界矩形保留了物体的最重要的几何特性,即空 间物体的位置和其在整个坐标轴上的范围。
组员分工
• 杨依彬、李兵、王朝阳查找资料 • 张帅帅、张德成制作PPT • 孙秀宁、李晓明讲解
• 该方法对结点的插入、分裂算法进行了改进,并 采用“强制重新插入”的方法使树的结构得到优 化。 • 但R*树算法仍然不能有效地降低空间的重叠程度, 尤其是在数据量较大、空间维数增加时表现的更 为明显。
• R*树无法处理维数高于20的情况。
• QR树
QR树利用四叉树将空间划分成一些子空间,在各 子空间内使用许多R树索引,从而改良索引空间 的重叠。 QR树结合了四叉树与R树的优势,是二者的综合 应用。
相关文档
最新文档