- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
空间索引技术的基本原理 空间索引介于空间计算算法与空间数据之间,用于过滤大量与空间计算无关的数据,以提高空间操作的效率。 SAM只加速了索引项中MBB的查找(过滤),在此基础上还要对几何图形进行精确查找。 基于空间索引的空间查询分两步完成: 第一步利用空间索引结构和空间访问方法SAM对数据集进行过滤(初选),在索引表中查找满足查询条件的MBB,结果为对象的一个超集(多个OID)。 第二步对初选结果进行准确查找,在超集中通过空间计算算法,求取满足查询条件的精确对象。 空间驱动的索引结构 空间驱动索引结构的主要特征是采用某种格网对2D空间进行划分,将空间划分成小区域,每个小区域为一个索引单元,每个索引单元包含多个索引项,每个索引项索引一个空间对象。 索引单元按照一定的数据结构来组织。如果组织成线性结构,则相应的空间索引为线性索引,如果组织成非线性结构,则相应的空间索引为非线性索引。 网格索引 网格索引是一种空间驱动的非线性索引结构,其基本特征是用正方形或矩形格网对研究区域的2D空间进行划分,每个网格单元为一个索引单元,索引多个空间对象,索引单元按行列号组织成2D目录。 网格索引包括均匀网格索引和网格文件索引,均匀网格适合于索引空间点对象;网格文件是均匀网格的改进,是一种多关键字索引,可索引点对象和对象的MBB,能够与B+树简单集成,在商用数据库Oracle中已实现。 均匀网格索引 一、均匀网格的特征 设几何对象均为点对象。研究区域为一个[Sx*Sy]大小的空间,将其划分为nx*ny个相同大小的网格,每个网格的边长为Sx/nx*Sy/ny,起始坐标为(Xo,Yo)。 每个网格为一个索引单元,对应于磁盘上一个物理页,每个网格中的点存入相应的磁盘页中。 每个索引单元包含的索引项数量是有限制的,不能超过一个物理页的存储容量。 均匀网格索引 图7-3 均匀网格 如图7-3,索引组织成2D数组DIR[1:nx,1:ny]形式的目录表,每个目录项DIR[i,j] 对应一个索引单元。一个索引单元包含形式为[OID, PageID]的多个索引项,存储为一个物理页。OID为空间对象的主码,PageID为该索引单元对应的物理页标识。 均匀网格索引 (二)基于均匀网格索引的空间访问 1、插入新点:假设新点的坐标为(x,y),计算新点所在网格(索引单元)的行列号。新点的索引目录项为DIR[i,j],假设对应的磁盘页DIR[i,j].PageID为(a,b)所在的页P(a,b),将新点插入P(a,b)页中。 2、点查询:假设鼠标当前位置的坐标为 (x,y),计算鼠标位置所属索引单元的行列号i=(X-Xo)/(Sx/nx)+1和j=(Y-Yo)/(Sy/ny) +1,读入对应的磁盘页DIR[i,j].PageID,扫描该页中所有点对象,判断哪些点对象与(x,y)点重叠。 3、窗口查询:计算窗口W覆盖的网格集合S={Ci,j},对S中的每个读取DIR[i,j].PageID,返回这些页中包含的所有点对象,即为窗口W范围内包含的点对象。 均匀网格索引 格网分辨率的选择取决于被索引点对象的数量。 假设共有N个点对象,每页存储的最大点数为M,则至少需要有N/M个网格。如果某个网格中的点数超过M,多出的点放到溢出区,溢出区与索引区域用指针相连。 所有的网格共用一个溢出区,溢出区可能由多个磁盘页连接成溢出区链。如果o点存储在溢出区链的第q页,则点查询的I/O数为q。最坏的情况下,所有点都位于同一网格中,索引结构为磁盘页的线性列。点的频繁插入会导致较长的溢出链,而点删除会导致空页。对于某些具体分布,这种索引不能满足磁盘存储的要求。 均匀网格索引 如图7-4中例子,每个网格所存的最大点数M=4,k,l,m,n,o五个点对象位于同一个网格中,对应于磁盘页P。将k,l,m,n四个点放入P页,o放入溢出区,将溢出区与P页相连。 图7-4 均匀网格中的溢出页 网格文件索引 二、点对象的格网文件 格网文件与均匀格网的相同之处是采用平行于坐标轴的格网对空间进行完全划分,每个网格单元为一个索引单元,索引单元组织成2D目录形式。与均匀格网不同的是,每次发生溢出时,动态的将网格单元在横向或纵向上分裂为两个单元,可根据网格单元中点对象的分布情况来选择进行纵向还是横向划分;网格文件中的网格单元为大小不相同的矩形单元,多个网格单元可对应同一个磁盘页。 (一)格网文件的数据结构 格网文件由三种数据结构来实现,索引目录DIR是一种与均匀网格中的索引目录类似的2D数组,差别是两个相邻单元可共享同一磁盘页;Sx,Sy是两个线性数组,表示沿两坐标轴的划分。图7-5中的例子描述了这种结构,假设网格的最大容量M=4。 网格文件索引 图7-5均匀网格文件的插入 网格文件索引
文档评论(0)