收藏 分享(赏)

第九章.索引文件.ppt

上传人:无敌 文档编号:968362 上传时间:2018-05-09 格式:PPT 页数:48 大小:1.84MB
下载 相关 举报
第九章.索引文件.ppt_第1页
第1页 / 共48页
第九章.索引文件.ppt_第2页
第2页 / 共48页
第九章.索引文件.ppt_第3页
第3页 / 共48页
第九章.索引文件.ppt_第4页
第4页 / 共48页
第九章.索引文件.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

1、第九章 文件及查找,硬盘,1s = 1000ms 1ms = 1000us 1us = 1000ns,Memory Hierarchy,典型容量,典型访问时间,内存,二级Cache,一级Cache,寄存器,几百GB-几TB,3-15ms,几百MB-几GB,100-150ns,几百KB-几MB,40-60ns,几十-几百KB,几十-几百B,5-10ns,1ns,1.索引,记录关键字值与记录的存储位置之间的对应关系。,2.索引文件,由基本数据与索引表两部分组成的数据文件称为 索引文件。,3.索引表的特点,(1) 索引表是由系统自动产生的;,(2) 索引表中表项按关键字值有序排列。,文件的基本数据中

2、的每一个记录在索引表中 都占有一项。,将文件的基本数据中记录分成若干块(块与块之 间记录按关键字值有序, 块内记录是否按关键 字值有序无所谓),索引表中为每一块建立一项。,在非稠密索引(分块)文件中查找一个记录存在与否的过程是: 先查找索引表(确定被查找记录所在块),然后在相应块中查找被查记录存在与否。,一个m阶的B-树为满足下列条件的m叉树:,(1) 每个分支结点最多有m 棵子树;,(2) 除根结点外,每个分支结点最少有m/2棵子树;,(3) 根结点最少有两棵子树(除非根为叶结点,此时B- 树只有一个结点);,(4) 所有“叶结点”都在同一层上,叶结点不包含任何 关键字信息(可以把叶结点视为

3、实际上不存在的 外部结点,指向这些“叶结点”的指针为空);,p,例如,查找关键字值k=47,查找成功 !,例如,查找关键字值k=23,查找失败 !,=Maxkey,keytype MBSEARCH(Btree T,keytype k) int i,n; BTree p=T; while(p!=NULL) n=p-keynum; p-keyn+1=Maxkey; i=1; while(kp-keyi) i+; if(p-keyi=k) return p-keyi; else p=p-ptri-1; return -1;,查找成功!,沿着新的指针p2继续查找!,Maxkey,若将k插入到某结点后使

4、得该结点中关键字值数目超过m-1时,则要以该结点位置居中的那个关键字值为界将该结点一分为二,产生一个新结点,并把位置居中的那个关键字值插入到双亲结点中;如双亲结点也出现上述情况,则需要再次进行分裂.最坏情况下,需要一直分裂到根结点,以致于使得B-树的深度加1。,1. 4阶B-树的每个分支结点中关键字个数不能超过3;,2. 生成B-树从空树开始,逐个插入关键字而得到的;,3. 每次在最下面一层的某个分支结点中添加一个关 键字;若添加后该分支结点中关键字个数不超过3, 则本次插入成功,否则,进行结点分裂。,一个m阶的B+树为满足下列条件的m叉树:,(4) 具有n 棵子树的结点中一定有n 个关键字;

5、,(6) 所有分支结点可以看成是索引的索引,结点中仅 包含它的各个孩子结点中最大(或最小)关键字值 和指向孩子结点的指针。,1.B-树的每个分支结点中含有该结点中关键字值的个数,B+树没有;,2. B-树的每个分支结点中含有指向关键字值对应记录的指针,3. B-树只有一个指向根结点的入口,而B+树的叶结点被链接成为一 个不等长的链表, 因此,B+树有两个入口,一个指向根结点,另 一个指向最左边的叶结点(即最小关键字所在的叶结点)。,B-树与B+树的区别,(从结构上看),而B+ 树只有叶结点有指向关键字值对应记录的指针;,、索引文件查找法,以及在B-树B+树中进行的查找方法。,地址范围: 1.3

6、0,散列函数: H(k)=k99000,张 云 ,王 民 ,李 军 ,汪 敏 ,刘小春 ,散列函数: H(k) = “ 将组成关键字k的 串转换为一个130 之间的代码 ”,H(张云)=2,张 云 ,H(王民)=4,王 民 ,H(李军)=1,李 军 ,H(汪敏)=4,汪 敏 ,地址范围:1.30,1. 直接定址法,2. 数字分析法,3. 平方取中法,4. 叠加法,5. 基数转换法,6. 除留余数法,其中,若m为地址范围大小(或称表长), 则p可为小于等于m的素数。,所谓开放地址法是在散列表中的“空”地址向处理冲突开放。即当散列表未满时,处理冲突需要的“下一个”地址在该散列表中解决。,(1) d

7、i=1, 2, 3, , m1 称为线性探测再散列,(3) di=伪随机数序列 称为伪随机再散列,(2) di=12, -12, 22, -22, , 称为二次探测再散列,线性再散列,18,二次再散列,18,(查找),查找, 散列地址不同的元素争夺同一个后 继散列地址的现象。,1. 散列函数选择得不合适;,2. 负载因子过大。,负载因子,Di = Hi(k) i=1, 2, 3, ,其中,Di为散列地址,Hi(k)为不同的散列函数。,一、文件的基本概念,二、顺序文件及其查找,1.基本名称术语,2.文件的逻辑结构与物理结构,3.文件的基本操作,(查找、排序),1.顺序文件的基本概念,2.连续顺序文件的查找,(判定树),3.链接顺序文件的查找,三、索引文件及其查找,1.索引文件的基本概念,2.索引文件的查找,稠密索引文件与非稠密索引文件的查找,四、B-树与B+树,1.B-树的结构,2.B-树的查找,3.B-树的插入,(结点的分解原则),4.B+树的结构,5.B-树与B+树的异同,五、散列(Hash)文件及其查找,1.散列文件的基本概念,2.散列冲突的处理方法,一个结论,Q&A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报