一、文件、文件系统
1、文件逻辑结构的类型
(1)有结构文件(记录式)
①定长记录 (更适合顺序文件)
②变长记录(更适合索引文件)
如何组织记录:
顺序文件。系统需按该类型记录“长度”,通常定长。
索引文件。系统需为文件建立索引表。
索引顺序文件。建索引表,记录每组记录的第一个记录位置。(较大文件可以组织成索引顺序文件)
(2)无结构文件(字符流式)
字节为单位,利用读写指针依次访问。
系统对该类文件不需格式处理。
2.顺序文件
(1)两种记录排列方式
串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
顺序结构:按关键字排序。
(2)具体的寻址过程:
第i条记录地址(定长) :
读写指针 + 记录长度: ptr + i*L
第i条记录地址(变长) :
扫描或读取前面0~i-1条记录
第i条记录地址(变长)
3.索引文件
为了方便单个记录的随机存取,为文件建立一个索引表,记录每项记录在文件的逻辑地址及记录长度;该索引表按关键字排序
(1)索引表内容:
索引号、长度、记录地址指针
(2)一个索引文件可以有多个索引表
为方便用户根据不同记录属性检索记录,为顺序文件建立多个索引表,每种能成为检索条件的域都配备一张索引表。
(3)索引文件的优缺点
适用于变长记录,可提高检索速度,实现直接存取
索引表增加了存储开销
4.索引顺序文件
(1)
将顺序文件的所有记录分组
还是建立索引表,但每个表项记录的是每组第1条记录的键值和地址。
组内记录仍按顺序方式检索和使用。
(2)检索一条记录的过程:
先计算记录是在第几组,然后再检索索引确定组在哪里后,在组内顺序查找。
5.直接文件
给定键值(如学号)不需顺序检索直接得到记录的物理地址(HASH函数)
6.外存分配方式
(1)常用三种方式:
连续分配
链接分配(不连续)
索引分配
(2)采用的磁盘分配方式决定了文件的“物理结构”
顺序结构;链接式结构;索引式