第5章 空间索引与优化分解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
33D 35F 41 32 34 40
Peano键
空间对象 B E E E E E A,E E E D D D,F E D E E E E C
空 间 索 引
7 12 13 14 15 24 25 26 27 32 33 35 37 38 39 45 50 51 54
对 象 索 引
空间对象 A
Peano键集 25-25
年龄 19 20 19 18 18 20
系别 计算机 城环系 城环系 中文系 中文系 计算机
• 查询005号学生的信息:
SELECT * FROM student WHERE 学号=‘005’
学号
001
姓名
aaa
性别
男
年龄
19
系别
计算机
002
003
bbb
ccc
男
女
20
19
城环系
城环系
004
005
ddd
空间对象集合
ID 1 2 3 … Xmax … … … … Xmin … … … … Ymax … … … … Ymin … … … …
5
4
1 6
3
2
ymax
y
YN
xmin
x
4
ymin
xmax
XW
检索窗口
XE
YS
空间对象不被检索
Xmax ≤ XW OR Xmin ≥ XE OR Ymax ≤ YS OR Ymin ≥YN 空间对象被检索 Xmax ≥ XW and Xmin≤XE AND Ymax ≥ YS and Ymin≤YN
Biblioteka Baidu
• 第二阶段:
– 几何过滤器的封装边界与第一阶段检索出的要素的边界相比较, 找出具有重叠关系的要素
• 第三阶段
– 几何过滤器的坐标与第二阶段检索出的要素的边界比较,找出边 界在几何过滤器内的要素
– 索引是一种独立的对象,用来快速地寻找那些 具有特定值的记录 – 索引要占用存储空间 – 索引可以减少全表扫描,从而提高检索速度
• 例如:学生信息表student如下:
学号 001 002 003 004 005 006
姓名 aaa bbb ccc ddd eee fff
性别 男 男 女 男 女 女
第五章 空间索引与查询优化
2013.4
第五章 空间索引与查询优化
• 第一节 空间索引
• 第二节 空间查询优化
第一节 空间索引
• 一部工具书好比是一个微型数据库;工具 书的索引,就好比进入它的数据库的钥匙。
• 数据库的索引用来快速访问一条特定查询
所请求的数据,而无需遍历整个数据库。
定义
• 索引:
定义
• 空间索引:
– 空间索引就是指依据空间对象的位置和形状或 空间对象之间的某种空间关系,按一定的顺序 排列的一种数据结构,其中包含空间对象的概 要信息,如对象的标识、外接矩形及指向空间
对象实体的指针。
• 空间索引的基本思想,也是空间查询的基
本思想,即近似体的使用。
• 让索引结构按照一个或多个空间码来管理
D
B
C
A E F
基于实体范围的空间数据检索
对象范围索引
• 这种方法没有创建真正的空间索引文件,而是在 空间对象的数据文件中增加了矩形范围,主要依 靠空间计算进行判别。 • 查询时仍需要对整个数据文件的空间对象进行检 索,只是某些对象可以通过矩形范围予以直接判 别,而有些对象仍需要进行复杂计算才能判别。 • 虽然该方法仍需要花费大量时间来进行空间检索, 但随着计算机的处理速度的加快,这种方法在一 定程度上能够满足查询检索的效率要求
eee
男
女
18
18
中文系
中文系
006
fff
女
20
计算机
学号 位置
001 002 003 004 005 006
学号 姓名 性别 年龄
001 aaa 002 bbb 003 ccc 004 ddd 005 eee 006 fff 男 男 女 男 女 女
系别
19 计算机 20 城环系 19 城环系 18 中文系 18 中文系 20 计算机
–例如:查找经过河南省的所有河流。
• 常规方法:检查所有河流和河南省省
界是否相交。
缺点:用实际空间对象比较,算法复杂,
计算开销大、IO开销大。
• 索引方法:记录河流和省界的外接矩 形。用外接矩形进行比较。
空间属性表描述要素的一般信息, 空间索引表描述要素所在格网的信息, 要素描述表描述要素的点数,范围等信息, 三张表通过FID(Feature ID)关联
的物体的关键字。
21
23
29
31
53
55
20
17 16 5 4 1 0
22
28 A 19 25
18 24
30
27
52
49 48 37 36
61 C 54 60 51 50 39 38 57 56 45 44
63
62
59 58 47 46 43 42
26 E 7B 13 15 6 3 2 12 9 8 14 11 10
等的格网,记录每一个格网所包含的空间 实体 • 用户进行空间查询时,首先计算出用户查 询对象所在格网,然后再在该网格中快速 查询所选空间实体
• 通常是把整个数据库数值空间划分成32×32
(或64×64)的正方形网格,建立另一个倒
排文件——栅格索引。
–每一个网格在栅格索引中有一个索引条目(记
录),在这个记录中登记所有位于或穿过该网格
对象范围索引
• 在进行空间范围查询时,分为两级过滤(筛选):
• 初次过滤根据空间要素外包络矩形来过滤掉大 部分不在查询范围的空间要素; • 第二级过滤则用查询空间范围直接和初次过滤 结果集中空间要素的二进制边界坐标比较,从
而得到查询的准确结果。
2 2 4
5
1 1 3 3 2
1
二、格网索引
• 将研究区域用横竖线条划分大小相等和不
对象,这些空间码是比对象本事更简单的
几何对象。
• 常见的空间索引:
– 对象范围索引
– 格网索引
– 四叉树索引
– R树和R+树索引 – BSP树索引
一、对象范围索引
• 在记录每个空间实体的坐标时,记录包围每 个空间实体的外接矩形的最大最小坐标。 • 在检索空间实体时,根据空间实体的最大最 小范围,预先排除那些没有落入检索窗口内 的空间实体,仅对那些外接矩形落在检索窗 口的空间实体作进一步的判断,真正落入窗 口内的空间实体。
B
C C
7-7
54-55 60-60
D
D D
32-33
35-35 38-38
E
E E
12-15
24-27 37-37
E
E E
39-39
48-51 45-45
检索原理:
• 第一阶段(RDBMS完成):
– 接收SQL语句,获取空间过滤器的封装边界 – 检测空间过滤器的封装边界跨越的网格 – 到空间索引表中检索出封装边界所在网格内的要素