本章简介
在数据处理方面,特别是事务型的软件编制工作中,都涉及到有关文件的知识。有效地组织数据,提供方便而又高效地利用数据信息的方法,是文件这一章所要讨论的内容。尽管数据管理技术早已从文件系统发展到数据库系统,但因为文件系统是数据库系统的基础,从专用、高效和系统软件研制角度看,文件系统仍有其不可取代的地位。正如高级语言出现后,汇编语言仍是软件研制的重要工具一样。
文件概念
1.文件概念
文件(File)是性质相同的记录的集合。
注意:
①文件的数据量通常很大,被放置在外存上。
②数据结构中讨论的文件主要是数据库意义上的文件,不是操作系统意义上的文件。
③操作系统中研究的文件是一维的无结构连续字符序列。数据库中所研究的文件是带有结构的记录集合,每个记录可由若干个数据项构成。
记录是文件中存取的基本单位,数据项是文件可使用的最小单位。数据项有时也称为字段(Field),或者称为属性(Attribute)。
其值能惟一标识一个记录的数据项或数据项的组合称为主关键字项。其它不能惟一标识一个记录的数据项则称为次关键字项。主关键字项(或次关键字项)的值称为主关键字(或次关键字)。
为讨论方便起见,一般不严格区分关键字项和关键字。即在不易混淆时,将主(或次)关键字项简称为主(或次)关键字,并且假定主关键字项只含一个数据项。
【例】下表是一个简单的职工文件。每个职工情况是一个记录,它由7个数据项组成。其中"职工号"可作为主关键字项,它能惟一标识一个记录,即它的值对任意两个记录都是不同的。姓名、性别等数据只能作为次关键字项,因为它们的值对不同的记录可以是相同的。
2.文件分类
(1)单关键字文件和多关键字文件
文件可以按照记录中关键字的多少,分成单关键字文件和多关键字文件。
① 单关键字文件
文件中的记录只有一个惟一标识记录的主关键字。
② 多关键字文件
文件中的记录除了含有一个主关键字外,还含有若干个次关键字的文件。
(2)定长文件和不定长文件
① 由定长记录组成的文件称做定长文件
含有的信息长度相同的记录称定长记录。
② 文件中记录含有的信息长度不等,则称其为不定长文件。
【例】上表所示的职工文件是一个定长文件。
3.文件的逻辑结构及操作
1. 文件的逻辑结构
文件可看成是以记录为数据元素的一种线性结构。
2. 文件上的操作主要有两类:检索和维护。
(1)检索
检索即在文件中查找满足给定条件的记录。它既可以按记录的逻辑号(即记录存入文件时的顺序编号)查找,也可以按关键字查找。按检索条件的不同,可将检索分为四种询问:
①简单询问:只询问单个关键字等于给定值的记录。
【例】下表的职工文件中,查询职工号=447,或姓名="张珊"的记录。
②范围询问:只询问单个关键字属于某个范围内的所有记录。
【例】下表的职工文件中,查询工资>2100的所有职工的记录。
③函数询问:规定单个关键字的某个函数,询问该函数的某个值。
【例】下表的职工文件,查询全体职工的平均工资是多少。
④布尔询问:以上三种询问用布尔运算(与、或、非)组合起来的询问。
【例】下表的职工文件中,要找出所有工资低于2100的程序员以及所有工资低于5120的分析员,查询条件是:
(职务="程序员")and(工资<2100)or(职务="分析员")and(工资<5120)
(2)维护操作
维护操作主要是指:
① 对文件进行记录的插入、删除及修改等更新操作。
② 为提高文件的效率,进行再组织操作,
③ 文件被破坏后的恢复操作,以及文件中数据的安全保护等。
(3) 文件操作的处理方式
文件上的检索和更新操作,都可有实时和批量两种不同的处理方式。
① 实时处理:响应时间要求严格,要求在接受询问后几秒种内完成检索和更新。
② 批量处理:响应时间要求宽松一些,不同的文件系统有不同的要求。
【例】一个民航订票系统,其检索和更新都应当实时处理;而银行的账户系统需要实时检索,但可进行批量更新,即可以将一天的存款和提款记录在一个事务文件上,在一天的营业之后再进行批量处理。
4.文件的存储结构(亦称物理结构)
1.文件的存储结构
文件的存储结构是指文件在外存上的组织方式。
文件在外存上的基本的组织方式有四种:顺序组织 ,索引组织 ,散列组织 和链组织 ;对应的的文件名称分别为:顺序文件 、索引文件 、散列文件 和多关键字文件 。
文件组织的各种方式往往是这四种基本方式的结合。
2.文件组织方式的选择
选择哪一种文件组织方式,取决于对文件中记录的使用方式和频繁程度、存取要求、外存的性质和容量。
注意:
常用外存设备有:
① 磁带是顺序存取设备,只适用于存储顺序文件【磁带结构图参见教材】
② 磁盘是直接存取设备,适用于存储顺序文件、索引文件、散列文件和多关键字文件等【磁盘结构图参见教材】
3. 文件组织效率的评价标准
评价一个文件组织的效率,是执行文件操作所花费的时间和文件组织所需的存储空间。通常文件组织的主要目的,是为了能高效、方便地对文件进行操作,而检索功能的多寡和速度的快慢,是衡量文件操作质量的重要标志,因此,如何提高检索的效率,是研究各种文件组织方式首先要关注的问题。