文件存储信息。当使用时,必须访问这种信息,并将其读到计算机内存。文件信息可按多种方式来访问。
顺序访问(sequential access)
顺序访问就是打开文件后,一个字节一个字节的读,一个20Kb的文件,必须先读完前10Kb(即使不做任何操作),才能访问到第11Kb。
顺序访问是通过一个指针操作的,指针可以按顺序移动(有的系统允许向前或者向后跳过n个记录),也可以重新设置到开始位置(reset)
顺序访问
大多数操作系统按顺序访问文件。 换句话说,大多数文件需要由操作系统按顺序访问。
现代文字系统确实提供了直接访问和索引访问的概念,但最常用的方法是顺序访问,因为大多数文件(如文本文件,音频文件,视频文件等)需要按顺序访问。
直接访问(direct access)
直接访问(direct access)也叫相对访问(relative access),其原理是基于磁盘的特性的,磁盘能够随时访问其任意位置。
支持直接访问的文件中,文件由固定长度的逻辑记录组成,通过这种逻辑记录(如每一个块的编号,记录等)能够做到访问文件的任意位置。
直接访问可以立即访问大量信息,所以极为有用。
在数据库系统中,直接访问通常是必需的。 在大多数情况下,需要从数据库中过滤信息。 在这种情况下,顺序访问可能非常慢并且效率低下。
假设每个存储块存储4条记录,并且知道需要的记录存储在第10个块中。在这种情况下,顺序访问将不会执行,因为它将遍历所有块以访问所需的记录。
直接访问将提供所需的结果,尽管操作系统必须执行一些复杂的任务,例如确定所需的块号。 但是,这通常在数据库应用程序中实现。
直接访问
其他方式
其他访问方法可以建立在直接访问方式之上。这些方法通常涉及创建文件索引。索引(index),如书后的索引,包括各块的指针。通过创建文件索引,实现更快捷的文件访问,还有创建二级索引的索引方式。
如果文件可以在任何字段上排序,那么可以将索引分配给一组特定的记录。 但是,特定的记录可以通过其索引来访问。索引只不过是文件中记录的地址。
在索引访问中,在大型数据库中搜索变得非常快捷,但需要在内存中留出一些额外的空间来存储索引值。