第讲数据库的存储管理.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第讲数据库的存储管理

索引文件的结构 B+树结构 B+树的组织 根结点与其他非叶结点不同,它包含的指针数可以小于[m/2],但必须至少包含两个指针。这与只有某级索引需要多个磁盘块(大于1)存储时,才需要建上一级索引相一致。 所有被使用的键和指针通常都存放在结点的开头位置,但叶节点的第n个指针例外,该指针要放在最后,用来指向下一个叶结点。 索引文件的结构 B+树结构 B+树的组织 B+树的结点较大,一般占一个磁盘块大小,每个结点中可以有大量的指针,因此B+树一般“胖而矮”,不像二叉树那样“瘦而高”。 一般在存储块能容纳m-1个键值和m个指针的情况下,应把m取得尽可能大。 【例】假定磁盘块大小为4KB,且整数型键值占4个字节,指针占8个字节。若不考虑磁盘块块首部信息所占空间,那么m值最大可取多少? 4(m-1)+8m≤4096的最大整数值,即m=341 索引文件的结构 B+树结构 B+树的查询 在B+树中查找索引键值为K的记录,查询开始结点为T(初始为根节点),则查询过程可如下进行: (1)如果结点T的键值为K1、K2、…、Kn,只有一个子结点可找到具有键值K的叶结点。如果KK1,则为第一个子结点;如果K1≤KK2,则为第二个子结点……如果Kn≤K,则为第n+1个子结点。将这一子结点记为T。 (2)如果结点T是非叶结点,则返回(1)继续查找。 (3)否则在结点T中查找,若存在索引键值Ki=K,则指针Pi可让我们找到所需的记录;如果不存在某个索引键值Ki=K,则表示文件中没有索引键值为K的记录。 索引文件的结构 从根节点开始 检索索引键值为K=12的记录 不存在键值等于12的记录 索引文件的结构 从根节点开始 检索查找键值为K=29的记录 从根节点开始 检索索引键值为10≤K≤25的记录 索引文件的结构 B+树结构 B+树的查询 对于一个层高为n的B+树索引,查询时只需读取B+树中从根结点到叶结点的n个磁盘块,也就只需访问n+1次磁盘块就能找到记录。在数据文件很大时,这个查询速度是很快的。 对于典型的键、指针和块大小来说,一般取3作为B+树的层数,除非数据库极大。 磁盘块大小为4KB,且索引键值占4个字节,指针占8个字节。 存储块能容纳340个键值和341个指针。假若一般的块的充满度介于最大(340)和最小(170)中间,即一般的块有255个指针。这样,一个根结点,有255个子结点,有2552=65025个叶结点;有2553,即约1.66×103万个指向记录的指针。记录数小于等于1.66×103万的文件都可以被3层的B+树容纳。 索引文件的结构 B+树结构 B+树的维护 13 40 7 21 31 43 43 47 2 3 5 7 11 13 17 19 23 29 40 41 31 37 B+树的插入(插入键值40之后) 索引文件的结构 B+树结构 B+树的维护 B+树的删除(删除键值7之后) 13 21 31 43 5 2 3 5 11 13 17 19 23 29 31 37 41 43 47 索引文件的结构 B+树结构 B+树文件组织 B+树叶结点不存储指向数据记录的指针,而是直接存储记录本身。 查询时到达叶结点后,直接可把数据记录找到,索引文件性能得到进一步提高。 索引文件的结构 散列索引 散列方法用在索引文件结构的创建上,把索引键值与指针一起组合成散列文件结构的一种索引称为“散列索引”。 构造方法 为数据文件中每个记录建立一个索引项,每个索引项包含索引键值和指向数据记录的指针; 把这些索引项组织成散列结构,即同一桶内存放的是散列值相同的索引键值所在的索引项。 索引文件的结构 索引文件的结构 散列索引 【例】 “学生-课程”数据库中关系表文件S的一个散列索引,其索引键是SNO,散列函数是学号(数字部分)按3取模,散列在三个桶中。 索引文件的结构 散列索引 索引文件的结构 散列索引 优点 正确设计的散列索引可以使等值查找更为有效 目标索引项的等值查找可以通过只有一次I/O操作的检索实现 。 缺点 散列索引不支持范围和部分键值查找 在某一范围内,查找键值连续的索引项随机地分布在各个桶中。 散列函数必须应用于整个键。 小结 文件存储结构 逻辑文件中的记录在磁盘存储器上如何存放 数据库系统的文件结构形式 堆文件 顺序文件 聚集文件 散列文件 文件存取方法 某种结构的文件怎样去查找、插入和删除记录 索引技术 * * 教材中图2-2所指的图

文档评论(0)

173****7830 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档