文件结构总结——《计算机科学导论》

定义两类存取方法:顺序存取和随机存取
文件是作为一个单元看待的外部相关数据的集合。文件的主要作用是存储数据。
文件是数据记录的集合,每一个记录都由一个或多个域组成。
如何从文件中检索信息(一个特定的记录),存取方法决定了如何检索记录。

理解顺序文件的结构和它们是如何更新的
顺序文件是指记录只能按照顺序从头到尾一个接一个地进行存取。
更新顺序文件:顺序文件必须定期更新,以反映信息的变化。更新的过程中所有记录都要被顺序地检查和更新
1、需要更新的文件:
(1) 新主文件,新的永久数据文件,新的主文件中包含大部分当前数据;
(2) 旧主文件,需要更新的永久文件
(3) 事务文件,包含将要对主文件作的改变
(4) 错误报告文件,包括在数据更细时所发现的错误清单,并且提供给以进行纠错操作
2、文件更新过程
要使文件更新过程更有效率,所有文件都必须按同一个键排序。更细过程要求比较事务文件和主文件中的键。
理解索引文件的结构和索引文件与数据文件间的关系
在文件中随机存取,需要知道记录的地址。索引文件把账号和记录地址关联起来。
所有文件由数据文件组成,它是带索引的顺序文件。索引本身非常小,只占两个字段:顺序文件的键和在磁盘上相应记录的地址。
存取文件中的记录需按一下步骤:
(1) 整个索引文件都载入到内存中(文件很小,只占用很小的内存空间)
(2) 搜索项目,用高效的算法(如折半查找法)查找目标键
(3) 检索记录的地址
(4) 按照地址,检索数据记录并返回给用户
理解散列文件背后的概念,说出一些散列方法
散列文件用一个函数来完成映射。用户给出键,函数将键映射成地址,再传给操作系统。
散列文件无需额为的文件(索引)。
在索引文件中,必须将文件的索引保存在磁盘上,当需要处理数据文件时,先要把索引导入内存,搜索索引找到数据记录的地址,再访问数据文件存取记录。
在散列文件中,用函数来寻找地址,不需要索引和伴随它的所有开销。
散列方法:
(1)直接法
文件对所有可能的键包含一个记录,保证没有其他方法所存在的同义词或冲突问题。
(2)求模法
用文件大小除键后,将余数加1作为地址
(3)数字析取法
选择从键中析取的数字作为地址
描述地址冲突和它们是如何解决的
把列表中一些映射为同一地址的键称为同义词。
如果插入列表的实际数据中有两个或多个同义词,将产生冲突。
由散列算法产生的地址称为内部地址,包含所有内部地址的区域称为主区
冲突解决法:
(1)开放寻址
当一个冲突发生时,主区地址将查找开放的或空闲的记录来用于存放数据
(2)链表解决法
每一条记录存储在起始地址,但它包含了一个指向下一条记录的指针
(3)桶散列法
散列到桶,桶是一能接纳多个记录的节点,这种方法的缺点是可能有很多的浪费
(4)组合使用上述多种方法
定义目录和它们是如何解决的
目录是大多数操作系统提高的,用来组织文件。在大多数操作系统中,目录被表示为含有其他文件信息的一种特殊文件类型。目录的作用不仅仅像一种索引文件,该索引文件告诉操作系统在辅助存储设备的位置,目录还包含了关于它所包含的文件的其他信息,如:文件访问权限、文件被创建、存取和修改的日期。
定义目录和它们是如何用来组织文件的
1、 特殊目录
根目录:文件系统层次结构的最高层。根目录属于系统管理员
主目录:首次登陆的系统中,使用的就是主目录。这个目录包含我们在其中创建的任何文件,还包含个人文件系统。每个用户都有一个主目录
工作目录(当前目录):是在用户会话中在任意点我们所在的目录;
父目录:是工作目录的直接上层目录
2、路径和路径名
为了唯一地标识一个文件,我们需要指明从根目录到文件的文件路径。
文件路径由它的绝对路径名来指明。
相对路径名:相对于工作目录的路径。
区分文本和二进制文件
存储在存储设备上的文件是一个位的序列,可被应用程序翻译成一个文本文件或是二进制文件。
(1) 文本文件
是一个字符文件。内存格式中不能包含整数、浮点数或其他数据结构。
一些文件只能用字符数据格式:如用于键盘、监视器和打印机的文件流
(2) 二进制文件
二进制文件是用于计算机的内部格式存储的数据集合,数据可以是整型(包括其他表示成无符号整数的数据类型,如图像、音频或视频)、浮点型、字符型或其他数据结构。
二进制文件中的数据只有当被程序正确解释时才有意义

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值