文件的逻辑结构
一、文件逻辑结构的类型
1. 按是否有结构分类:
(1)有结构文件:①定长记录 ②变长记录
(2)无结构文件: 即流式文件,其长度以字节为单位。
2. 按组织方式分类
(1)顺序文件
(2)索引文件
(3)索引顺序文件
二、顺序文件
1. 逻辑记录的排序
①串结构:各记录之间的顺序与关键字无关。通常按时间顺序排序。
②顺序结构:对文件中的所有记录按关键字进行排序。
2. 对顺序文件的读写操作
3. 顺序文件的优缺点
优点:
最佳应用场合是在对文件中的记录进行批量存取。
所有逻辑文件中顺序文件的存取效率是最高的。
对于顺序存储设备(如磁带)也只有顺序文件才能被存储并有效工作。
缺点:
在交互场合,想要查找或者修改单个记录开销很大。
想要增加或者删除一个记录很困难。
三、索引文件
对于定长记录文件,可以根据其长度以及第一个记录的首地址,计算出第i个记录的地址。
对于可变长度记录文件,需要从首地址依次获取记录长度,来计算第i个记录地址。
可以为可变长度记录文件建立一个索引表,为每个记录设置一个表项,以加速对记录的检索速度。
四、索引顺序文件
索引顺序文件是对顺序文件的改进,克服对变长记录的顺序文件不能随机访问以及不便插入和删除的缺点。仍保留顺序文件的关键特征,记录是按关键字的顺序组织起来的,还有两个新特征:引入文件索引表实现随机访问,增加溢出文件记录新增加,删除和修改的记录。
五、直接文件和哈希文件
1. 直接文件
可根据给定关键字直接获取指定记录的物理地址。即关键字决定了记录的物理地址。
记录键值到记录物理地址之间的转换被称为键值转换,组织之间文件的关键在于用什么方法进行键值转换。
2. 哈希文件
哈希文件也称为散列文件,是利用哈希存储方式组织的文件,亦称为直接存取文件。它类似于哈希表,即根据文件中关键字的特点,设计一个哈希函数和处理冲突的方法,将记录哈希到存储设备上。