数据结构与算法:第8章 文件.ppt

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

主索引柱面索引磁道索引基本数据区ISAM文件结构示意图图12.5 ISAM文件结构示例R164磁道索引50磁道索引柱面C1柱面索引主索引R14R21R45R47R50164164164330溢出区溢出区溢出区柱面C2柱面C3R189R215R33011004150415041508103303843215磁道索引磁道索引R3843R4150关键字指针关键字指针基本索引项溢出索引项图为存放一个磁盘组上的ISAM文件。每个柱面建立一个磁道索引,每个磁道索引项由基本索引项和溢出索引项两部分组成。柱面索引存放在某个柱面上,若柱面索引较大,占多个磁道时,则可建立柱面索引的索引——主索引。(2)ISAM文件的检索在ISAM文件上检索记录的过程:先从主索引出发找到相应的柱面索引,再从柱面索引找到记录所在柱面的磁道索引,最后从磁道索引找到记录所在磁道的第一个记录的位置,由此出发在该磁道上进行顺序查找直至找到为止;反之,若找遍该磁道而不存在此记录,则表明该文件中无此记录。(3)溢出区和插入操作溢出区是为插入记录所设置的。每个柱面的基本区是顺序存储结构,而溢出区是链表结构。同一磁道溢出的记录由指针相链。溢出区的设置方法:①集中存放:整个文件设一个大的单一的溢出区。②分散存放:每个柱面设一个溢出区。③集中与分散相结合:溢出时记录先移至每个柱面各自的溢出区,待满之后再使用公共溢出区。(a)插入前R50 R60 R70R80 R90R100 R120 R130R136 R145 T2T3T4溢出区基本区90T2’1145T3’1基本索引项溢出索引项基本索引项溢出索引项道索引其中:为插入前的某一柱面上的状态;为插入R65时,将第2道中关键字大于65的记录顺次后移,且使R90溢出至溢出区的情况;为插入R65之后的状态,此时2道的基本索引项的关键字改为80,且溢出索引项的关键字改为90,其指针指向第4道第一个记录即R90。是相继插入R95和R83后的状态,R95插入在第3道的第一个记录的位置而使R145溢出。而由于808390则R83被直接插入道溢出区,作为第2道在溢出区的第一个记录,并将它的指针指向R90的位置,同时修改第2道索引的溢出索引项的指针指向R83。(4)删除操作ISAM文件中删除记录,只需找到待删除的记录,在其存储位置上做删除标记即可,而不需要移动记录或改变指针。但在经过多次的增删后,文件的结构可能变得很不合理。此时,大量的记录进入溢出区,而基本区中又浪费很大空间。由此,通常需要周期地整理ISAM文件。把记录读入内存,重新排列,复制成一个新的ISAM文件,填满基本区而空出溢出区。(5)柱面索引的位置假设文件占有n个柱面,柱面索引在第x柱面上,则磁头移动距离的平均值为: 令,得到。这就是说,柱面索引应放在数据文件的中间位置的柱面上。8.2.4VSAM文件控制区域(ControlRange):顺序集中一个结点连同对应所有控制区间形成的一个整体。(1)定义虚拟存储存取方法VSAM(VirtualStorageAccessMethed):该方法利用了操作系统的虚拟存储器的功能,给用户提供方便。对用户来说,文件只有控制区间和控制区域等逻辑存储单位,与外存储器中柱面、磁道等具体存储单位没有必然的联系。控制区间(ControlInterval):它是一个I/O操作的基本单位,由一组连续的存储单元组成。同一文件上控制区间的大小相同。每个控制区间可视为一个逻辑磁道,而每个控制区域可视为一个逻辑柱面。在VSAM文件中,记录可以是不定长的,则在控制区间中除了存放记录本身以外,还有每个记录的控制信息和整个区间的控制信息,控制区间的结构如图所示。在控制区间上存取一个记录时需从控制区间的两端出发同时向中间扫描。记 记 未利用记录n记录1控制空录录 的的

文档评论(0)

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

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

1亿VIP精品文档

相关文档