一种基于四叉树和R_树的索引结构_QR_树
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
QR 树
在 R* 树中 , 中间结点的索引 空间重 叠是不可 能避免 的 ,
*
当进行查找 时往往会产生 多条查找 路径 , 且其 中有些 是失败 查找路径 , 这使得 R* 树的查找性 能受到 影响 , 尤其是 当失败 查找路径较长时 , 对查 找性能 影响很 大。如果能 设计出 一种 索引结构 , 能将 R* 树的查找限定 在空间 的某一部 分来进 行 , 则会大大提高查找性能。为此本文提出了一种新的空间索引 结构 3. 1 QR* 树。 Q R* 树的结构 QR* 树是 结合 Quadtree 和 R 树而 提出 的一 种空间 索引
d- 1 l= 0
结构。设 d> 0, n=
( 2k) l , ( k 为空间 的维 数 , d 为 Quadtree
深度 ) , 则 QR* 树由一棵深 度为 d 的 四叉树 Qt 和 n 棵 R* 树 组成。 Q t 共 有 n 个 结点 , 依次 为 : Qt 0 , Qt 1 , , Qt n- 1 。 Qt 将 整个 数据 空间 S 划分 成 n 个 d 级子 空间 , 依次 记为 : S 0 , S1 , , S n- 1( 其中 S 0 = S) 。 每一级的所 有子空间 两两不相交 , 且 一起构成整个索引空间 S 。 n 棵 R* 树 : Rt 0 , Rt 1, , R t n- 1 分别 与 Q t 的 n 个 结 点及 Qt 划分的 n 个子空间相关联。 S i 与 Rt i 相关联 , 即 Rt i 用于索 引属于 S i 的 空间目 标。一空间 目标 P 属 于 S i 是 指 : ( a) P 完 全落于 Si 或 Si 完全包 围 P; ( b) S i 是 所有完 全包 围 P 的 子空 间中的最小者。 图 1 是二维空间 QR * 树的一个例子。在该例中 , Q R* 树 由一棵深度为 2 的 Quadtree 树和 5 棵 R* 树 组成。整 个空间 被划分为 2 级共 5 个子空间 : S 0, S1 , S 2, S3 , S 4( S0 = S1
125
了几个兄弟 结点的重叠区 域 , 则 以这些 结点为 根的子 树都将 被搜索 , 这会降低搜索效率 , 也很难对搜索效率进行预测。随 后的结构改善了这个问题。 R+ 树是 R 树和 K D B 树 [ 7] 结合 的产物 , 它将对象标识进行复制以使结点不产生重叠 , 因此在 搜索中避免了点查询在 R 树 中的多 路径搜 索。 R* 树 则尽量 减小结点间的重叠面积 , 它对上溢结点进行删除 , 并强制重插 入该结点中的所有对象。 X 树在侦测到所有可能的分裂都会 造成大的重叠时 , 通过不 分裂结 点的策 略来达 到降低 重叠的 目的。这种不分裂的结点称为超结点 ( Super node) , 但是这种 方法也带来 另一个问题 , 即一个 超结点 的孩子 个数是 不固定 的 , 且有可能超结点会很大 ( 尤其是在维度很高的情况下 ) , 这 会使得搜索超结点的时 间变长。 SR 树 的最小 约束盒是 最小 约束矩形和 最小约束球相 交的区域 , 这 种结构 可降低 结点的 重叠是因为 : 在高维空间 中超矩 形的平 均体积 要小于 超球的 体积 , 而超矩形的平均直径却要大于超球。然而 SR 树的插入 和删除操作代价很高且存储需求也相应增加了。
*
S2
S3
S 4) , Rt 0 , Rt 1 , Rt 2, Rt 3 , Rt 4 这 5 棵 R 树 分别 与之 相关 联。 完全包围 r1 的最小子空 间为 S 1 , 因 此 r1 被分配 给 Rt 1 ; 完全 包围 r2 的最小子空间了 S 0, 因此 r2 被分配给 Rt 0 。 因此 Q R* 树 的 结 构 由 Q uadtree 和 R* 树 的 结 构 组 成。 R * 树的结点结构如下所示 : 叶子 结 点 : ( COU N T , LEVEL , < OI1 , M BR1 > , < OI2 , M BR2> , M BR2> , , < O Im , M BR m> ) ;
QR * 树
摘 要: 目前, 许多应用领域频繁地涉及到大的数据集和高维数据对象, 如 CAD、 图形数据库等。 * * * 文中介绍了一种新的空间索引结构 QR 树 。QR 树的存储开销仅略大于 R 树 , 而在插入 、 删除 , 尤 * 其是查找性能上要优于 R 树。 关键词: 空间索引; 空间数据库; QR* 树 中图分类号: T P311. 132. 1 文献标识码 : A
QR* 树是一种基于四叉 树和 R* 树的 空间 索引 结构 , 它 结合 了四叉树和 R 树 的优 点 , 可以 将搜 索范 围限 定在 索引 空间 的某一部分 , 然后再用类似 R* 树 的搜索 算法来进 行查询 , 因 此提高了数 据的查询效率 , 尤其 是在数 据量非 常巨大 的应用 领域中。
QR* 树。
学者对这种索引结 构产生 了兴趣。到 目前为 止 , 相 继提出 了 许多 基 于 R 树 的 结 构 , 如 R+ 树 [ 2] 、 R* 树 [ 3] 、 X 树 [ 5] 和 SR 树 [ 6] 等。基于 R 树的索引结构的基本 思想都是一 样的 : 每个 非叶 结 点 有 一 个 与 之 相 关 的 最 小 约 束 盒 M BB( M inimum Bound Box ) , 所有在这个 M BB 中的 对象存 储在 以 M BB 为 根 结点的子树中。最小约束盒的大小依赖于 对象的分布和对象 的大小。基于 R 树的索引结构的平 均高度 为 O ( logN ) ( N 为 数据集的大小 ) 。 R 树是一种类似于 B + 树的结构。 R 树的主 要缺陷是结点的重叠。如果待查询的区域包含
* * +
象限 ( 子象限 ) , 直到子象限 完全被 图像充 满或完 全没有 图像 为止。这样的 块即 为叶 结点。 非叶 结点 只有 部分 被 图像 覆 盖 , 因此要进一步进行分 解。区域 四叉树的 建立是 通过将 子 象限按某种空 间填 充曲 线排 序后 的顺 序插 入到 树中 来实 现 的。 M X 四叉 树与区 域四叉 树的组织 方式类 似 , 区别是 叶子 结点为黑结点或空结点 分别表示数据空间某一位置空间点的 存在与否。 M X 四叉树的高度是平衡的、 空间划 分是等分的 , 因此结构简单。但其插入 ( 删除 ) 一个点可 能导致树的深度增 加 ( 减少 ) 一 层或 多层 , 且 所有 的叶 子结 点都 必须 重新 定位。 另外 , M X 四叉树的高度往往很大 , 这无疑也 会影响其搜 索效 率。 2. 2 基于 R 树的索引结构 自从 G uttman 于 1984 年提 出了 R 树 的概 念 之后 , 许 多
第 23 卷第 8 期 2003 年 8 月
文章编号 : 1001- 9081( 2003) 08- 0124- 03
计算机应用 Comput er Applications
Vol. 23, No. 8 Aug. , 2003
一种基于四叉树和 R * 树的索引结构
邱建华, 唐学兵 , 黄华国 ( 武汉大学 计算机学院, 湖北武汉 430072)
An Index Structure Based Quad tree and R* tree
QIU Jian hua, TANG Xue bing , HUANG Hua g uo
QR* tree
(Comp uter College, W uhan Univer sity , Wuhan H ubei 430072 , China) Abstract: T he o peration of spatial data objects is fr equently involv ed in many applicat ions w ith larg e data sets and many of t he objects are high dimensio nality , such as CAD, image databases. T his paper intro duces an architectur e spatial index structure called Q R* tree, w hich uses a bit mor e storage than R* tree, however ex cels R* tr ee in insertion, delete, especially in sear ching. Key words: spatial index ; spatial database; Q R* tr ee 归为两大类 : 以区域 规则 划分 为基础 的索 引结 构 ; 基于 R 树 的索引结构。 2. 1 区域四叉树 区域四叉树 [ 4] 将 索引 空间 递归 分解 成四 个相 等 大小 的
1
引言
目前 , 许多应用领域频 繁地涉 及到大 的数据 集和高 维数
据对象 , 如数据挖掘、 图形 数据库、 CA D、 G IS 、 机器人 、 计 算机 视觉等 , 而且在很多应用中 , 对象需要动态更新 , 如插入 、 删除 等。怎样组 织/ 索 引这 类数 据成 为一 个富 有 挑战 性 的问 题。 一种空间索引 结构要尽量 追求数据 存储、 数据搜索 ( 查询、 检 索) 、 数据更 新等方面的 效率。这三 个方面 与应用相 关 , 不同 的应用要求各有差异 , 但要同时做到这三方面 却非常困难。 近年来 , 国内外学者提出了许多不同的空间索引方 法 : 包 括 R 树 [ 1] 、 R+ 树 [ 2] 、 R* 树 [ 3] 、 区 域四 叉树 [ 4] 等 , 但这 些 索引 方法各有优缺点。例如 : R 树采用 最小约 束矩形 来递归 分解 索引空间 , 其存储效率相对较高 , 但由于矩形区域之间可能产 生重叠 , 因此区域搜索可能需要沿多条路径进行 , 从而降低了 搜索效率。 R 树虽然避免了矩形区域的重叠 , 但它 可能需要 在不同的结 点中存储同一 个矩形的 标识 , 从而 降低其 存储效 率。R 树与 R 树有 类似缺点。 本文介 绍一种新的 空间数据 库的索 引结 构
为该目标在 k 维空间 中的 最小约 束 矩 形 ; 非叶 结点 的 CPi 为指向子树根结点的指 针 , M BRi 代表其子树 索引空间。 Q uadtr ee 采用线 性 的存 储 结构 , 其结 点 结 构可 描 述为 : < S, Rt > , 其中 S 为该 结点关 联的 子空 间 , Rt 为 与 S 关联 的 R* 树。由于 S 可以根据 Quadtree 结点 的层次 及结 点在该 层 的顺序确定 , 因此实现时可以不需显式存储 ; 为了减少查询过 程中提取 R* 树根结 点的 次数 , 可 以在 Q uadtr ee 结点 中增 加 一项 M BR, 存储其对 应的 R* 树的索引空间 ( 如果查询目标不 在 M BR 之内 , 则不需 要提取 对应 R* 树 结点 , 因 此可 以减 少 磁盘页的访问次数 ) 。 3. 2 QR* 树的操作 3. 2. 1 插入 插入一个数据矩形 , 必须 首先确 定其属 于的最 小子空 间 及其关联结点 , 然后再将其插 入到对 应的 R* 树 中。例如 : 在 图 1 中 , 插入数据矩形 r7, 首先求 出最小约束 子空间 为 S 2, 然 后将其插入到 R t 2 中 ; 插入数据矩形 r2, 首先求出最小约 束子 空间为 S 0 , 然后将其插入到 R t 0 中。 插入算法 Inser t( N , P) ( N 为 Q R* 树的 根结点 , P 为待 插 入数据矩形的最小约束 矩形) 的形式可形式化描述如下 : ( 1) 如果 N 是叶 结点 , 则 调用 R* 树的 插入 算法 将其 插 入; ( 2) 若 N 是非叶结点 , 则在 N 的所有孩 子结点对应 的子 空间中查找到完全包含 P 的子 空间 P 1, 然后 转 ( 1) 在 N 的子 树中进行插入 ; 如果 找不 到完 全包 含 P 的子 空间 , 则 在根 结 点中插入 P。
2
相关工作
空间索引结构的种类很 多 , 但 大多数 空间索 引结构 可以
收稿日期 : 2003- 03- 03
作者简介 : 邱建华 ( 1976- ) , 男, 硕士研究生 , 主要研究方向 : 科学计算可视化、 空间数据库索引技术 .
第 8期
邱建华等: 一种基于四叉树和 R
*wk.baidu.com
树的索引结构
QR
*
树