【操作系统】文件的逻辑结构

文件的逻辑结构总结

@(OS)

逻辑结构:从用户观点出发看到的文件的组织形式,是用户可以直接处理的数据及其结构。独立于文件的物理特性。也称为文件组织。
物理结构:从实现的角度出发,OS看到的文件的存储结构。是文件在外存上的存储组织形式。不仅与存储介质的存储性能有关,也与所采用的外存分配方式有关。

无论是文件的逻辑结构还是物理结构都会影响文件的检索速度。

这里首先关注逻辑结构:实际上讲的就是在文件的内部,逻辑上数据是如何被组织起来的。
根据逻辑结构,文件可以分为两个大类:无结构文件有结构文件

无结构文件

最简单的文件组织形式。将数据按照顺序组织成记录(记录指的是一组相关数据项的集合)并积累保存,是有序相关信息项的集合。以字节为单位。对记录的搜索只能是穷举搜索。适用于存储源代码,目标代码等。

有结构文件

也可称之为记录式文件。分为顺序文件和索引文件。记录可以定长也可以变长。可以顺序存储也可以链表离散存储。

顺序文件

通常是定长记录,但也可以是变长记录

这个类别下也分为两个子类。串结构和顺序结构。
串结构:记录之间的顺序与关键字(选取的特别的数据项标识记录)无关。通常由时间决定。
顺序结构:文件中的所有记录按照关键字顺序排列
对记录进行批量操作时,即每次需要读or写一大批记录,对顺序文件的效率最高。

索引文件

主要是针对变长记录的文件。为什么呢。首先,如果记录式定长的,则可以通过:
Ai=i×L,i是记录编号,L是记录占据的长度,Ai是地址

这种计算本身并不耗时,因此,不必特别加以索引。那么就该问,变长的记录为何要用索引呢?
答案是,变长的记录无法通过上面的计算推导。只能顺序查找,所以系统开销极大。

所以建立索引表就势在必行了。
索引表本身是定长记录的文件。
每一个索引项指明了该记录的长度。

索引顺序文件

顺序和索引两种组织的结合。即:用索引的方式索引顺序文件。 这是被我忽略了的。可以这么理解:顺序文件通常是定长记录,索引针对的是变长记录。如果结合起来会有什么好处呢?
具体实施是:并非为每个记录建立一个索引,这样太浪费了,而是为一组记录中的第一个记录设置一个表项。

索引文件由逻辑文件和索引表组成。

分析:文件的逻辑结构和物理结构都有索引的概念。逻辑索引的目的是加快文件数据的定位,从用户角度出发。物理索引的主要目的是为了管理不连续的物理块,从系统管理的角度出发。

对索引文件存取,必须查找索引表。索引表项包含每个记录的长度和在逻辑文件中的起始位置。每个记录都有一个索引项,提高了存储的代价。

文件由N个记录,则顺序文件下平均查找N2次,索引顺序文件下最好的平均查找次数是N‾‾√次。

分析:顺序文件自然不必说,就是求一个期望,严格来说是N+12, 索引文件对索引项也是顺序查找,对分组的记录也是顺序查找。为什么一组记录数是N‾‾√最好,这就要根据2ab≥a2+b2,当且仅当a=b时取得极值。这里也是一样。共N‾‾√组,平均查找N√2次,找到组后,再平均查找次数是N√2,共N‾‾√次。

20161223 update :

简单来说索引文件就是对基本的每个逻辑记录添加索引项,像目录一样,可以查找目录进行随机访问。虽然不同于顺序存储的方式,但本质都是可以通过数学计算得到。顺序文件很常见,就是按照顺序分配存储即可。而索引顺序文件呢是对用索引的方式操作顺序文件,对每一组进行索引。

一般说顺序文件,在定长记录时才能够随机访问,索引不受这个限制。
也说明了,顺序文件可以存储非定长记录。

原文链接:http://blog.csdn.net/u011240016/article/details/52833398

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值