开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
文件的结构
研究文件结构有两种观点:
- 用户的观点(文件的逻辑结构):主要研究用户思维中的抽象文件,为用户提供一种逻辑结构清晰﹑使用简便的逻辑文件。
- 例如用户可将文件看作字节的集合,或者将文件看作记录的集合·
- 用户将按这种形式去存取﹑检索和加工文件。
- 实现的观点(文件的物理结构):主要研究驻留在存储介质上的文件的结构。
- 文件的物理结构:文件的各个字节在存储介质上是如何摆放的。
文件的逻辑结构
1. 文件的逻辑结构
- 流式文件:基本信息单位是字节或字,其长度是所含字节的数量。
- 在这种文件中无需额外的说明和控制信息。
- 这种文件的优点是节省存储空间。
- 记录式文件:记录式文件是一种结构文件。由若干个记录组成,文件中的记录可按顺序编号为记录1,记录2 ,……,记录n。
- 如果文件中所有记录的长度相等,则称为定长记录文件,文件的长度为记录个数与记录长度的积。
- 若文件中的记录长度不相等,则称为变长记录文件。文件长度为所有记录长度之和。
- 相对流式文件而言,记录式文件的使用不很方便,尤其是变长记录文件。另外在文件中还要有说明记录长度的信息,这就浪费了一部分存储空间。
- 因此许多现代计算机操作系统如UNIX操作系统等都取消了记录式文件。
2. 文件的存储方式
- 顺序存取
- 文件存取最简单的方法是顺序存取,即严格按文件信息单位排列的顺序依次存取。
- 当打开文件时,文件的存取指针指向第一个信息单位,如第一个字节或第一个记录,每存取一个信息单位存取指针加1指向下一个信息单位,如此类推。
- 优点:批量存取时效率最高
- 缺点:查找和修改单个记录性能差
- 随机存取
- 也称直接存取,每次存取操作时必须先确定存取的位置。
- 对流式文件或定长记录的文件比较容易确定存取位置。
- 对不定长的记录式文件比较麻烦·当然可从第一个记录开始顺序查询,直到找到要存取的记录为止,显然这样做是低效的。
- 解决的方法是建立索引。文件的索引可以作为文件的一部分,也可以单独建立索引文件。
- 优点:具有较快的检索速度。
- 缺点:须配置一张索引表,增加存储费用。
- 索引顺序文件
直接文件和哈希文件
- 直接文件:根据给定的记录键值,通过计算直接确定该记录的物理地址,以进行访问;
- 哈希文件:一种广泛使用的直接文件。利用Hash函数计算出给定记录键值在目录表中的表项位置,然后从该表项中获得与给定记录键值相对应的物理地址。
文件部分都是大段的知识点哇,满满的都是干货!