目录
十三、文件结构
13.1 引言
文件存储在辅助存储设备(二级存储设备)中,在设计一个文件时,关键问题是如何从文件中检索信息。有时需要一个接一个处理,有时需要快速存取一个特定记录。存取的方式决定了怎样检索记录:顺序或是随机。
13.1.1 顺序存取
如果需要顺序(一个接一个,从头到尾)存取记录,那么使用顺序文件结构。
13.1.2 随机存取
如果想存取某一特定记录而不用检索之前的记录,则使用随机存取的文件结构。有两种文件结构允许随机存取:索引文件、散列文件。
13.2 顺序文件
顺序文件是指记录只能按照从头到尾一个接一个地进行存取。记录按照顺序一个接一个被存储在辅助存储设备中,并在最后的记录之后加上EOF(文件末尾)标志。操作系统只知道该文件中的记录是一个接一个存取的。
顺序文件可用于需要从头到尾读取数据的应用,例如,要打印班上所有同学的信息,使用顺序文件是合理的,因为每条记录都需要被访问到。但对于需要随机存取的应用来说,顺序文件效率很低,例如,如果一个人要从银行取钱,如果银行需要按顺序检索该人的信息,将会非常耗时。
13.2.1 更新顺序文件
顺序文件必须定期更新,以反映信息的变化。
1. 需要更新的文件
和更新有关的一共有4个文件:新主文件、旧主文件、事务文件、错误报告文件。所有这些文件根据关键字值被分类。在更新完成之后,新主文件要被送到脱机存储器(辅助存储设备)中去,直到再次需要为止。当文件被更新时,主文件从脱机存储器中检索返回,成为旧主文件。
新主文件:新的永久数据文件,新主文件里包好大部分当前数据。
旧主文件:需要更新的永久文件,即使在更新后,旧主文件作为参考将继续保留。
事务文件:包含对主文件作的改变,在所有文件更新中,共有三种基本类型的改变。添加事务包含将要追加到主文件的新数据。删除事务把要从文件中删除的记录标识出来。修改事务包含对文件中特定记录的修改。要处理这些事务就需要键。键就是文件中一个或多个能唯一标识数据的字段。
错误报告文件:更新过程难免会出错,当错误发生时,应向用户报告错误。错误报告文件包括在数据更新时所发现的错误清单,并且提供给用户进行纠错。
2. 文件更新过程
<