2.文件的逻辑结构

第四章 文件管理

2.文件的逻辑结构

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

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

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

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

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

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

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

相关推荐
沐浴露z1 天前
详解 零拷贝(Zero Copy):mmap、sendfile、DMA gather、splice
java·网络·操作系统
崎岖Qiu2 天前
【OS笔记25】:页的共享和保护、页式虚拟存储管理
笔记·操作系统·os
CS创新实验室2 天前
从穿孔卡片到云原生:批处理系统的不朽演进与核心思想
云原生·操作系统·批处理
水月wwww3 天前
ubuntu网络连接出错解决办法
linux·运维·计算机网络·ubuntu·操作系统·ubuntu网络连接
元亓亓亓3 天前
考研408--day2--组成原理--进制&定点数&符号拓展
考研·408·组成原理
岑梓铭4 天前
《考研408数据结构》第六章(5.5树的应用)复习笔记
数据结构·笔记·考研·408·ds
酷柚易汛智推官4 天前
Windows 10 停服下的国产化迁移:统信 UOS 工具核心技术深度解析
windows·操作系统·酷柚易汛
梁辰兴5 天前
计算机操作系统:用户层的I/O软件
操作系统·计算机操作系统·用户层·i/o软件
岑梓铭5 天前
《考研408数据结构》第七章(6.1~6.3图的概念、存储方式、深/广度遍历)复习笔记
数据结构·笔记·考研·算法·图论·408·ds
海棠蚀omo6 天前
Linux基础I/O-打开新世界的大门:文件描述符的“分身术”与高级重定向
linux·操作系统