《数据结构(C语言版)》电子教案-赵坚 数据结构10

上传人:E**** 文档编号:89436840 上传时间:2019-05-25 格式:PPT 页数:29 大小:263KB
返回 下载 相关 举报
《数据结构(C语言版)》电子教案-赵坚 数据结构10_第1页
第1页 / 共29页
《数据结构(C语言版)》电子教案-赵坚 数据结构10_第2页
第2页 / 共29页
《数据结构(C语言版)》电子教案-赵坚 数据结构10_第3页
第3页 / 共29页
《数据结构(C语言版)》电子教案-赵坚 数据结构10_第4页
第4页 / 共29页
《数据结构(C语言版)》电子教案-赵坚 数据结构10_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《《数据结构(C语言版)》电子教案-赵坚 数据结构10》由会员分享,可在线阅读,更多相关《《数据结构(C语言版)》电子教案-赵坚 数据结构10(29页珍藏版)》请在金锄头文库上搜索。

1、第10章 文件,本章主要内容: 文件概述 顺序文件 索引文件 ISAM文件 VSAM文件 散列文件 本章重点: 文件的组织形式与检索方法 本章难点: ISAM文件与VSAM文件的组织与检索,本章导读,文件是存储在外部存储器上的记录的集合。本章主要介绍各类文件的构造以及文件的几种结构方式,包括顺序文件、索引文件、ISAM文件、 VSAM文件、散列文件及多关键字文件等。通过本章学习,读者应该掌握以下内容: 熟悉各类文件的特点和构造方法; 熟悉在各类文件上的检索、插入和删除等操作;,10.1 文件的基本概念,10.1.1 文件的基本概念 1文件 文件(File)是性质相同的记录的集合。记录是文件中存

2、取数据的基本单位,每个记录由一个或多个“数据项”组成,数据项也称为字段,它是文件可使用的最小单位。记录中能唯一标识一个记录的数据项或数据项的组合,称为“关键码”。当一个文件的各条记录按照某种次序排列起来时,各记录间就形成了一种线性关系。在这种排列次序下,文件中的每个记录仅有一个前驱记录和一个后继记录,第一个记录没有前驱仅有后继,最后一个记录仅有后继无前驱。因此文件可以看成是一种线性结构。,与文件有关的基本术语: 数据项:数据项是文件中可使用的不可分的最小数据单位。一个数据项由若干个字符或数字组成,它代表某一事物的一种属性。数据项又称为数据域。 例如,个人书库中的登录号、书号、书名、作者、出版社

3、和价格等等都是数据项。 记录:记录是由一个或多个数据项根据一定的目的而组成的数据项集合。例如,由登录号、书号、书名、作者、出版社和价格等数据项组成的集合是一个职工记录。 文件:文件是大量性质相同的记录组成的集合。,关键字:能够区别文件中各记录的域。通常,把能唯一标识一个记录的关键字称为主关键字;而那些不能唯一标识一个记录的关键字称为次关键字;由两个以上关键字组成的关键字称为复合关键字。 定长记录文件:如在一个个人书库文件中,各个记录的结构相同,信息长度相同,因而将这样的记录称为定长记录。由定长记录组成的文件称为定长记录文件。 不定长记录文件:例如,在学生学籍管理文件中,不同的年级,或者不同专业

4、的学生,所修的课程数和课程名称都不一样。这样,反映各个学生的学科成绩的记录长度和结构就不相同,所以称为不定长记录。由不定长记录组成的文件叫做不定长记录文件。,2文件分类 按记录类型:文件可分为操作系统文件和数据库文件。 操作系统文件是一维、无结构、无解释、连续的字符序列,它的记录为字符组; 数据库文件是带有结构的记录的集合,其记录由一个或多个数据项组成。 数据结构中的文件主要是针对数据库意义上的文件进行讨论。 按记录长度:文件可分为定长记录文件和不定长记录文件。 定长记录文件指文件中每个记录含有的信息长度都相同; 不定长记录文件指文件中每个记录含有的信息长度不定长。,按记录关键字:文件可分为单

5、关键字文件和多关键字文件。 单关键字文件指文件中的记录只含有一个主关键字; 多关键字文件指文件中的记录除含有一个主关键字外,还含有若干个次关键字。 10.1.2 文件的逻辑结构 文件可看成是以记录为数据元素的一种线性结构。 文件的逻辑结构指的就是文件中的记录展现在用户或程序员面前的逻辑关系。 文件中的记录称“逻辑记录”,是用户表示和存取信息的单位, 例如,在学籍管理软件中,存放学生信息的文件就是一类定长记录文件,它由若干学生记录信息构成,每个学生记录(逻辑记录)又由很多数据项构成,如:学号、姓名、性别、年龄等。,10.1.3 文件的物理结构 物理结构即文件的存储结构,指文件在外存上的组织方式。

6、 文件在外存上的基本的组织方式有四种:顺序组织,索引组织,散列组织和链组织; 对应的文件分别为:顺序文件、索引文件、散列文件和多关键字文件。 10.1.4文件的操作 文件的操作有两类:检索和修改。 检索有三种方式, 文件操作的方式有联机(实时)处理和批处理两种。,1检索操作 检索操作是在文件中查找相关的记录。常用四种查询方式: (1) 简单查询:查询关键字值等于给定值的记录; (2) 区域查询:查询关键字值属于某个区域内的记录; (3) 函数查询:查询关键字值满足某个函数的记录; (4)布尔查询(组合条件检索):由检索式的布尔运算构成组合条件。如检索某班(数学成绩90分且性别=“女”)的学生记

7、录。 2文件的修改和维护 文件的修改和维护操作主要是指: 对文件进行记录的插入、删除及修改等更新操作; 为提高文件的效率,进行再组织操作; 文件被破坏后的恢复操作,以及文件中数据的安全保护等。,10.2 顺序文件,顺序文件是物理结构最简单的文件,也是数据处理历史上最早使用的文件结构。顺序文件的各个记录按输入的先后次序存放在外存中的连续存储区。为了便于检索和修改文件,文件中的记录通常按关键字的大小次序排列,成为按关键字排序的顺序文件。 即:逻辑记录顺序和物理记录顺序相一致的文件。 顺序文件的优点:在连续存取时速度较快。例如,如果文件中的第i个记录刚被存取过,而下一个要存取的记录就是第i+1个记录

8、,则此次存取将会很快完成。 顺序文件主要用于顺序存取、批量修改的情况。,10.2.1 存储在顺序存储器上的顺序文件 存储在顺序存储器(如磁带)上的文件,只能是顺序文件,这种文件只能进行“顺序存取”和“成批处理”。磁带是一种典型的顺序存储设备,这是由磁带的物理特性决定的。 它适合于存放文件数据量大、文件中的记录平时变化少、只作批量修改的情况。 磁带顺序文件优点:连续存取时速度快,批处理效率高,节省存储空间。 缺点:实时性差,特别是更新操作要复制整个文件,所以一般不做随机处理。,10.2.2 存储在直接存储器上的顺序文件 顺序文件也可以存放在直接存取设备上,磁盘就是一个直接存取的存储设备。 存放于

9、磁盘上的文件,既可以是顺序文件,也可以是索引结构或其它结构类型的文件。 对存储在这类设备上的顺序文件不仅可以进行顺序存取,还可以进行“按记录号”的直接存取或“按关键字”进行随机存取。若是顺序有序的定长文件,还可以应用折半查找或插值查找等方法进行快速存取。 修改可进行批处理,也可随机处理。,10.3 索引文件,顺序文件的查询速度很慢。采用索引文件可以提高检索效率。 索引用来表示关键字与相应记录的存储地址之间的对应关系。即指出记录在存储器中的存储地址。 索引文件由“索引”和“主文件”两部分构成, 其中索引为指示逻辑记录和物理记录之间对应关系的表,表中每一个记录称作索引项,包含(逻辑记录的)关键码和

10、物理记录位置两个数据项, 索引按关键字有序。 对索引文件可以进行直接存取或按关键码存取。按关键码存取时,首先在索引中进行查找,然后按索引项中指示的记录在主文件中的物理位置进行存取。插入记录时,记录本身可插入在主文,件末尾,同时修改相应的索引项。更新记录的同时一般需要同时更新索引。 索引本身可以是顺序结构也可以是树型结构。由于大型文件的索引都相当大,因此常对顺序结构的索引建立多级索引,而树型结构本身就是一种层次结构,所以常用来作为索引文件的索引。,10.4 索引顺序文件,10.4.1 索引顺序文件的特点 若索引文件中的主文件按关键码有序,则称为索引顺序文件。它是目前大型文件和数据库广泛采用的数据

11、组织形式。 它是在顺序文件的基础上,用增加索引的办法而形成的。文件中的记录按关键字大小顺序存放在磁盘的连续或相邻的存储区中。由于记录按关键字排序,因此不必为每一个记录设立一个索引项,而把文件划分为若干个记录块,只为每块中关键字最大(或最小)的记录设置一个索引项。这种组织文件的方法称为索引顺序存取法ISAM(Indexed Sequential Access Method),用这种方法建立起来的索引文件称为ISAM文件,它是一种专为磁盘存取设计的文件组织方式。,索引顺序文件中的索引是“非稠密索引”,即对主文件中连续的一组记录建立一个索引项,索引文件由这组记录中的最大关键码和这组记录的物理地址组成

12、。索引的组织形式可分静态索引和动态索引两类。前者以ISAM文件为代表,它是一种专为磁盘存取设计的文件组织方式,由索引区,数据区和溢出区三部分组成。索引区通常是与硬件层次(磁盘的物理地址)一致的三级索引:总索引,柱面索引和磁道索引,溢出区用来存放后插入的记录。 当文件主要用于检索时,ISAM文件效率高,既能随机查找,又能顺序查找,但若增删频繁,则存取效率退化。为了提高检索效率,ISAM文件需定期重组,否则索引不能有效的用于检索新增加的记录。 动态索引以前面介绍的B+树为代表,其典型的文件组织为VSAM文件,它既便于检索又便于更新。,10.4.2 VSAM文件的组织方法 VSAM是Virtual

13、Storage Access Method(虚拟存储存取方法)的缩写,它也是一种索引顺序文件的组织方式,采用B+树作为动态索引结构。文件的结构示意图如图10-2所示。它由索引集、顺序集和数据集三部分组成。其中数据集即为主文件,由顺序集和索引集构成主文件的B+树索引。其中顺序集中的每个结点即为B+树的叶子结点,包含主文件的全部索引项,索引集中的结点(B+树的非叶结点),可看成是文件索引的高层索引。,图10-2 VSAM 文件结构示意图,VSAM文件通常被作为大型索引顺序文件的标准组织方式。其优点是能动态地分配和释放空间,不需要重组文件,并能较快地实现对“后插入”记录的检索;其缺点是占有较多的存储

14、空间,一般只能保持约75%的存储空间利用率。,10.5 散列文件,10.5.1 散列文件的组织方式 散列文件是利用散列存储方式组织的文件,又称直接存取文件。即根据文件中关键字的特点,设计一个散列函数和处理冲突的方法,将记录散列到存储设备上。 其特点是,由记录的关键码“直接”得到记录在外存(磁盘)上的映象地址。类似于构造一个哈希表,根据文件中关键码的特点设计一种哈希函数和处理冲突的方法,然后将记录散列到外存储设备上,所以称为散列文件。,图10-2 散列文件的组织,散列文件由若干个“桶”组成,根据设定的哈希函数将记录“映象”到某个桶号。处理冲突通常采用链地址法,即每个桶可以包括一个或几个页块,页块

15、之间以指针相链。每个页块中的记录个数则由逻辑记录和物理记录的大小决定。如图10-3所示。 处理溢出也可采用哈希表中处理冲突的各种方法;但对散列文件,主要采用链地址法。 当发生“溢出”时,需要将第m+1个同义词存放到另一个桶中,通常称此桶为“溢出桶”;相对地,称前m个同义词存放的桶为“基桶”。溢出桶可以有多个,它们和基桶大小相同,相互之间用指针相链接。 若桶目录表不大,使用时可保存在内存,否则就需要对目录进行组织。可以是顺序文件,或建立索引文件。,10.5.2 散列文件的操作 在散列文件中进行查找时,首先根据给定值kval求得桶号(即哈希函数值)i,先查桶目录文件(桶目录表较大时自成文件),把包

16、含第i个桶目录的目录页块调入内存,从而得到指向第 i 个桶的第一个页块的指针,再调入该页块进行顺序查找,检查页块中是否有关键码等于给定值 kval 的记录,如果找不到,再按此页块尾部的指针,找到下一个页块,继续查找直至找到该记录。 插入时,首先查找该记录是否存在,是则出错,否则插入在最后一个尚未填满的页块中。若桶中所有页块都已被填满,则向系统申请一个新的页块,链入桶链表之链尾,然后将新记录存入其中。 删除记录时,首先查找待删记录是否存在,不存在则出错,否则就删除,腾出空位给之后插入的记录用。,散列文件的优点是:插入、删除方便,记录随机存放,存取速度比索引文件要快;不需要索引区,节省存储空间,容易实现文件的扩充。 缺点是:不能进行顺序存取和批处理,只能按关键字随机存取,且询问方式只有简单询问;并且在经过多次的插入、删除之后,也可能造成文件结构不合理,即溢出桶满而基桶内多数为被删除的记录。此时需要重组文件。,10.6 多关键字文件,10.6.1多关键字文件概念 包含有多个次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号