清华大学数据库access课件-第08章:索引和散列.ppt

清华大学数据库access课件-第08章:索引和散列.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 索引和散列;§8.1基本概念;§8.1基本概念;§8.1基本概念;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;SQL SERVER 主索引的问题? 有哪些信誉好的足球投注网站码链表的作用 记录的惟一标识是F#:P#:S# 索引中索引项的指针是?;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.2顺序索引;§8.3B+树索引文件;§8.3B+树索引文件;§8.3B+树索引文件;B+树索引结构 叶结点: 各叶结点按照所含的有哪些信誉好的足球投注网站码值有一个线性顺序,利用指针Pn将叶结点按有哪些信誉好的足球投注网站码顺序链接在一起; 这种排序能高效地对文件进行顺序处理,而B+树索引的其他结构能高效地对文件进行随机处理。;B+树索引结构 非叶结点: B+树索引的非叶结点形成叶结点上的一个多级稀疏索引; 非叶结点的结构和叶结点的结构相同,即含有能够存储n-1个有哪些信誉好的足球投注网站码值和n个指针的存储单元。只不过非叶结点中的所有指针都指向树中的结点; 如果一个非叶结点有m个指针,则?n/2?≤m≤n。若mn,则非叶结点中指针Pm之后的所有空闲空间作为预留空间,与叶结点的区别在于结点的最后一个指针Pm和Pn的位置与指向;;§8.3B+树索引文件;§8.3B+树索引文件;§8.3B+树索引文件;§8.3B+树索引文件;§8.3B+树索引文件;§8.3B+树索引文件;基本概念 在前面介绍的索引类型中,必须访问该索引结构,才能在文件中定位记录。而基于散列(Hash)的文件组织能够避免访问索引结构; 在散列文件组织中,用存储桶来表示能存储一条或多条记录的一个存储单位。通过计算有哪些信誉好的足球投注网站码上的一个函数,就可以确定包含该有哪些信誉好的足球投注网站码值的记录应该存储在哪个桶中; 令K表示所有有哪些信誉好的足球投注网站码值的集合,令B表示所有桶地址的集合,散列函数h就是一个从K到B的函数:h(K)?B或B=h(K)。;散列文件的操作 插入: 为了插入一个有哪些信誉好的足球投注网站码为Ki的记录,通过计算h(Ki)获得存放该记录的桶地址。于是就把这条记录存入桶中或是相应的溢出桶中; 删除: 如果待删除记录的有哪些信誉好的足球投注网站码值是Ki,则计算h(Ki),然后在相应的桶中搜寻此记录并删除它; 基于有哪些信誉好的足球投注网站码值Ki的查找: 首先计算h(Ki),然后在计算出地址的桶中有哪些信誉好的足球投注网站所有的记录。因为不同的有哪些信誉好的足球投注网站码值对应???同的桶地址正是散列文件组织的最大特点。;散列函数 如果散列函数设计的不好,就有可能把所有的有哪些信誉好的足球投注网站码值都映射到同一个存储桶中,这时散列就失去了意义。因此,对散列函数的基本要求是: 分布是均匀的:即每个存储桶从所有可能的有哪些信誉好的足球投注网站码值集合中分配到的值的个数差不多相同,例如将大写英文字母分配到5个存储桶中; 分布是随机的:不管有哪些信誉好的足球投注网站码值的实际情况是怎样的,每个存储桶应分配到的有哪些信誉好的足球投注网站码值的个数也差不多相同。例如,假设实际的有哪些信誉好的足球投注网站码值是A、B、C、D、E五个字母。;散列函数 举例:假设将26个大写英文字母分布到5个存储桶中(地址从0到4),那么散列函数h该如何设计呢? 假设用code(A)表示A所对应的编号0,……; 散列函数h=code(Search Key) mod 5。;问题的提出 散列不仅可以用于数据文件中记录的组织,还可以用于索引中索引项的组织。 散列索引: 将索引项中的有哪些信誉好的足球投注网站码及相应的指针按散列文件的形式进行组织。 散列索引的构造 首先将散列函数作用于索引项中的有哪些信誉好的足球投注网站码以确定对应的存储桶; 然后将此有哪些信誉好的足球投注网站码及相应的指针存入此存储桶中,而指针指向数据文件中的记录。;举例:为关系student上的student_number有哪些信誉好的足球投注网站码建立一个辅助的散列索引。;小结 术语“散列文件”是指用来组织和存储文件中数据记录的散列文件结构。而散列索引是指将文件上的辅助索引的索引项按照散列文件的结构进行组织,不要将二者混淆; 如果数据文件自身是按散列组织的,就认为该散列文件已经有了一个“主索引”,一般不必在其上另外创建独立的索引结构; 散列索引只用来组织数据文件上的辅助索引 数据文件上的主索引结构不应该是散列文件 索引本身的文件结构有哪些?;用索引还是散列? 索引和散列都为访问数据提供了存取路径: 索引需要通过值的比较,才能确定数据的位置; 散列不通过值的比较,而通过值的含义来确定数据的位置的。 用索引还是散列实际当中要考虑以下问题: 索引或散列的周期性重组代价如何? 在文件中插入和删除记录的频率如何? 为了优化平均访问时间而导致最坏情况下的访问时间的做法是否可取? 能够有效支持的查询类型是哪些?;散列支持的查询类型 等值查询,或者叫点查询 范围检索 散列与索引比较举例之一 select A1,A2,…,An from r where Ai=c 顺序索引查找所需要的时间与关系r中Ai值的个数的对数成正比;而在散

文档评论(0)

manyu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档