基本概念
文件的类型
- 按记录的类型分类:操作系统文件,数据库文件(单关键字文件,多关键字文件)
- 按记录长度分类:定长记录文件,不定长记录文件
基本术语
- 数据域(数据场):记录中的每个数据项,称之为域或场(Field)
- 关键字:唯一标识记录的域,称之为关键字。辅助关键字,称之为次关键字。
- 记录(Record):若干相关的数据项的集合。如果存之于外存,则叫做记录。
- 文件:记录的集合。
- 记录的物理结构和逻辑结构:1.逻辑结构:记录在用户或程序员面前呈现的形式。2.物理结构:记录在在物理存储器上的存储方式,是数据的物理表示和组织。
- 物理记录和逻辑记录: 1.物理记录:计算机用一条 I/O 指令进行读写外存的基本单位。通常,对一定的设备和操作系统,大小是固定不变的。2.逻辑记录:程序员加以定义,用户要求使用的。
检索和修改
- 检索:顺序存取、直接存取、按关键字存取相应的记录
- 修改:插入、修改、更新
- 更新方式:实时、批量
顺序文件
- 物理记录的顺序和逻辑记录的顺序一致
- 连续文件:次序相继的两个物理记录在存储介质上的存储位置相邻
- 串联文件:物理记录之间的次序由指针相链
- 顺序文件的特点:1.存取第i个记录,必须先搜索前i-1个记录。2.新记录只能加在文件的末尾。 3.更新文件记录必须对文件进行复制。
- 典型的顺序文件:磁带文件
索引文件
- 即除了文件本身之外,另建立一张指示逻辑记录和物理记录之间的对应关系表(类似于指针存放地址,数据存在指针所指向的地址里)
ISAM文件和VSAM文件
ISAM文件
- 索引顺序存取方法(ISAM, Indexed Sequential Access Method)最初是IBM公司发展起来的一个文件系统,可以连续地(按照他们进入的顺序)或者任意地(根据索引)记录任何访问。每个索引定义了一次不同排列的记录。(来自百科)
- ISAM的存储是为磁盘存储而设计的
- 结构采用了多级索引:1.主索引。2.柱面索引。3.磁道索引
- 在采用基于B+树的VSAM技术之前,IBM公司曾广泛地采用ISAM技术
(图片来自于《北京大学-数据结构与算法》)

以上图为例
- C0为主索引,对应到若干个柱面索引,例如对应到柱面C1,C1再对应到磁道索引,基本区里是对记录的存放,溢出区则是暂存放一些溢出的数据
VSAM文件
- VSAM: Virtual storage access method 虚拟存储访问方法是IBM的磁盘文件存储访问方法, 首先使用在0S/VS2操作系统中,然后使用在多虚拟存储架构,现在在z/OS。 作为一个面向记录的文件系统,VSAM由四个数据集组成。关键字顺序数据集KSDS, 关联记录数据集RRDS, 实体顺序数据集ESDS和线性数据集LDS。 KSDS,RRDS和ESDS由记录组成, 而LDS只包含无固定记录结构的字节流。(来自百科)
- 此文件基于B+树进行存储
直接存取文件(散列文件)
- 与Hash表的建立方式类似
- 优点:随机存放,记录不需要进行排序;插入、删除方便 ,存取速度快,不需要索引区。
- 缺点:不能进行顺序存放,经过多次的插入、删除后,容 易造成文件结构不合理,溢出桶满而基桶内多数为被删除的记录。

多关键字文件
- 对文件进行检索时,不仅对主关键字进行简单访问,还经常需要对次关键字进行其他类型的检索。
- 两种多关键字文件的组织方法:多重表文件,倒排文件
多重表文件
- 主关键字建立索引,次关键字也建立索引,具有同一次关键字的记录构成一个链表。
- 具体组织方式:对每个需要查询的次关键字建立一个索引,同时将具有相同次关键字的记录链接成一个链表,并将此链表的头指针、链表长度及次关键字,作为索引表的一个索引项。通常多重表文件的主文件是一个顺序文件。
倒排文件
- 倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。(来自百科)

本文介绍了数据结构中的外部排序,主要探讨了不同类型文件的特点,包括顺序文件、索引文件、ISAM文件、VSAM文件、直接存取文件(散列文件)以及多关键字文件。顺序文件适合磁带存储,索引文件通过索引表实现快速存取,ISAM和VSAM文件提供了更高效的访问方式,而散列文件则利用哈希技术实现快速查找。多关键字文件则考虑了主次关键字的复合检索需求。
1万+

被折叠的 条评论
为什么被折叠?



