数据存取_哈希索引.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据存取 ————hash索引 郗岳 学号:2011020884 指导老师:陈梅老师 hash索引 hash索引简介 静态hash 可扩展hash 两个经典问题 hash索引简介 Hash:译“散列”,也译“哈希”,一种将任意长度的输入压缩到某一固定长度的输出的方法; Hash函数:将查找键为参数并计算出一个介于0到N-1的整数,其中N是桶的数目; 静态hash的插入与删除 静态哈希 理想情况下查询只需要一次磁盘I/O,且文件的插入和删除操作也只需要两次I/O(读和写)。 静态哈希的桶数固定。如果一个文件缩减太大,会浪费很多空间;如果文件增长很大,将产生较长的溢出链,导致性能下降。 可扩展哈希可解决这一问题 可扩展哈希 Situation:考虑静态哈希文件,现在需要向一个满的桶中插入一个查找键为K的新记录。 解决方案1:增加一个溢出页。 解决方案2:重新组织文件,把桶数加倍,并在新的桶集合中重新分配项。 方案2的缺点:为完成重组,不得不读整个文件,并且不得不写回二倍的页数。 Idea:使用一个指向桶的指针目录,仅仅通过目录加倍和分裂溢出桶来实现桶数的加倍。 可扩展哈希 可扩展hash表简介:它在静态hash结构中主要增加如下: 引入了一个间接层,用一个指向块的指针数组来表示桶,而不是用数据块本身组成的数组来表示桶; 指针数组可以增长,它的长度总是2的倍数; Hash函数h为每个键计算出一个K位二进制序列,该K值足够大,无论何时桶的数目都是使用从序列末尾开始的若干位。 可扩展哈希--实例 目录由4个元素的数值组成。 要定位一个数据项,首先在查找键上应用哈希函数,然后从它的二进制表达中取后两位得到一个0到3之间的数,根据这个数在目录位置上的指针指向期望的桶。 定位哈希值为5(二进制101)的数据项,查找目录元素01,然后沿着指针找到数据页(桶B)。 可扩展哈希--插入 插入 定位桶,如果桶未满,直接插入; 如果桶满,则需要分裂(分配新的页,重分布)。如有必要,需加倍目录。 插入h(r)=20的目录项r之前 Review:可扩展哈希 可扩展hash表简介:它在静态hash结构中主要增加如下: 引入了一个间接层,用一个指向块的指针数组来表示桶,而不是用数据块本身组成的数组来表示桶; 指针数组可以增长,它的长度总是2的倍数; Hash函数h为每个键计算出一个K位二进制序列,该K值足够大,无论何时桶的数目都是使用从序列末尾开始的若干位。 全局深度与局部深度 20的二进制是10100。最后2位指明项属于A或A2,最后3位指明属于哪个桶。 全局深度: 在初始时,使用哈希值的i位而不是整个b位(0 i b)用作桶地址表的偏移,i值随数据库大小的变化而变大和减小—i称为全局深度(global depth)。 局部深度: 用于决定一个项属于哪个桶的位数。 插入h(r)=9的目录项r之后 可扩展hash索引的问题 向未满的桶中插入记录项 向已满的桶中插入记录项----桶的分裂 分裂一个桶是否必须进行目录加倍? 桶分裂不一定加倍 可扩展hash结论 每次目录加倍,全局深度加1;当桶分裂时(不管是否导致目录加倍),分裂桶的局部深度都加1,并把相同的局部深度赋值给它的分裂映像。 初始阶段,局部深度=全局深度。如果插入操作导致局部深度全局深度,目录加倍,并将指针固定到分裂的映像页。 DBMS如何跟踪磁盘上的空间 磁盘空间管理器:提供上层接口、数据单元为页 磁盘IO请求:块地址 磁盘驱动器 最简单的文件组织结构 页的集合如何组织成一个文件 实现:页的链表 层次之间的联系 review hash索引简介 静态hash 可扩展hash 两个经典问题 * * 静态哈希 桶数组:一个序号从0到N-1的数组中包含N个存储块,每一个对应数组中的一个桶; H:哈希函数 溢出链 插入h(r)=20的目录项r …… …… C B A A:文件 B:页 C:记录 数据页 数据页 数据页 数据页 数据页 数据页 首页 含有空闲空间的页链表 满页链表 用链表组织的堆文件

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档