算法与数据结构:第十二章 文件_第1页
算法与数据结构:第十二章 文件_第2页
算法与数据结构:第十二章 文件_第3页
算法与数据结构:第十二章 文件_第4页
算法与数据结构:第十二章 文件_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构-第12章 文件1第十二章 文件12.1 文件的基本概念12.2 顺序文件12.3 索引文件12.4 索引顺序文件(ISAM文件和VSAM文件)12.5 直接存取文件(散列文件)12.6 多关键字文件本章学习重点、习题数据结构-第12章 文件212.1 文件的基本概念12.1.1 文件的概念及其相关术语表 存储在内存中的大量记录的集合。文件 存储在外存中的大量记录的集合。不同的范畴中,文件代表不同的意义操作系统中,文件是命名的无结构的字节序列,其记录的格式依需要可以灵活划定。文件管理系统或数据库系统中,文件是命名的性质相同的逻辑记录的集合,每个记录由若干个数据项构成。文件被放置在外存上

2、。数据结构-第12章 文件3数据项(字段/属性) 文件可使用的最小单位主关键字项 其值能唯一标识一个记录的数据项或数据项的组合;该值称为主关键字。次关键字项 其值不能唯一标识一个记录的数据项;该值称为次关键字。单关键字文件 文件的记录只有主关键字多关键字文件 文件的记录除有主关键字,还含有若干个次关键字定长记录文件 文件中每个记录含有的信息长度相同(所有数据项定长)不定长记录文件 文件中每个记录含有的信息长度不一定相同数据结构-第12章 文件412.1.2 文件的逻辑结构及操作文件中记录之间的逻辑关系 一般看作是线性关系文件上的主要操作 (1)检索顺序检索:存取下一个逻辑记录直接检索:存取第i

3、个逻辑记录按关键字检索 简单询问:查询单个关键字等于给定值的记录 范围询问:查询单个关键字属于某个范围的所有记录 函数询问:规定单个关键字的某个函数,查询函数的值 布尔询问:以上三种询问用布尔运算(与、或、非)组 (2)修改 对记录的插入、删除,对记录某些数据项的更新等文件操作的处理方式实时批量数据结构-第12章 文件512.1.3 文件的存储结构(物理结构)物理记录(页块)和逻辑结构之间可能存在的关系一个物理记录存放一个逻辑记录一个物理记录存放多个逻辑记录多个物理记录存放一个逻辑记录文件的常用存储结构顺序组织索引组织散列组织链组织12.1.4 文件操作实现的基本方法 内外存交换以物理记录为单

4、位内存外存存取块号数据结构-第12章 文件612.2 顺序文件12.2.1 顺序文件的组织方式和特点组织方式 记录在物理结构中的排列顺序与逻辑顺序一致。连续文件:次序相继的两个物理记录的存储位置是相邻的串联文件:物理记录之间次序由指针相链表示特点 根据记录的序号或记录的相对位置进行存取。顺序存取时效率较高。数据结构-第12章 文件712.2.2 顺序文件上的操作查找顺序存取存储器(磁带)上的顺序文件顺序查找 为提高效率,适合于批量检索。直接存取存储器(磁盘)上的顺序文件顺序查找折半查找 适合于较小的有序定长记录文件的检索。查找很大的文件时(多个柱面),磁头频繁移动,降低时效。分块查找 先确定待

5、查关键字所在的块,进而在该块中顺序扫描。数据结构-第12章 文件8插入、删除和更新 由于文件的记录不易于像内存空间的数据那样“移动”,通常采用批量处理方式。事务文件 排序 有序的事务文件主文件新主文件修改请求原始文件 (有序)在一段时间内使用的记录数据结构-第12章 文件912.3 索引文件12.3.1 索引文件的组织方式 主文件 + 索引表(按主关键字有序) 索引项的结构: 关键字 物理块号索引文件只能是磁盘文件索引顺序文件:主文件中的记录按主关键字有序索引非顺序文件:主文件中的记录按主关键字无序稠密索引:主要用于索引非顺序文件 主文件中的每个记录对应一个索引项稀疏索引:用于索引顺序文件 主

6、文件的每个页块对应一个索引项数据结构-第12章 文件1012.3.2 索引文件上的操作 前提:索引非顺序文件,稠密索引查找1)将外存上存放索引文件的索引区页块读入内存,可采用顺序或折半查找来查找记录的物理记录号(块号)2)再将外存上存放该记录的数据区页块读入内存进行查找修改插入:将插入的记录置于数据区的末尾,并在索引表中插入索引项删除:删去相应的索引项更新:若主关键字被修改,则需修改对应的索引表项数据结构-第12章 文件1112.3.3 多级索引 当外存的一个页块不能容纳下索引表时,通常可以为索引表再建立一个索引,称为查找表;在此基础上还可以建立第二查找表、第三查找表、例 主文件 索引表 查找

7、表物理记录号 学号 姓名 其它 关键字 物理记录号 最大 物理 101 07 王得 15 04 103 关键字 块号 101 12 谢旺 07 101 12 15 103 04 陈明 12 101 44 16 103 44 胡建 16 22 104 104 37 刘流 37 104 104 22 郑辰 44 103数据结构-第12章 文件12特点为减少访问外存次数,应尽量减少索引表深度各级索引均为顺序表,结构简单;但修改不便,每次更新操作,可能都要重组索引,因此多级索引适合于静态索引当文件记录变动较多时,可采用适合于动态索引的树表结构,如二叉排序树、B-树等形式数据结构-第12章 文件1312

8、.4 索引顺序文件 索引顺序文件是最常用的一种文件组织形式主文件按关键字有序,可以有较高的检索效率采用稀疏索引,索引占用空间较少12.4.1 ISAM(索引顺序存取方法)文件专为磁盘存取文件设计的文件组织方式静态索引结构数据结构-第12章 文件14ISAM文件的组织方式多级主索引+柱面索引+磁道(盘面)索引+主文件 主索引 柱面索引 磁道索引 主文件R14 R21 R45 R50磁道索引T1 T2 T8 T9T10柱面C1溢出区R84 R88 R90 R91磁道索引T1 T2 T8 T9T10柱面C2溢出区50 T21 60 T92 R7979 C1T1R130130 C2T145087060

9、 53 T91数据结构-第12章 文件15ISAM文件上的操作1)查找 让主索引常驻内存1)从主索引出发,确定相应的柱面索引2)读入柱面索引,确定记录所在柱面的磁道索引地址3)读入磁道索引,确定记录所在的磁道4)在该磁道上查找 从磁道索引项的溢出索引项中得到溢出链表的头指针查找2)插入1) 利用查找确定记录应插入的柱面和磁道2)该磁道不满,则插入该磁道的适当位置上,结束3)该磁道已满,视插入记录的关键字插入磁道,调整溢出链表和磁道索引直接插入溢出链表,调整磁道索引数据结构-第12章 文件163)删除1) 查找待删除的记录2)在基本区时,在其存储位置上作删除标记 在溢出区时,可从链表中取消周期性

10、地集中整理ISAM文件,以保证空间利用率和存取效率。ISAM小结ISAM文件是一种多叉树形的索引顺序文件叶结点存放数据记录,组成文件的数据区非叶结点组成文件的索引区文件在记录插入和删除时,索引结构不变,是静态索引结构主索引和柱面索引在每次检索时都需查找,宜放在文件所占的几个柱面的居中的柱面上,使磁头平均移动距离最小。数据结构-第12章 文件1712.4.2 VSAM(虚拟存储存取方法)文件此存取方法与存储设备无关B+树(B-树的变型)动态索引结构大型索引顺序文件的标准,可应用于数据库文件VSAM文件的组织方式 59 97 15 44 59 72 97 10 15 20 37 44 51 59

11、63 72 85 91 975710111215sqtroot索引集B+树顺序集数据集控制区域(面)控制区间(道)数据结构-第12章 文件18VSAM文件上的操作1)查找方法1:随机查找。方法2:顺序查找。2)插入 分为三种情况:所插入的控制区间未满 将待插记录插入合适的位置所插入的控制区间已满,但其所在的控制区域有空闲控制区间 分裂该控制区间,将近乎一半的记录移到全空的控制区间,并修改顺序集中的相应索引所插入的控制区域已满 分裂控制区域,一般控制区域较大,此情况很少数据结构-第12章 文件193)删除 在一个控制区间内,被删记录之后的记录前移。若该控制区间变空,回收为空闲区间,并删除顺序集中

12、的相应索引和ISAM文件相比的优点 能保持较高的查找效率动态地分配和释放空间不必随记录的变动对文件进行再组织数据结构-第12章 文件2012.5 直接存取文件(散列文件)12.5.1 散列文件的组织方式类似于散列表处理冲突主要采用拉链法桶:一个存储单位(一块/多块),可以存放若干个记录基桶溢出桶装载因子: =n/(bm) n:记录数 b:桶数 m:桶容量0 063 184 1 589 008 5052 3 014 4 930 011 384320 007 123 089 基桶溢出桶桶号数据结构-第12章 文件2112.5.2 散列文件上的操作查找1)由散列函数求出基桶地址2)将基桶读入内存顺序

13、查找3)若未查到,读入溢出桶继续查找插入1)由散列函数求出基桶地址2)读入基桶,若基桶未满,直接插入3)若基桶已满,但溢出桶有空,插入溢出桶 否则,指定溢出桶空间,插入删除在被删记录上作删除标记数据结构-第12章 文件2212.5.3 散列文件的优缺点优点文件记录不必排序便于插入、删除记录存取速度快节省存储空间缺点只能按关键字存取,询问方式限于简单询问多次插入、删除记录会造成文件结构不合理,需重组文件数据结构-第12章 文件2312.6 多关键字文件目的 方便对次关键字的查询多关键字文件的概念 包含有多个次关键字索引的文件两种主要的组织方式多重表文件倒排文件数据结构-第12章 文件2412.6

14、.1 多重表文件组织方式 主文件(主关键字有序顺序文件,含有一个或多个次关键字链表) +主关键字非稠密索引+ 一个或多个次关键字索引表 例 次关键字 头指针 链长 物理记录号 学号 姓名 成绩 性别 主关键字 头指针 100 01 78 男 101 03 100 101 02 86 102 男 103 06 103 102 03 89 女 104 09 106 103 04 72 100 男 106 成绩 性别 104 05 65 女 105 60 104 1 男 100 4 105 06 94 女 70 103 2 女 102 3 106 07 83 101 男 80 106 3 90 10

15、5 1数据结构-第12章 文件25操作1)查找根据次关键字的索引,得到次关键字表头指针若多个次关键字的布尔“与”,应选较短的链表进行查找2)插入插入主文件,调整其中的次关键字链表修改次关键字索引表3)删除在主文件删除记录,调整其中的次关键字链表修改次关键字索引表优缺点易于查找;且不要求保持链表的某种顺序时,插入方便删除记录处理繁琐数据结构-第12章 文件2612.6.2 倒排文件组织方式 主文件 (主关键字有序顺序文件,含有一个或多个次关键字链表) +主关键字非稠密索引+一个或多个次关键字倒排表(索引表) 次关键字 物理地址(或主关键字)序列 例物理记录号 学号 姓名 成绩 性别 成绩倒排表

16、100 01 78 男 60 104 101 02 86 男 70 100,103 102 03 89 女 80 101,102,106 103 04 72 男 90 105 104 05 65 女 性别倒排表 105 06 94 女 男 100,101,103,106 106 07 83 男 女 102,104,105数据结构-第12章 文件27操作1)查找 进行多关键字查询时,可在倒排表中完成查询条件的布尔运算,最后对记录进行存取。2)修改 在主文件中插入/删除/更新记录,并修改倒排表优缺点查询快,但维护困难数据结构-第12章 文件28本章学习重点 掌握文件的概念 了解以下文件的物理结构、查找方法和特点 顺序文件 索引文件 散列文件 理解多关键字文件的含义,了解它的两种常用的存储结构是多重表文件和倒排文件数据结

温馨提示

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

评论

0/150

提交评论