1 文件的基本概念
- 记录:是文件中存取的基本单位
- 数据项:是文件可使用的最小单位,有时也称为字段、属性
- 主关键字项:其值能唯一标识一个记录的数据项或数据项的组合
- 次关键字项:其值不能唯一标识一个记录的数据项
- 单关键字文件:文件的记录中只有一个唯一标识记录的主关键字
- 多关键字文件:文件的记录除有一个唯一标识记录的主关键字外,还有若干个次关键字
- 定长记录文件:文件中记录含有的信息长度相同
- 不定长记录文件:文件中记录含有的信息长度不等
文件的检索有2种方式:
- 顺序存取:按记录号一次存取逻辑记录
- 直接存取:按记录号或记录的相对位置直接取得需要的记录
- 按关键字存取:给定一个关键字的值,查询一个或多个关键字与给定值相关的记录
- 简单查询:查询关键字等于给定值的记录
- 区域查询:查询关键字属于某个范围的记录
- 函数查询:给定关键字的值使函数成立的记录
- 布尔查询:通过不二运算组合起来的查询
2 文件的分类
1)顺序文件
顺序文件是记录按其在文件中的逻辑顺序依次存入存储介质所建立的文件。
优点是连续存取的速度快,因此主要用于只进行顺序存取、批量修改的情况。
典型介质是磁带。
2)索引文件
索引文件概述
索引文件由索引区和文件数据区构成。
文件数据区按关键字有序的称为索引顺序文件(稀疏索引),否则为索引非顺序文件(稠密索引、通常是指索引文件)。
索引区指明逻辑记录和物理记录之间的一一对应关系,称为索引表。由索引项组成。索引项分为关键字和关键字对应的记录地址
索引文件在存储器上分为两个区:索引区和数据区。前者放索引表,后者放主文件。
检索步骤:
- 将外存上含有索引区的页块送入内存,查找所需记录的物理地址
- 将该记录的页块送入内存
- 查找表:若索引很大,一个页块容纳不下时,可以对索引表建立一个索引,称为查找表。
- 多级索引是一种静态索引,各级索引均为顺序表,修改不便,每次修改都要重组索引。因此,当数据文件在使用过程中记录变动较多时,应采用动态索引
ISAM
ISAM(索引顺序存取方法,Indexed Sequential Access Methed),是一种专为磁盘存取文件设计的文件组织方式,采用静态索引结构。
ISAM文件由多级主索引、柱面索引、磁道索引和主文件组成。
VSAM
VSAM(虚拟存储存取方法,Virtual Storage Access Method,也是一种索引顺序文件的组织方式,采用 B+ 树作为动态索引结构。
3)直接存取文件(散列文件)
在散列文件中,存储单位是桶。桶溢出时通过拉链法存到溢出桶中。
4)多关键字文件
多重表文件
多重表文件是将索引方法和链接方法相结合的一种组织方式,对每个需要查询的次关键字建立一个索引,同时将具有相同关键字的记录链接成一个链表,并将此链表的头指针、链表长度及次关键字作为索引表的一个索引项。
倒排文件
倒排文件和多重链表的区别在于次关键字索引的结构不同,倒排文件的次关键字索引称为倒排表。具有相同关键字的记录之间不进行链接,而是在倒排表中列出具有该次关键字记录的物理地址。
3 文件的存储
1)磁盘
磁盘通常称为直接访问存储设备。是随机存取设备。通常以存储非顺序文件为主,读取以扇区为单位。
使用磁盘主要有3个时间需要考虑:
- 寻道时间:磁头从当前位置移到数据存放磁道位置后所花的时间
- 旋转时间:磁头从当前扇区移动到数据存放扇区位置所花的时间
- 传送时间:数据从磁盘读取数据,并将数据传送到内存的时间
2)磁带
磁带通常称为顺序存储设备,只能顺序访问。
存取单位是磁带长度,存储单位是块。