第5章 数据库索引技术.ppt
《第5章 数据库索引技术.ppt》由会员分享,可在线阅读,更多相关《第5章 数据库索引技术.ppt(80页珍藏版)》请在麦多课文档分享上搜索。
1、第2部分 关系数据库系统实现第5章 数据库索引技术,高级数据库系统及其应用,2018年10月11日,2,第5章 数据库索引技术,几种文件组织方式的特性对比分析,5.1,索引技术基础,5.2,B+树索引,5.3,散列索引,5.4,位图索引,5.5,多维空间索引,5.6,2018年10月11日,3,5.1 几种文件组织方式的特性对比分析,5.1.1 文件的记录组织方式,5.1.2 各种文件组织方式的特性分析,2018年10月11日,4,5.1.1 文件的记录组织方式,堆文件(heap file) 排序文件(sorted file) 散列文件(hashed file) 以记录的某个属性值为参数,通过
2、特定散列函数求得有限范围内的一个值作为记录的存储地址(即页地址或桶号)。 用于计算散列的属性也称为散列键,它与搜索键具有类似的概念。,2018年10月11日,5,5.1.2 各种文件组织方式的特性分析,假设文件有B个数据页,每页有R个记录;平均读写1个页的时间为D,(CPU)处理一个记录的时间为C。对于散列文件组织,散列函数映射的时间为H。 分析时采用如下简单代价模型: I/O操作代价具有主导性。 DB缓冲区大小对DB操作有重要影响。为了行较全面的性能评价,分析时我们选择几种具有代表性的典型DB操作:,扫描(Scan) 等值搜索(Equality Search) 取文件中满足等值选择条件的所有
3、记录 包含满足条件记录的所有页须从磁盘读到主存。 范围搜索(Ranging Search) 插入(insert) 必须先定位新记录应插入的页,并将该页读入主存,在主存页中完成插入修改,然后,再将该页写回磁盘。 删除(delete) 如采用等值或范围条件选择删除记录,则操作过程与插入/范围搜索操作类似; 如直接给定删除记录rid,则可直接定位到记录所在页。,2018年10月11日,6,5.1.2.1 堆文件的操作特性分析,扫描 操作代价为B(D+RC) 等值搜索 假设:满足条件的记录只有一个, 平均需检查一半的页 操作代价取0.5DB 范围搜索必检查所有的页,操作代价B(D+RC) 插入 取文件
4、的最后页到主存,插入后,再写回磁盘 操作代价为2D+C 删除 不考虑记录被删除后的空间合并 操作代价为:搜索时间C+D 若已知rid,可直接定位到目标页,可省去搜索时间,2018年10月11日,7,5.1.2.2 排序文件的操作特性分析,扫描 操作代价为B(D+RC) 等值搜索 假设:满足条件的记录只有一个 可用二分法搜索,操作代价取D*log 2BC log 2R 若满足条件记录有多个,则该代价还应加上读取包含所有这些记录的若干个连续页。 范围搜索等值搜索代价matches 插入 插入后,需进行排序调整,假设需调整约一半的记录 插入操作的代价=等值搜索代价2*0.5B(D+RC)。 删除 如
5、果等值或范围删除条件,则代价与插入操作相同 若已知rid,可直接定位到目标页,可省去搜索时间,2018年10月11日,8,5.1.2.3 散列文件的操作特性分析,扫描 页空间通常只保持约80%的占用率,扫描的实际操作代价取1.25B(D+RC) 等值搜索 能非常有效支持等值选择 假设满足条件的记录只有一条且相应桶中没有溢出页,则等值搜索操作代价仅为H+D+0.5RC 范围搜索 需要扫描所有的页,操作代价1.25B(D+RC) 插入插入操作代价=等值搜索代价D+C 。 删除 对等值或范围选择删除,代价=搜索代价D+C 如果直接给定rid,则可省去搜索时间,代价= D+C,2018年10月11日,
6、9,各种文件组织方式的特性对比,2018年10月11日,10,5.2 索引技术基础,5.2.1 索引技术综述,5.2.2 顺序索引及其特性,5.2.3 创建索引语句,2018年10月11日,11,5.2.1 索引技术综述,索引 是一种能帮助我们有效找出满足指定条件记录rid的辅助数据结构,是一种特殊类型的记录文件。 索引记录 常被称为索引项(index entry) ,简记为k* 除了索引项按索引键值顺序组织的顺序索引外,也有按树结构(如B+树)和桶结构(散列)进行组织的索引。 RDBMS中,索引项可能具有的三种形式 (1)索引项k*是数据记录本身,无单独的索引文件。 这时数据文件可视为一种特
7、殊的数据文件组织,即散列文件 。 (2) ,有独立的索引文件。 (3),有独立的索引文件,且每个索引项中允许包含多个rid。,2018年10月11日,12,5.2.1 顺序索引及其特性,聚集与非聚集索引 聚集索引(clustered index):指索引项的排序方式和数据文件记录排序方式一致的索引 稠密索引与稀疏索引 稠密索引:每个索引键值都对应有一索引项 稀疏索引:只为某些搜索键值建立索引项 多级索引 为处理索引项过多带来的索引性能下降问题,可以将索引文本本身当作一般顺序数据文件,在其上再建一个索引,即二级索引。 如果建立三级或更多级的索引,通常不如直接使用B树方便。 主索引与辅助索引 仅当
8、搜索键恰好是主码的索引时,索引称为主索引;,2018年10月11日,13,稠密索引与稀疏索引应用示例,2018年10月11日,14,多级索引应用示例,2018年10月11日,15,一种带有间接桶层的辅助索引结构,2018年10月11日,16,5.3 B+树,5.3.1 B+树概述,5.3.2 B+树操作,5.3.3 B+树的效率与实用化,2018年10月11日,17,5.3.1 B+树特点及约束(1),B+树的基本特点 是传统B树的一种增强结构。采用一种平衡树来组织索引项。内节点用于搜索导向,叶节点用来存储数据项。 是一种动态的索引结构,其树大小会因数据项的多少而动态地增长或收缩。 每个树节点
9、用一个页来存储。 树操作(插入/删除)能保持树平衡。从根节点到任一个叶节点路径都是等长的。 B+树的阶数(通常以字母m表示) 指B+树中节点允许容纳的最大索引键值个数。,2018年10月11日,18,5.3.1 B+树特点及约束(2),根节点/内节点格式化 除了根节点外,所有树节点都必须保持50%的占用率(即半满)。 一个含有j个索引键值的节点,必含有j+1个指针 节点内容格式“p0, K1, p1, , Kj, pj” ,其中,指针pi指向一个键值k落在Kin (简记为k*)的数据记录指针。 每个叶子节点与前后的叶子节点用双链连接在一起。,2018年10月11日,19,5.3.2.1 B+树
10、搜索算法(算法5.1),/主函数 func find (search-key-value K) returns nodePointer/给定搜索键值K,找所在的叶节点return tree-search (root, K); endfunc,2018年10月11日,20,B+树搜索算法(算法5.1),2018年10月11日,21,一个阶数m=4的B+树及其搜索示例,2018年10月11日,22,5.3.2.2 B+树插入算法(算法5.2),2018年10月11日,23,B+树插入算法(到达叶节点后的处理逻辑),2018年10月11日,24,B+树插入算法(非叶节点中分裂子节点处理逻辑),201
11、8年10月11日,25,插入算法应用示例演示,2018年10月11日,26,5.3.2.3 B+树删除算法(算法5.3),2018年10月11日,27,B+树删除算法(到达叶节点后的处理逻辑),2018年10月11日,28,B+树删除算法(处理有子节点被删除逻辑),2018年10月11日,29,删除算法应用示例演示,2018年10月11日,30,5.3.3 B树的效率与实用化,B+树索引的优势 虽然B+树付出了在内节点存储索引项的开销,但能获得排序文件的所有好处,且还能保持很好的插入、删除性能。 B树没有溢出页; 实用条件下,B树的每个页能容纳搜索键数可能很大,分裂/合并树节点的情况可能很少发
12、生。 按索引键值检索一条记录,典型只需要23次磁盘I/O。,2018年10月11日,31,5.3.3 B树的效率与实用化,B+树索引的优势 B+树重复键问题及其处理 当重复键很多时,可能会出现叶节点无法容纳具有给定键值所有记录项的情况。 常用处理方法 用溢出页来处理重复键值问题。 把重复键按一般非重复键一样处理,这时重复键项将出现在一个或连续的多个页节点中。 将rid值也作为搜索键的一个部分,这实际上相当于消除了重复键。,2018年10月11日,32,5.3.3 B树的效率与实用化,B+树索引的优势 B+树重复键问题及其处理 键值压缩处理(键压缩) 如果搜索键值很长,页中能存储的索引项数就很少
13、,树的宽度 (fan-out)也就小。 最大化fan-out以减小树的深度,对减少树操作磁盘I/O数非常重要。 键值压缩原理 只保留键的前缀。 为确保能保持一个索引项中键值的比较语义,在压缩一个项时,除考虑它相邻项键值外,还要考虑左、右子树中的最大键值。,2018年10月11日,33,5.3.3.3 批量加载数据集到B+树,数据项加入到B+树索引可能会遇到两种情形: 拟加入的数据记录集之前已建有B+树索引。这时,可利用标准的B+树插入算法,将数据项逐个加入数据集,同时更新相应的B+树索引。 拟加入的数据集上还没有B+树索引。 对于后者,为减少操作代价,常采用批量加载方法 实现批量加载数据集到B
14、+树的算法步 参见书本,P159,2018年10月11日,34,图5.6 批量加载B+树过程演示,2018年10月11日,35,批量加载数据集到B+树的代价分析,这个操作算法可归纳为三大步骤: 第一步,从一个记录集创建要插入到索引的数据项; 该步包括扫描关系记录集,并生成和写出相应的数据项。 其代价为(R+E)次I/Os R是记录集数据文件的总页数,E是包含数据项的总页数。 第二步,排序数据项; 外部排序含数据项的有E个页,保守估计需要3E次I/Os(参见6.1部分)。 第三步,从排序好的数据项中建立B+树索引。 该步的代价只是写出所有索引页的代价。 总代价为:R+4E+(B树索引节点数),2
15、018年10月11日,36,5.4 散列索引,5.4.1 静态散列存储表,5.4.2 可扩展的动态散列,5.4.3 线性散列表,2018年10月11日,37,散列存储技术概要,散列与散列函数 散列函数选择要求:随机分布好、易计算; 散列函数参数:查找键或散列键; 函数值:散列值 基于散列的存储结构 通常是每个散列值对应一个存储目标对象的桶(页/块) 散列值对应桶编号(如果散列值范围是0B-1,则桶总数为B)。 根据被散列对象键值,计算散列值,然后保存到相应的桶中; 当桶内对象不止一个时,按链连接起来,构成对象链。 存储到桶的对象,既可能是实际数据项或数据记录,也可以是数据记录指针;,2018年
16、10月11日,38,也称为辅存散列表; 桶数目固定,不随对象插入和删除变化; 桶中直接存放数据记录;插入新项时,如果空间不够(桶溢出) 属于同一个桶的多个页构成溢出页链; 桶内对象被删除,桶溢出页变为空时,也应将空溢出页删除。 辅存散列的效率 理想情况只需一次I/O; 非理想情况可能需要多次I/O(因存在对象链、溢出块链等情况)。,5.4.1 静态散列存储表,2018年10月11日,39,5.4.2 可扩展的动态散列(1),静态散列一般通过增加溢出页来处理溢出问题。 如不希望增加溢出页,也可修改散列函数,将桶的数目扩大(如扩大一倍),然后重组数据文件。 但这种重组的代价可能很大: 需要读入n个
17、页,并写回2n个页。 克服这个问题的一个方法 引入一个仅存储桶指针的目录数组,用翻倍目录数组来取代翻倍数据桶数目; 由于每个目录项只含有一个桶指针,目录所需存储页一般很少,这样翻倍的代价就很小。 每次只分裂有溢出的桶。,2018年10月11日,40,5.4.2 可扩展的动态散列(2),引入一散列函数h,将索引键值映射为二进制数,并解释最后的d个比特位。 d值是目录项的编码位数 目录项总数为2d个;d值加1目录项数将增加一倍。 d值也称全局位深度(the global bit-depth) 。 每个桶有一个局部位深度(the local bit-depth)。 在局部位深度为 的桶中,所存储数据
18、项对应散列值的后位取值都相同。 一般情况下,会有2d-个目录项指向这个桶;当=d时,只有一个目录项指向这个桶。最初,所有桶都有=d 。,2018年10月11日,41,当向一个已满的、局部位深度为的桶插入数据项时,就要分裂这个桶。 该桶及分裂产生的映像桶:+1; 如果+1d,则还需要增加目录的编码位数,即要对目录进行翻倍处理。 翻倍目录时,只需将原有的每个目录项分别复制产生1个对应的新目录项。 一个目录项和由它复制产生的新目录项,互称为“对应元素” “对应元素”开始时指向同一个桶,只是当桶分裂后,才分别指向原桶和原桶分裂映像。 可扩展散列存在的主要问题 当散列值分布不均匀或偏斜很大时,会导致目录
19、项数特别大和数据桶的空间利用率很低。 每次目录调整都是翻倍调整,目录大小扩展过快,调整不平滑。,5.4.2 可扩展的动态散列(3),2018年10月11日,42,5.4.2 可扩展的动态散列(4),2018年10月11日,43,5.4.2 可扩展的动态散列(5),2018年10月11日,44,5.4.3 动态线性散列(1),动态线性散列技术概要 也是一种动态散列存储技术,能随数据项的插入和删除,适时地对存储数据的桶数进行调整。 与可扩展散列相比,线性散列不需要存放数据桶指针的专门目录项,且能更自然处理数据桶已满的情况 但如果数据项键值散列后分布不均匀的偏斜度大,导致的问题可能会比扩展散列还严重
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 索引 技术 PPT
