文档介绍:第13章文件
本章小结
文件的基本概念
顺序文件
哈希文件
索引文件
多关键字文件
文件的基本概念
什么是文件
文件是性质相同的记录的集合。文件的数据量通常很大,它被放置在外存上。
数据结构中所讨论的文件主要是数据库意义上的文件,而不是操作系统意义上的文件。操作系统中研究的文件是一维的无结构连续字符序列,数据库中所研究的文件是带有结构的记录集合,每个记录可由若干个数据项构成。
记录是文件中存取的基本单位,数据项是文件可使用的最小单位。数据项有时也称为字段。其值能惟一标识一个记录的数据项或数据项的组合称为主关键字项,其他不能惟一标识一个记录的数据项则称为次关键字项,主关键字项(或次关键字项)的值称为主关键字(或次关键字)。
为讨论方便起见,我们仍不严格区分关键字项和关键字,即在不易混淆时,将主(或次)关键字项简称为主(或次)关键字,并且假定主关键字项只含一个数据项。
文件可以按照记录中关键字的多少,分成单关键字文件和多关键字文件。若文件中的记录只有一个惟一标识记录的主关键字,则称其为单关键字文件;若文件中的记录除了含有一个主关键字外,还含有若干个次关键字,则称为多关键字文件。
文件又可分成定长文件和不定长文件。若文件中记录含有的信息长度相同,则称这类记录为定长记录,由这种定长记录组成的文件称做定长文件;若文件中记录含有的信息长度不等,则称做不定长文件。
文件的逻辑结构及操作
文件中各记录之间存在着逻辑关系,当一个文件的各个记录按照某种次序排列起来时(这种排列的次序可以是记录中关键字的大小,也可以是各个记录存入该文件的时间先后等等),各记录之间就自然地形成了一种线性关系。在这种次序下,文件中每个记录最多只有一个后继记录和一个前驱记录,而文件的第一个记录只有后继没有前驱,文件的最后一个记录只有前驱而没有后继。因此,文件可看成是一种线性结构。
文件上的操作主要有两类:检索和维护。
文件的存储结构
文件的存储结构是指文件在外存上的组织方式。采用不同的组织方式就得到不同的存储结构。基本的组织方式有四种:顺序组织、索引组织、哈希组织和链组织。文件组织的各种方式往往是这四种基本方式的结合。
几种常用的文件组织方式:顺序文件、索引文件、哈希文件和多关键字文件。选择哪一种文件组织方式,取决于对文件中记录的使用方式和频繁程度、存取要求、外存的性质和容量。
顺序文件
顺序文件是指按记录进入文件的先后顺序存放、其逻辑顺序跟物理顺序一致的文件。若顺序文件中的记录按其主关键字有序,则称此顺序文件为顺序有序文件;否则称为顺序无序文件。为了提高检索效率,常常将顺序文件组织成有序文件。
顺序文件的结构特点:
记录在文件中的排列顺序是由记录进入存储介质的次序决定的, 即文件物理结构中记录的排列顺序和文件的逻辑结构中记录的排列顺序一致。
顺序文件的操作特点:
(1)便于进行顺序存取;
(2)不便于进行直接存取,为取第i个记录,必须先读出前i-1个记录,对于磁盘上的等长记录的连续文件可以进行折半查找;
(3)插入新的记录只能加在文件的末尾;
(4)删除记录时,只作标记;
(5)更新记录必须生成新的文件。
索引文件
用索引的方法组织文件时,通常是在文件本身(称为主文件)之外,另外建立一张表,它指明逻辑记录和物理记录之间的一一对应关系,这张表就叫做索引表,它和主文件一起构成的文件称作索引文件。
索引表中的每一项称作索引项,一般索引项都是由主关键字和该关键字所在记录的物理地址组成的。显然,索引表必须按主关键字有序,而主文件本身则可以按主关键字有序或无序,前者称为索引顺序文件,后者称为索引非顺序文件。
对于索引非顺序文件,由于主文件中记录是无序的,则必须为每个记录建立一个索引项,这样建立的索引表称为稠密索引。对于索引顺序文件,由于主文件中记录按关键字有序,则可对一组记录建立一个索引项,例如,让文件中每个页块对应一个索引项,这种索引表称之为稀疏索引。通常可将索引非顺序文件简称为索引文件,本节只讨论这种文件。