2.文件的逻辑结构

第四章 文件管理

2.文件的逻辑结构

顺序文件采用顺序存储则意味着各个逻辑上相邻的记录在物理上也是相邻的存储的。所以如果第0号记录的逻辑地址为0的话,则i号记录的逻辑为i *L。 特别的如果这个定长记录的顺序文件采用串结构,也就是这些记录的顺序和他们的关键字没有关系的话,则就无法快速找到某关键字对应的记录,因为并不是按关键字的顺序排列的,所以每次只能从头开始依次往后遍历寻找这个关键字对应的记录。但是如果这个定长记录的顺序文件采用的是顺序结构的话,那么意味着这些记录是按照关键字的顺序来排列的,这样就可以用折半查找等方法快速找到某个关键字对应的记录。

​   一般来说考试题目中所说的顺序文件指的是 物理上顺序存储的顺序文件;所以不需要考虑各个记录链式存储的情况。

​   在顺序表那种数据结构中要增加或者删除一个数据元素是比较困难的,同样的如果顺序文件采用顺序存储的结构那么增加/删除一个记录也是比较困难的(如果是串结构由于不需要保证各个记录按照关键字来排序,因此对于串结构的顺序文件来说,增加/删除一个记录相对来说要简单一些,只需要很简单的将要增加的记录插到文件的末尾就可以了)。【拓展:在实际应用当中为了减少磁盘的I/O次数一般来说操作系统会管理一个日志文件,用这个日志文件来记录对这个文件当中对各个记录进行修改的一些信息,然后每隔一段比较长的时间再把这些信息统一的合并到外存当中的文件数据当中,如每隔1个小时合并一次,或每隔十分钟才合并一次,这样就可以减少对顺序存储的顺序文件进行增删改所带来的一些开销了。】

​   索引文件:文件的各个记录在物理上可以离散存放;但索引表的各个表项在物理上需要连续存放。

​   索引顺序文件:与索引文件类似的是索引顺序文件同样会为一个文件建立一张索引表,但与索引文件不同的是,索引顺序文件当中并不会为每一个记录建立一个对应的索引表项。而是会给这些记录进行分组,然后每一个分组对应一个索引表项。

​   比如说在这个例子中就是按照学生的姓氏把学生记录进行了一个分组,每个分组会对应一个索引顺序文件的索引项,每个索引项记录了这个分组的名字和这个分组存放的位置。

​   索引顺序文件的索引项并不需要按照关键字的顺序来排列,这样可以更方便新表项的插入操作,即索引顺序文件的索引表其实是一个定长记录的串结构的顺序文件(前面在顺序文件处提到了串结构相对于顺序结构来说增加/删除一个记录较简单)。 另外这样的一个分组就是一个顺序文件。采用索引顺序文件这种逻辑结构后,索引表的表项是少了很多的。

相关推荐
CYRUS_STUDIO18 小时前
Android 反调试攻防实战:多重检测手段解析与内核级绕过方案
android·操作系统·逆向
YxVoyager2 天前
操作系统(二) :CPU调度
操作系统
pusue_the_sun3 天前
简单概述操作系统的发展
操作系统·计算机组成原理
自我陶醉@4 天前
计算机网络---物理层
计算机网络·考研·学习方法·408
岑梓铭4 天前
《考研408数据结构》第一章复习笔记
数据结构·笔记·考研·408
yanxing.D5 天前
计算机网络——第一章 计算机网络体系结构
计算机网络·408
apolloyhl5 天前
深入理解 Linux 内核进程管理
linux·运维·服务器·操作系统
自我陶醉@6 天前
计算机网络---网络体系结构
网络·计算机网络·考研·智能路由器·408
hour_go7 天前
用户态与内核态的深度解析:安全、效率与优化之道
笔记·操作系统
岑梓铭7 天前
考研408《计算机组成原理》复习笔记,第六章(1)——总线概念
笔记·考研·408·计算机组成原理·计组