- 文件的逻辑结构是依据用户视角所呈现的文件形式,它与存储介质的特性无关,但物理结构却与介质紧密相关。
- 按照逻辑结构,文件可分为无结构文件和有结构文件两大类型:
- 无结构文件是最简单的文件构成方式,它将数据顺序排列并保存为记录的集合,以字节为单位。这种文件虽管理简便,但因其结构缺失,对记录的访问多依赖穷举搜索,故在多数应用场景中并不适用。但对于一些基本操作需求不多的文件,如源程序文件、目标代码文件等,采用无结构字符流方式是较为合适的。
- 有结构文件则按照记录的形式进一步分类:
1. 顺序文件:记录长度固定,按关键字顺序排列,可顺序存储或以链表形式存储。在访问时需按序搜索。其中,串结构指记录顺序与关键字无关,常由存入时间决定;而顺序结构则是指所有记录严格按照关键字顺序排列。批量操作时,顺序文件的效率最高,尤其适用于磁带存储。但单个记录的增删改查操作较为困难。
2. 索引文件:对于变长记录的文件,为提高检索速度,可建立索引表以加快检索。当记录数量多或访问要求高时,引入索引尤为必要,其能显著提高访问速度。
3. 索引顺序表:这是顺序和索引两种形式的结合。它将记录分为多个组,并为每组建立索引项和指向该记录的指针。
4. 直接或散列文件:通过给定或转换的键值直接决定记录的物理地址。散列文件存取速度快,但可能存在不同关键字的散列函数值相同的情况,造成冲突。
关于文件控制块(FCB):
目录结构方面:
1. 单级目录结构:整个系统仅一张目录表,每个文件占一项。访问文件时需在目录中查找相应FCB。此结构简单,但查找速度慢,不允许重名,且不利于文件共享。
2. 二级目录结构:为主用户目录(MFD)和用户文件目录(UFD)两级结构。此结构解决不同用户文件的重名问题,一定程度上保证文件安全。
3. 多级或树形目录结构:将两级结构的层析推广,以路径名标识文件。此结构便于文件分类和管理,但查询速度受路径长度影响。
4. 无环图目录结构:为便于文件共享而设计的复杂结构。共享节点可被多个路径共享,需通过共享计数器来管理共享链。
不同类型的文件结构和目录结构均依据其特定的使用场景和需求进行设计和优化。在选择和应用时,需综合考虑系统的效率、管理的便捷性以及文件共享的需求。