数据结构学习12_第1页
数据结构学习12_第2页
数据结构学习12_第3页
数据结构学习12_第4页
数据结构学习12_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二章学习目标熟悉各类文件的特点,构造方法以及如何实现检索,插入和删除等操作。重点和难点重点:了解各种文件的结构特点及其适用场合。知识点顺序文件、索引文件、索引顺序文件、VSAM文件、散列文件、多关键字文件2/5/2023112.1有关文件的基本概念文件(File)是由大量性质相同的记录组成的集合,一般放在外存上。记录是数据项的集合,是可存取的数据的基本单位。数据项由一个或多个位或字节组成,是不可分割的数据最小单位。定长记录文件文件中每个记录含有的信息长度相等。不定长文件文件中含有信息长度不等的不定长记录。2/5/20232单关键字文件文件中的记录只有一个唯一标识记录的主关键字。多关键字文件文件中的记录除了含有一个主关键字外,还含有若干个次关键字。记录的属性记录中所有非关键字的数据项。记录的逻辑结构记录在用户或应用程序员面前呈现的方式,是用户对数据的表示和存取方式。记录的物理结构数据在物理存储器上存储的方式,是数据的物理表示和组织。2/5/20233物理记录计算机用一条I/0命令进行读写的基本数据单位(物理块)。物理记录和逻辑记录之间可能存在下列三种关系:一个物理记录存放一个逻辑记录;一个物理记录包含多个逻辑记录;多个物理记录表示一个逻辑记录。文件的检索方式顺序存取:存取下一个逻辑记录。直接存取;存取第i个逻辑记录。按关键字存取:简单查询、区域查询、函数查询、布尔查询2/5/20234文件的修改记录的插入、删除、修改。文件的物理结构文件在外存上的组织方式。顺序组织随机组织链组织2/5/2023512.2顺序文件顺序文件定义

记录按其在文件中的逻辑顺序依次进入存储介质而建立的,即物理记录和逻辑记录的顺序是一致的。分类连续(顺序)文件次序相继的两个物理记录在存储介质上的存储位置是相邻的。串联(顺序)文件物理记录之间的次序由指针相链表示。2/5/20236特点存取第i个记录,必须先搜索在它之前的i-1个记录。新的记录只能加在文件末尾。更新记录,必须将整个文件复制。优点连续存取的速度快,主要用于只进行顺序存取、批量修改的情况。存取设备磁带适合于文件的数据量大、平时记录变化少、只作批量修改的情况。磁盘2/5/2023712.3索引文件引入原因对于按关键字存取得记录结构,顺序查找和折半查找的速度很慢。为了避免大量与外存打交道,可以保存一个索引表来指示关键字与记录地址之间的对应关系。索引文件包括数据区和索引表两部分。为按建立时,系统自动开辟索引区。按记录进入的顺序登记索引项。索引项指出该记录的物理地址。最后,索引表按关键字排序。只能存储在磁盘存储设备上。2/5/202382/5/20239索引文件的检索将索引表读入内存(若一个物理块可容纳一个索引表,则仅一次读入,否则需要多次读入);查找索引表,确定记录的物理地址(索引表有序,可折半查找);根据物理地址,一次读取记录。索引文件的修改删除仅删去相应的索引项。插入记录进入数据区末尾,索引项插入索引表中(或重新排序)。更新删除与插入的结合。2/5/202310多级索引记录数目很大,导致一个物理块容纳不了索引表。此时,查找索引表需要多次访问内存。对索引表再建立一个索引。最高可以有四级索引,此时检索需要访问外存5次。2/5/20231112.4ISAM文件和VSAM文件ISAM文件(索引顺序存取法)是一种专为磁盘存取而设计的文件组织方式。由于磁盘是以盘组、柱面和磁道三级地址存取的设备,则可对磁盘上的数据文件建立盘组、柱面和磁道三级索引。文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放在相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放。用这种方法建立起来的索引文件称为ISAM文件。包括:索引区、数据基本区、数据溢出区。2/5/202312数据区索引区溢出区2/5/202313ISAM文件的检索查主索引(驻内存),将相应柱面索引(在其柱面上)调用内存。查柱面索引,将磁道索引(一般放在第0道上)调入内存;查磁道索引,将本磁道上的所有记录送入内存;顺序对这一组记录查找。ISAM文件的插入定位应插入的磁道;按关键字顺序插入新纪录,将同一磁道上最后一个记录移至溢出区;同时修改磁道索引项。2/5/202314ISAM文件的删除找到待删除的记录,在其存储位置上作删除标记即可,而不需要移动记录或改变指针。ISAM文件的整理经过多次的增删后,文件的结构可能变得很不合理。此时,大量得记录进入溢出区,而基本区中又浪费很多空间。因此,通常需要周期地整理ISAM文件。把记录读入内存,重新排列,复制成一个新的ISAM文件,填满基本区而空出溢出区。2/5/20231512.4.2VSAM文件VSAM(虚拟存储存取方法)利用了操作系统的虚拟存储器的功能,给用户提供方便。对用户来说,存储记录时不需要考虑记录的具体存储位置,也不需要考虑何时执行对外存的读写命令。VSAM文件结构三部分组成:索引集、顺序集和数据集。2/5/202316B+树59971544597297101521374451596372859197索引集顺序集数据集控制区间控制区域2/5/202317VSAM文件的检索在控制区间上存取一个记录时,需从控制区间两端出发,同时向中间扫描。VSAM文件的插入新记录插入到相应的控制区间内,移动其它记录,保持有序;控制区已满时,要进行控制区的分裂,即将一半的记录移入另一个控制区间,并修改顺序集中相应索引。VSAM文件的删除删除记录时,需将同一控制区间中记录关键字较大的记录向前移动,把空间留给以后插入的新记录。控制区间变空时,则需修改顺序集中相应的索引项。2/5/202318VSAM文件缺点占有较多的存储空间,一般只能保持约76%的存储空间利用率。VSAM文件优点动态地分配和释放存储空间,不需要对文件进行重组。能较快地对插入的记录进行查找,查找一个后插入的记录和查找一个原有记录的时间是相同的。2/5/20231912.5直接存取文件(散列文件)散列文件特点由记录的关键码“直接”得到记录在外存(磁盘)上的映象地址。类似哈希表,根据文件中关键码的特点设计一种“哈希函数”和“处理冲突的方法”,然后将记录散列到外存储设备上,故称“散列文件”。桶散列文件的存储单位,以磁道或块为单位,由若干个记录组成。基桶一个桶能存放m个记录,表示这m个有相同哈希函数值的记录具有同一个桶地址,该桶称为“基桶”。溢出桶当发生“溢出”时,需要将第m+1个同义词存放到另一个桶中。2/5/202320溢出桶可以有多个,它们和基桶大小相同,相互之间用指针相链接。当在基桶中没有找到待查记录时,就顺指针所指到溢出桶中进行查找。因此,希望同一散列地址的溢出桶和基桶在磁盘上的物理位置不要相距太远,最好在同一柱面上。2/5/20232112.6多关键字文件主关键字文件的特点在对文件进行检索操作时,不仅对主关键字进行简单询问,还经常需要对次关键字进行其他类型的询问检索。因此,对多关键字文件,尚需建立一系列的次关键字索引。次关键字索引与主关键字索引所不同每个索引项应包含次关键字、具有同一次关键字的多个记录的主关键字或或物理记录号。多重表文件和倒排文件是两种多关键字文件的组织方法。2/5/20232212.6.1多重表文件多重表文件(Multilistfile)的特点记录按主关键字的顺序构成一个串联文件,建立主关键字的索引(称为主索引);对每个次关键字项建立次关键字索引(称为次索引),所有具有同一次关键字的记录构成一个链表。主索引为非稠密索引(一组记录建立一个索引项),次索引为稠密索引(每个记录建立一个索引项)。每个索引包括次关键字、头指针和链表长度。在多重表中插入一个新记录是很容易的,只要修改指针,将记录插在链表的头指针之后。但是,要删去一个记录却很繁琐,需要在每个次关键字的链表中删去该记录。2/5/2023232/5/20232412.6.2倒排文件倒排文件(Invertedfile)和多重表文件的区别次关键字索引的结构不同。倒排表倒排文件中的次关键字索引。在倒排表的索引项中没有头指针和链表长度项,而直接用一项存放具有同一关键字的所有记录的物理记录号或主关键字。2/5/2023252/5/202326本章小结顺序文件文件中记录的物理顺序和逻辑顺序一致。对顺序存储器上的顺序文件只能进行顺序存取;对直接存储器上的顺序文件还可按记录号或关键码进行随机存取;如果是定长记录的顺序有序文件,还可利用折半查找进行快速存取。插入记录可以插入在文件的末尾或先存入附加文件。删除记录仅在原地作标志。更新记录需对整个文件进行复制。更多情况下对顺序文件的操作是按批处理方式进行的。2/5/202327索引文件对文件中的每个记录都建立一个由记录的关键码和存储地址构成的索引项。所有记录的索引项构成一个按关键码有序的索引表。索引表可以是顺序结构,也可以是查找树结构,对索引文件可以进行直接存取或按关键码存取。按关键码存取时,首先在索引中进行查找,然后按索引项中指示的存储地址进行存取。插入记录时,记录本身可插入在主文件的末尾,同时将相应的索引项插入索引中恰当位置。删除记录仅需删除相应的索引项。更新记录时,可将更新后的记录插入在主文件的末尾,同时修改相应的索引项。2/5/202328索引顺序文件记录按关键码有序,只需建立非稠密索引。VSAM文件是目前大型索引顺序文件的一种标准组织方式,它由索引集、顺序集和数据集三部分构成,其中数据集为主文件,顺序集和索引集分别为B+树的叶子结点和非叶结点,构成文件的索引。对VSAM文件可进行按关键码存取,也可以进行顺序存取,插入或删除记录时则必须保持控制区间内的记录按关键码有序,需在控制区间内进行记录的移动。优点:动态地分配和释放存储空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论