索引与哈希-1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
索引的基本思想: 一个实际的例子
数据库专题讲义
1.4 其他索引技术 – 多维索引R-tree
索引的基本思想: 一个实际的例子
AFra Baidu bibliotek
B
D
E
F
C
H
D
G
数据库专题讲义
1.4 其他索引技术 – 多维索引R-tree
索引的基本思想: 查询处理– 考虑范围查询 Q.MBR
• 考察Q与根节点G,H的MBR是否相交
数据库专题讲义
可扩展哈希
10:0000 0000 0000 1010
15:0000 0000 0000 1111 7: 0000 0000 0000 0111 19:0000 0000 0001 0011
数据库专题讲义
练习
假设我们使用可扩展哈希方法来索引一个数据文 件,该数据文件包含下列查找关键字值:2, 3, 5, 7, 11, 19, 23, 29, 31。若采用的哈希函数为h(x) = x mod 8,且每个桶能包含3个记录,试画出其可扩 展哈希结构。
假定一个节点可以存放2个入口项
数据库专题讲义
插入23*,48*,41*,42*
数据库专题讲义
删除42*,51*,97*
数据库专题讲义
ISAM树
查找 cost = logFN, F=索引页中入口项数, N=叶子页 面数 插入:找到适当的叶子数据入口进行插入 删除:找到适当的叶子数据入口进行插入 ISAM: 静态树结构 索引的性能随着数据库的动态变化而降低,必
扩充倒排索引的桶 以包含更多信息
数据库专题讲义
1.4 其他索引技术 – 多维索引
多维索引是对一维的树形索引的一种多维扩展,用来索引 各种空间对象,有时也称为空间索引 空间数据库、移动数据库、数据仓库等 与一维索引相比 记录多维对象 基于关键字的记录查找 范围查找、近邻查找
一维查找关键字 多维查找关键字
1.1 索引的基本概念
⑴ 一个索引是用来提高基于查找关键字的查找速
度,查找关键字不同于关键字的概念,一般索
引由<查找关键字值,记录指针>的集合组成
⑵ 索引性能评价指标
访问类型:值查找与范围查找
时间开销:查找时间、插入时间、删除时间 空间开销:索引所占的磁盘空间
数据库专题讲义
(3) 索引分类 -- 主索引与辅助索引
数据库系统专题
Advanced Topics on Database Systems
第一章
索引与哈希
第一章
索引与哈希
1.1 索引的基本概念 1.2 树结构索引 ① ISAM索引 ② B+树索引 1.3 基于哈希的索引 ① 静态哈希 ② 可扩展哈希 ③ 线性哈希
数据库专题讲义
1.4 其他索引技术 ① 倒排索引 ② 多维索引 ③ 高维索引
• 若相交则继续考察其子树,直到叶子节点
• 如果Q与叶子节点中的某个对象的MBR相交, 则该对象是查询结果 G H
A
数据库专题讲义
B
C
D
E
F
数据库专题讲义
哈希函数
一个好的哈希函数应该将数据记录均匀地散列 到哈希桶中使得各个桶中的记录数相同 均匀分布
随机分布
倾斜分布
正太分布 Zipf分布
适用于不同的数据类型
数据库专题讲义
静态哈希
较长的溢出链会导致性能下降 可扩展哈希和线性哈希可解决这一问题
数据库专题讲义
L2 L1
数据库专题讲义
O1 MBR(O1)
对象O1:(L1,L2)
1.4 其他索引技术 – 多维索引R-tree
索引的基本思想: 形成多级索引
B G G H 索引入口项: (L1,L2), 指针 C D E H F
A
A
B
C
D
E
F
数据库专题讲义
1.4 其他索引技术 – 多维索引R-tree
若失败则合并这2个节点
如果合并发生则从L的父节点中删除指向L或 其兄弟节点的入口项 这种合并可能回向上递归发生
数据库专题讲义
删除19*和20*后的B+树
数据库专题讲义
删除24*后
数据库专题讲义
练习
插入值37, 下列B+树将如何变化?
数据库专题讲义
练习
删除14和16之后下面的B+输将如何变化?
化而变大和减小 -- i称为全局深度(global depth)
⑷ 几个连续的表入口可以指向同一哈希桶,这些桶
具有公共的哈希后缀,桶的公共哈希后缀的长度
〈= i。若哈希桶 j的公共哈希后缀的长度为:ij , 则指向该桶的哈希地址表的入口数为: 2(i-ij)
数据库专题讲义
可扩展哈希
数据库专题讲义
插入20后
要时需要重构索引
数据库专题讲义
1.2 树结构索引 -- B+树
B+树示例
数据库专题讲义
B+树 -- 8K页
36字节关键字,4字节指针,索引页中入口项 数=200 平均填充率=0.67,平均fanout=200*0.67=133 索引能力 h=3:1333=2,352,637(个记录) h=4:1334=312,900,700 (个记录) 索引大小 h=1:1页=8K h=2:133页=1M h=3:1332=17,689页=133M
可扩展哈希
⑴ 选择一个哈希函数,该函数的哈希结果为b位的
二进制的数,一般b=32
⑵ 并不为每个哈希值建立一个哈希桶,只有当数据
记录被插入到数据库文件中,才为这些数据记录
建立相应的哈希桶。
数据库专题讲义
可扩展哈希
⑶ 在初始时,使用哈希值的i位而不是整个b位(0
<i
< b)用作桶地址表的偏移,i值随数据库大小的变
主索引:如果数据文件是按某个索引的查找关 键字来排序的话则称该索引是主索引,主索引 的记录排序与数据文件相同
辅助索引:如果数据文件的排序关键字与某个
索引的查找关键字不同的话则称该索引为辅助
索引,辅助索引的记录排序与数据文件不同
顺序文件:一个主索引文件+在查找关键字上排
序的数据文件
数据库专题讲义
(3) 索引分类 -- 聚簇与非聚簇索引
数据库专题讲义
(3) 索引分类 -- 稠密索引和稀疏索引
① 稠密索引:在数据文件中对于每个查找关键字
的值都对应一个索引记录或索引入口 ② 稀疏索引:在数据文件中某些(而不是所有) 查找关键字的值在索引文件中存在索引记录
数据库专题讲义
1.2 树结构索引 -- ISAM
可扩展哈希
插入20后
数据库专题讲义
目录增长与缩减
可扩展哈希
4: 0000 0000 0000 0100 12:0000 0000 0000 1100 32:0000 0000 0010 0000 16:0000 0000 0001 0000
数据库专题讲义
可扩展哈希
1: 0000 0000 0000 0001 5: 0000 0000 0000 0101 21:0000 0000 0001 0101 13:0000 0000 0000 1101
网页、Word、PDF、PS、PPT等文档
与面向记录的索引相比 记录文档 记录查找 文档检索 查找键 文档中的词
基本思想
为每个检索词建立索引桶 桶的指针指向检索词所出现的文档
数据库专题讲义
1.4 其他索引技术 -- 倒排索引
数据库专题讲义
1.4 其他索引技术 -- 倒排索引
数据库专题讲义
1.3 基于哈希的索引
树结构索引能够支持等查找和范围查找 基于哈希的索引仅能支持等查找 哈希桶:是哈希索引组织中的存储单位,可包 含一个或多个索引记录,典型地一个桶可以是 一个磁盘块 从逻辑上看,对于给定的一个查找关键字k, 通过计算一个哈希函数f(k)即可得到包含该关 键字k的哈希桶的物理地址
向示例B+树中插入8*
最左边的叶子节点分裂 5入口项向上插入到根节点
根节点插入入口项5后引起 根节点的递归分裂
L
数据库专题讲义
L2
插入8*后的B+树
数据库专题讲义
B+树上的删除
找到适当的叶子节点L 删除入口项
如果L中的填充率0.5,删除完毕
否则
重分布L和L的一个兄弟(同父节点)节点入口项
①
②
③ ④
索引顺序存取方法(ISAM) ISAM索引结构如下图所示 索引入口:<查找关键字值, pid> 当索引文件本身变得很大时,可以形成索引文 件的索引,这样就形成一个树形结构
数据库专题讲义
1.2 树结构索引 -- ISAM
ISAM:静态索引
数据库专题讲义
根据记录的数量 关键字的值分布
ISAM树示例
数据库专题讲义
练习
当数据库发生下列变化时,给出每一步的可扩展 哈希索引结构。 (1) Delete 11; (2) Delete 31; (3) Insert 1; (4) Insert 15
数据库专题讲义
1.4 其他索引技术 -- 倒排索引
倒排索引是一种全文索引,用来索引各类文档
典型代表 R-tree、R+-tree、R*-tree、X-tree、SS-tree、SR-tree Grid-file、k-d-tree、Quard-tree等
数据库专题讲义
1.4 其他索引技术 – 多维索引R-tree
索引的基本思想: 使用MBR来表示空间对象
O1
O2
O3
O4
MBR: 使用左下角和右上角来表示
数据库专题讲义
B+树上的操作
查找(略):Cost = logFN 插入 找到适当的叶子节点L 向L插入数据入口项
若L有空闲入口项,则插入 分裂L==>L和L2
• 均匀分配入口项 • 将指向L2的索引入口插入到L的父节点中
可能会引起递归分裂 Cost = logFN
数据库专题讲义