10文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.1 文件的基本概念
10.2 顺序文件
10.3 索引文件
10.4 索引顺序文件
10.5 散列文件
10.6 多关键字文件
10.1 文件的基本概念
文件是的性质相同的记录的集合。

分类
按记录的类型划分
●操作系统的文件(一维的无结构连续字符序列)
●数据库的文件(带有结构的记录集合)
按关键字的多少划分
●单关键字文件
●多关键字文件
按记录的另一特性划分
●定长文件
●不定长文件
操作系统的文件:仅是一维的连续的字符序列,无结构、无解释。

它也是记录的集合。

记录仅是一个字符组,每一组信息称为一个逻辑记录,且可按顺序编号。

数据库中的文件:是带有结构的记录的集合;这类记录是由一个或多个数据项组成的。

数据项是最基本的不可分的数据单位,也是文件中可使用的数据的最小单位。

例如:下图所示为一个数据库文件,每个学生的情况是一个记录,它由7个数据项组成。

数据库文件还可按记录中关键字的多少分类:
●单关键字文件:若文件中的记录只有一个唯一标识记录的主关键字。

●多关键字文件:若文件中的记录除了含有一个主关键字外,还含有若干个次关键字。

定长记录文件和不定长记录文件
●若文件中每个记录含有的信息长度相同,则称这类记录为定长记录,由这类记录组成的
文件称做定长记录文件。

●若文件中含有信息长度不等的不定长记录,则称不定长记录文件。

文件的逻辑结构
●是指记录在用户或应用程序员面前呈现的方式
●是用户对数据的表示和存取方式。

文件的物理结构
●是数据在物理存储器上存储的方式
●是数据的物理表示和组织。

区别和联系:
1)角度:通常,记录的逻辑结构着眼在用户使用方便;而记录的物理结构则应考虑提高存储空间的利用率和减少存取记录的时间,它根据不同的需要及设备本身的特性可以有多种方式。

2)大小:物理记录对于固定的设备和操作系统的大小基本上是固定不变的;而逻辑记录的大小是由使用要求定的。

用户读/写一个记录是指逻辑记录,查找对应的物理记录则是操作系统的职责。

下图表示了这种关系。

文件的操作
检索:在文件中查找满足给定条件的记录。

维护:对文件进行记录的插入、删除、修改等更新操作。

●插入:在文件中增加一个新记录。

●删除:删去文件中的一个记录。

这种操作常常需要通过检索先找到被删记录的位置,而
后再删除。

●修改:把记录中某些字段的值改为新值。

文件操作方式
●实时:应答时间要求严格(应在接受询问后几秒钟内完成检索和更新)
●批量:应答时间要求宽松
文件的存储结构(物理结构):在外存(磁盘)上的组织方式。

文件基本的组织方式有四种
●顺序组织
●索引组织
●散列组织
●链组织
文件组织的各种方式往往是这四种基本方式的结合,把不同方式组织的文件给予不同的名称●顺序文件
●索引文件
●散列文件
●多关键字文件

10.2 顺序文件
顺序文件:记录按其在文件中的逻辑顺序依次进入存储介质而建立的文件,其物理记录的顺序和逻辑记录的顺序是一致的。

分类:
●连续文件:若次序相继的两个物理记录在存储介质上的存储位置是相邻的
●串联文件:由链指针表示物理记录之间的次序
特点:
●存取第i个记录,须先搜索在它之前的i-1个记录。

●插入新的记录时只能加在文件的末尾。

●若要更新文件中的某个记录,则必须将整个文件进行复制。

优点:
●连续存取的速度快,因此主要用于只进行顺序存取、批量修改的情况。

若对应答时间要
求不严时亦可进行直接存取。

●磁带是一种典型的顺序存取设备,因此存储在磁带上的文件只能是顺序文件。

磁带文件
适合于文件的数据量甚大、平时记录变化少、只作批量修改的情况。

10.3 索引文件
索引文件:是在文件数据区(主文件)之外再建立一张指示逻辑记录(或关键字)和物理记录之间的对应关系的表(索引表)。

主文件和索引表共同构成索引文件。

索引表是由系统程序自动生成的。

在记录输入建立数据区的同时建立一个索引表,索引表中的每一项称做索引项。

表中的索引项按记录输入的先后次序排列,待全部记录输入完毕后再对索引表进行排序。

所以,不论主文件是否按关键字有序,索引表中的索引项总是按关键字(或逻辑记录号)顺序排列。

分类:
●索引无序文件:若主文件是无序的,其中的每个记录的关键字及记录的物理块头地址构
造索引表,索引表中索引项接关键字值有序排列。

●索引顺序文件:若有序文件并带有索引。

操作:
●检索方式分为直接存取或按关键字存取。

●检索过程类似分块查找,分两步进行:
首先,查找索引表(由于索引表是有序的,则查找索引表时可用折半查找法);
若索引表上存在该记录,则根据索引项的指示读取外存上该记录;否则说明外存上不存在该记录,也就不需要访问外存。

●索引文件的修改也容易进行。

删除/更新...
推出扩展:
●一般情况下,由于索引项的长度比记录小得多,则通常可将索引表一次读入内存,由此
在索引文件中进行检索只访问外存两次,即一次读索引,一次读记录。

●当记录数目很大,索引表也很大,以致一个物理块容纳不下的时候。

在这种情况下查阅
索引仍要多次访问外存。

●为此,可以对索引表建立一个索引,称为查找表。

检索记录时,先查找查找表,再查索
引表,然后读取记录。

三次访问外存即可。

若查找表中项目还多,则可建立更高一级的索引。

通常最高可有四级索引:而检索过程反向,即从最高一级索引(第三查找表)开始,仅需5次访问外存。

10.4 索引顺序文件
ISAM文件-索引顺序存取文件:一种专为磁盘存取设计的文件组织方式。

由于磁盘是以盘组、柱面和磁道三级地址存取的设备,则可对磁盘上的数据文件建立盘组、柱面和磁道三级索引。

文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放在相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放。

每个柱面建立一个磁道索引。

每个磁道索引项由两部分组成:基本索引项和溢出索引项,每一部分都包括关键字和指针两项,前者表示该磁道中最末一个记录的关键字(在此为最大关键字),后者指示该磁道中第一个记录的位置;
柱面索引的每一个索引项也由关键字和指针两部分组成,前者表示该柱面中最末一个记录的关键字(最大关键字),后者指示该柱面上的磁道索引位置。

柱面索引存放在某个柱面上,若柱面索引较大,占多个磁道时,则可建立柱面索引的索引——主索引。

在ISAM文件上检索记录:
由此出发在该磁道上进行顺序查找直至找到为止;反之,若找遍该磁道而不存在此记录,则表明该文件中无此记录。

说明:
●每个柱面上还开辟有一个溢出区;并且,磁道索引项中有溢出索引项,这是为插入记录
所设置的。

●由于ISAM文件中记录是按关键字顺序存放的,则在插入记录时需移动记录并将同一磁
道上最末一个记录移至溢出区,同时修改磁道索引项。

●通常溢出区可有三种设置方法:
1)集中存放——整个文件设一个大的单一的溢出区;
2)分散存放——每个柱面设一个溢出区
3)集中与分散相结合——溢出时记录先移至每个柱面各自的溢出区,待满之后再使用公共溢出区。

散列文件(直接存取文件):即利用散列函数和处理冲突的方法,把文件记录散列到外存上,通常是磁盘上。

与散列表区别是:
●磁盘上的直接存取文件是成组存放的,组也称为桶。

●桶由一块或若干块组成。

散列地址是桶的物理地址加上块的地址。

同一地址的桶中包含
若干记录。

10.5 散列文件
散列文件由桶目录、基桶和溢出桶组成,其中:
●桶目录存放散列地址即块号
●基桶存放块地址
●溢出桶大小和基桶相同,相互之间用指针相链接,用来存放冲突的块的地址。

当发生“溢
出”时,在基桶中没有找到待查记录时,就顺指针所抬到溢出桶中进行查找。

因此,希望同一散列地址的溢出桶和基桶在磁盘上的物理位置不要相距太远。

例如:某文件有18个记录,其关键字分别为278,109,063,930,589,184,505,269,008,083,164,215,330,810,620,110,384,355。

桶的容量m=3,桶数b=7。

哈希函数H(key)= key mod 7。

则对应直接存取文件如下:
首先求出桶的散列地址(即基桶号),将基桶的记录读入内存进行顺序查找,若找到关键字等于给定值的记录,则检索成功;否则,若基桶内没有填满记录或其指针域为空,则文件内不含有待查记录;否则根据指针域的值的指示将溢出桶的记录读入内存继续进行顺序查找,直至检索成功或不成功。

优点:文件随机存放,记录不需进行排序;插入、删除方便,存取速度快,不需要索引区,节省存储空间。

缺点:不能进行顺序存取,只能按关键字随机存取,且询问方式限于简单询问,并且在经过多次的插入、删除之后,也可能造成文件结构不合理,即溢出桶满而基桶内多数为被删除的记录。

此时亦需重组文件。

10.6 多关键字文件
多关键字文件:在对文件进行检索操作时,除了对主关键字进行查询外,还常常包含对次关键字的查询,为此,需要对被查询的次关键字建立相应的索引,这种包含多个关键字索引的文件称为多关键字文件。

例如:高考成绩文件中,准考证号码为主关键字,“总分”和各单科成绩为次关键字。

允许对此文件作如下询问:总分在600分以上的记录;数学的平均分数,等等。

相关文档
最新文档