文件管理1
第七章 文件管理
6.1 文件和文件系统
一、文件记录数据项
1.数据项
在文件系统中,数据项是最低级的数据组织形式,可把它分成以下两种类型:
(1) 基本数据项,这是用于描述一个对象的某种属性的字符集,是数据组织中可以命 名的最小逻辑数据单位,又称为字段。例如,用于描述一个学生的基本数据项有:学号、 姓名、年龄、所在班级等。
(2) 组合数据项。是由若干个基本数据项组成的,简称组项。例如工资是个组项,它 可由基本工资、工龄1.资和奖励工资等基本项所组成。
数据项描述属性(列)
- 记录
元组(行)
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。
在诸多记录中,为了能唯一地标识一个记录(一个或多个数据项),必须在一个记录的各个数据项中确定出 一个或几个数据项,把它们的集合称为关键字(key)。或者说,关键字是唯一能标识一个记 录的数据项。通常,只需用一个数据项作为关键字。
- 文件
文件是具有文件名的一组相关信息集合。
文件属性包括:文件类型、文件长度、文件的物理位置和文件的建立时间。
二、文件类型
1) 按用途分类
根据文件的性质和用途的不同,可将文件分为三类:
(1) 系统文件,这是指由系统软件构成的文件。大多数的系统文件只允许用户调用, 但不允许用户去读,更不允许修改:有的系统文件不直接对用户开放。
(2) 用户文件,指由用户的源代码、目标文件、可执行文件或数据等所构成的文件。 用户将这些文件委托给系统保管。
(3) 库文件,这是由标准子例程及常用的例程等所构成的文件。这类文件允许用户调 用,但不允许修改。
2) 按文件中数据的形式分类
按这种方式分类,也可把文件分为三类:
(1) 源文件,这是指由源程序和数据构成的文件。通常,由终端或输入设备输入的源 程序和数据所形成的文件都属于源文件。它通常是由ASCII码或汉字所组成的。
(2) 目标文件,这是指把源程序经过编译程序编译过,怛尚未经过链接程序链接的目 标代码所构成的文件。目标文件所使用的后缀名是“.obj”。
(3) 可执行文件,这是指把编译后所产生的目标代码经过链接程序链接后所形成的文 件。其后缀名是.exe
3) 按存取控制属性分类
根据系统管理员或用户所规定的存取控制属性,可将文件分为三类:
(1) 只执行文件,该类文件只允许被核准的用户调用执行,不允许读和写。
(2) 只读文件,该类文件只允许文件主及被核准的用户去读,不允许写。
(3) 读写文件,这是指允许文件主和被核准的用户去读或写的文件。
4) 按组织形式和处理方式分类
根据文件的组织形式和系统对其处理方式的不同,可将文件分为三类:
(1) 普通文件,是由ASCII码或二进制码组成的字符文件,一般用户建立的源程序文件、数据文件以及操作系统自身代码文件、实用程序等都是普通文件。
(2) 目录文件,是由文件目录组成的文件,通过目录文件可以对其下属文件的信息进行检索,对可执行文件进行操作,与普通文件一样。
(3)特殊文件,特指系统中的各类I/O设备。为了便于统一管理,系统将所有的I/O设 备都视为文件,并按文件方式提供给用户使用,如目录的检索、权限的验证等都与普通文 件相似,只是对这些文件的操作将由设备驱动程序来完成。
三、文件系统
文件系统接口 |
对对象操纵和管理的软件集合 |
文件、对象及其属性说明 |
四、文件操作
- 最基本的文件操作 最基本的文件操作包含下述内容:
(1) 创建文件。在创建一个新文件时,要为新文件分配必要的外存空间,并在文件目 录中为之建立一个目录项;目录项中应记录新文件的文件名及其在外存的地址等属性。
(2) 删除文件。在删除时,应先从目录中找到要删除文件的目录项,使之成为空项, 然后回收该文件所占用的存储空间。
(3) 读文件。在读文件时,根据用户给出的文件名去査找目录,从中得到被读文件在 外存中的位置:在目录项中,还有一个指针用于对文件的读/写。
(4) 写文件。在写文件时,根据文件名查找目录,找到指定文件的目录项,再利用目 录中的写指针进行写操作。
(5)设置文件的读/写位置。前面所述的文件读/写操作,都只提供了对文件顺序存取的 手段,即每次都是从文件的始端进行读或写;设置文件读/写位置的操作,通过设置文件 读/写指针的位罝,以便读/写文件时不再每次都从其始端,而是从所设置的位置开始操作, 因此可以改顺序存取为随机存取。
- 文件的“打开”和“关闭”操作
当用户要求对一个文件实施多次读/写或其它操作时,每次都要从检索目录开始。为了 避免多次重复地检索目录,在大多数OS中都引入了 “打开"(open)这一文件系统调用,当 用户第一次请求对某文件进行操作时,须先利用open系统调用将该文件打开。所谓“打开”, 是指系统将指名文件的属性(包括该文件在外存上的物理位置),从外存拷贝到内存打开文 件表的一个表目中,并将该表目的编号(或称为索引号)返回给用户。换而言之,“打开”, 就是在用户和指定文件之间建立起一个连接。此后,用户可通过该连接直接得到文件信息, 从而避免了再次通过目录检索文件,即当用户再次向系统发出文件操作请求时,系统根据 用户提供的索引号可以直接在打开文件表中查找到文件信息。这样不仅节畨了大量的检索 开销,也显茗地提高了对文件的操作速度。如果用户己不再需要对该文件实施相应的操作, 可利用“关闭”(close)系统调用来关闭此文件,即断幵此连接,OS将会把该文件从打幵文 件表中的表目上删除掉。
6.2 文件的逻辑结构
(1) 文件的逻辑结构(File Logical Structure)。这是从用户观点出发所观察到的文件组织 形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独 立于文件的物理特性,又称为文件组织(File Organization)。
(2) 文件的物理结构,又称为文件的存储结构。这是指系统将文件存储在外存上所形 成的一种存储组织形式,是用户不能看见的。文件的物理结构不仅与存储介质的存储性能 有关,而杜与所采用的外存分配方式有关。无沦是文件的逻辑结构,还是其物理结构,都 会影响对文件的检索速度。
一、逻辑结构
1)有结构文件 (记录式文件)
在记录式文件中,每个记录都用于描述实体集中的一个实体,各记录有着相同或不同 数的数据项。记录的长度可分为定长和不定长两类。
(1)定长记录,是指文件中所有记录的长度都是相同的,所有记录中的各数据项都处 在记录中相同的位 s ,具杏相同的顺序和长度,文件的氏度用记录数 R 表示。定长记录能 有效地提高检索记录的速度和效率,能方便对文件进行处理和修改,所以这是目前较常用 的一种记录格式,被广泛用r数据处理中。
(2)变长记录,是指文件中各记录的长度不相同。产生变长记录的原因可能是由于一个记录中所包含的数据项数目并不相同,如书的著作者、论文中的关键词等,也可能是数 据项本身的长度不定,
2)无结构文件 (流式文件)
如果说在大最的信息管理系统和数据库系统中,广泛采用了 无结构的文件形式的话(即 文件是由定长或变长记录构成的),那么在系统中运行的大量的源程序、可执行文件、库函 数等,所采用的就是无结构的文件形式,即流式文件。其文件的长度是以字节为单位的对流式文件的访问,则是利用读、写指针来指出下一个要访问的字符。可以把流式文件看 做是记录式文件的一个特例:一个记录仅有一个字节。
二、组织方式
根据文件的组织方式,可把有结构文件分为五类:
(1)顺序文件,指由一系列记录按某种顺序排列所形成的文件,其中的记录可以是定长记录或可变长记录.
(2)索引文件,指为可变长记录文件建立一张索引表,为侮个记录设置一个表项,以加速对记录的检索速度。
(3)索引顺序文件,这是顺序文件和索引文件相结合的产物,这里,在为每个文件建立一张索引表时,并不是为每一个记录建立一个索引表项,而是为一组记录中的第 一个记录建立一个索引表项。
(4)直接文件
关键字本身决定了物理地址,键值转换。
(5)哈希文件