1
《数据结构(C++版)》复习提要与实验指导
1.12.1.1 9.1.1 基本概念

9.1.1 基本概念

1. 文件及其类别

文件(file)是大量性质相同的记录组成的集合。文件可按其记录的类型不同而分成两类:操作系统的文件和数据库文件。

数据库中的文件是带有结构的记录的集合。这类记录是由一个或多个数据项组成的集合,它也是文件中可存取的数据的基本单位。数据项是最基本的不可分的数据单位,也是文件中可使用的数据的最小单位。

2. 记录的逻辑结构和物理结构

记录的逻辑结构是数据在物理存储器上存储的方式,是数据的物理表示和组织。通常,记录的逻辑结构着眼于用户使用方便,而记录的物理结构则应考虑提高存储空间的利用率和减少存取记录的时间,它根据不同的需要及设备本身的特性可以有多种方式。

3. 文件的操作(运算)

文件的操作有两类:检索和修改。

文件的检索有下列三种方式:

(1) 顺序存取。存取下一个逻辑记录。

(2) 直接存取。存取第i个逻辑记录。

(3) 按关键字存取。给定一个值,查询一个或一批关键字与给定值相关的记录。

文件的修改包括插入一个记录、删除一个记录和更新一个记录三种操作。

4. 文件的物理结构

文件的存储结构(亦称物理结构)是指文件在外存上的组织方式。文件在外存上的基本的组织方式有四种:顺序组织、索引组织、散列组织和链组织;对应的文件名称分别为:顺序文件、索引文件、散列文件和多关键字文件。文件组织的各种方式往往是这四种基本方式的结合。

5. 顺序文件基本概念

顺序文件是记录按其在文件中的逻辑顺序依次进入存储介质而建立的,即顺序文件中物理记录的顺序和逻辑记录的顺序是一致的。若次序相继的两个物理记录在存储介质上的存储位置是相邻的,则又称连续文件;若物理记录之间的次序由指针相链表示,则称为串联文件。

顺序文件的查找方法:顺序查找法、分块查找法、二分查找法。

6. 索引文件

除了文件本身(称作数据区)之外,另建立一张指示逻辑记录之间一一对应关系的表——索引表。这类包括文件数据区和索引表两大部分的文件称作索引文件。

ISAM为Indexed Sequential Access Methed(索引顺序存取方法)的缩写,它是一种专为磁盘存取文件设计的文件组织方式,采用静态索引结构。ISAM文件由多级主索引、柱面索引、磁道索引和主文件组成。文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放在相邻的柱面上。对同一柱面,则应按盘面的次序顺序存放。

7. 直接存取文件(散列文件)

直接存取文件指的是利用杂凑(hash)法进行组织的文件。它类似于哈希表,即根据文件中关键字的特点设计一种哈希函数和处理冲突的方法将记录散列到存储设备上,故又称散列文件。

8. 多关键字文件

多关键字文件的特点是在对文件进行检索操作时,不仅对主关键字进行简单询问,还经常需要对次关键字进行其他类型的询问检索。

多重表文件的特点是:记录按主关键字顺序构成一个串联文件,并建立主关键字的索引(称为次索引),每个索引项包括次关键字、头指针和链表长度。

9. 倒排文件

倒排文件和多重表文件的区别在于次关键索引的结构不同。通常,称倒排文件中的次关键字索引为倒排表,具有相同关键字的记录之间不设指针相链,而在倒排表中该次关键字的一项中存放这些记录的物理记录号。倒排表作索引的好处在于检索记录较快。