配套幻灯片下载

Download Report

Transcript 配套幻灯片下载

第十章 文件
10.1 外存储器简介
目前广泛使用的外存储器有磁带机和磁盘
机两种。前者为顺序存取的存储设备,后者为
直接存取的存储设备。
10.1.1 磁带存储器
磁带是薄薄涂上一层磁性材料的一条窄
带。使用时,将磁带盘放在磁带机上,驱动器
控制磁带盘转动,带动磁带向前移动。通过读
/写头读出磁带上的信息或者将信息写入磁带。
1
10.1.2 磁盘存储器
磁盘是一种直接存取的存储设备,既能顺序
存取,又能随机存取。
• 由若干盘片组成一个盘片组,除最顶上和最底下
的两个外侧盘面外,其余用于存储数据的盘面称
为“记录面”。
• 记录面上存储数据的同心圆称为“磁道”。
• 各记录盘面上直径相同的磁道组成一个“柱面”。
• 一个磁道又可分为若干弧段,称为“扇面”。
2
磁盘信息存取的单位为一个扇面的字符组,
称为一个“页块”,因此需用一个三维地址来表明
磁盘信息:柱面号、记录面号和页块号。
为了访问一块信息,首先使磁头移动到所需柱面
(称为定位或寻查),然后等待页块起始位置转到
读/写头下,最后读/写所需信息。所需时间由这三
个动作所需时间组成:
TI/O = tseek + tla + n·twm
其中,tseek为寻查时间;tla为等待时间;twm 为
传输(一个字符)时间;n 为页块内字符数目。
3
10.2 有关文件的基本概念
文件(File)是由大量性质相同的记录组
成的集合。
记录中能唯一确定(或识别)一个记录的数据项或
数据项的组合,称为“关键码”。
若文件所含记录具有相同类型而且长度相等,
则称“定长文件”。
若文件中各记录的类型不同,或者类型相同而
长度不等,则称为“非定长文件”或“变长文
件”。
4
逻辑记录和物理记录
• 逻辑记录是用户表示和存取信息的单位。
• 物理记录是指外存信息存取的单位(即一
个页块内的信息)。
• 在物理记录和逻辑记录之间可能存在下
列三种关系:
(1) 一个物理记录存放一个逻辑记录
(2) 一个物理记录包含多个逻辑记录
(3) 多个物理记录表示一个逻辑记录
5
文件的存储结构
(1) 顺序结构:记录存放顺序与记录的逻辑顺序完全一致,
按这种存储方式组织的文件为“顺序文件”。
(2) 计算寻址结构:记录的存储位置由选定的哈希函数和
处理冲突的方法确定。按这种存储方式组织的文件为
“散列文件”。
(3) 索引结构:为顺序文件中的每个记录建立一个索引项,
所有记录的索引项构成一个索引,由索引和顺序文件
构成的文件为“索引文件”。
(4) 表结构:记录之间利用“指针”进行相互链接。
注意:文件组织采用什么样的组织方式取决于对
文件进行哪些操作和采用何种外存储介质。
6
10.3 顺序文件
顺序文件是记录的物理顺序和逻辑
顺序完全一致的文件。记录在外存储器
中的顺序是由建立文件时记录输入的顺
序自然形成的。若记录按关键码(指主
码)自小而大或自大而小的顺序输入,
则生成的文件为“顺序有序文件”,否
则称为“堆文件”,堆文件中记录的存
储顺序和关键码无关。
7
10.3.1 存储在顺序存储器上的顺序文件
存储在顺序存储器(如磁带)上的
文件,只能是顺序文件,这种文件只能
进行“顺序存取”和“成批处理”。
顺序存取是指按记录的逻辑(或物理)
顺序实现逐个存取,若要查询第i个记录
则必须先检索前 i-1 个记录;插入新的
记录只能加在文件的末尾;更新某个记
录必须对整个文件进行“复制”。
8
批处理的工作原理如下进行:称待修
改的原始文件为"主文件",文件中记录
按关键码有序;所有的修改请求依"请求
"的先后次序生成一个"事务文件",在进
行批处理之前首先对事务文件进行排序,
然后和主文件"归并"得到一个新的主文
件,如下图所示。
主文件
新主文件
有序事务文
件
9
10.3.2 存储在直接存储器上的顺序文件
存储在磁盘等直接存取设备上的顺序
文件不仅可以进行顺序存取,还可以进
行"按记录号"的直接存取或"按关键字"
进行随机存取,若是顺序有序的定长文
件,则还可应用折半查找或插值查找等
进行快速存取。修改操作可如同磁带文
件进行批处理,也可随机处理,但应尽
量减少记录的移动。
10
顺序文件的优点
连续存取时速度快,批处理效率高,
存储节省(除存储文件本身外,不需要
其他附加存储)。
顺序文件的缺点
随机处理效率低,特别是对更新要求,
一般不做随机处理。
顺序文件通常用以存储有历史保留价
值的海量数据,例如气象部门的逐日气
象记录数据等。
11
10.4 索引文件
索引文件由“索引”和“主文件”两
部分构成,其中索引为指示逻辑记录和
物理记录之间对应关系的表,表中每一
个记录称作索引项,包含(逻辑记录的)关
键码和物理记录位置两个数据项,索引
按关键码有序。对索引文件可以进行直
接存取或按关键码存取。
12
按关键码存取的原理
按关键码存取时,首先在索引中进
行查找,然后按索引项中指示的记录在
主文件中的物理位置进行存取。插入记
录时,记录本身可插入在主文件的末尾,
同时将相应的索引项插入索引;删除记
录仅需删除相应的索引项;更新记录时,
可将更新后的记录插入主文件末尾,同
时修改相应的索引项。
13
10.4.1索引文件的组织方法
组织索引文件的关键是如何组织索引。
索引本身可以是顺序结构也可以是树型
结构。由于大型文件的索引都相当大,
则对顺序结构的索引需要建立多级索引,
而树型结构本身就是一种"层次"结构,
因此常用以作为索引文件的索引。
14
10.4.2 索引顺序文件的特点
若索引文件中的主文件按关键码有
序,则称索引顺序文件。它是目前大型
文件和数据库广泛采用的数据组织形式。
索引顺序文件中的索引是“非稠密
索引”,即对主文件中连续的一组记录
建立一个索引项,它由这组记录中的最
大关键码和这组记录的物理地址组成。
索引的组织形式可分静态索引和动态索
引两类。
15
ISAM文件特点
静态索引以ISAM文件为代表,它是一种
专为磁盘存取设计的文件组织方式,由索引区,
数据区和溢出区三部分组成。索引区通常是与
硬件层次一致的三级索引:总索引,柱面索引
和磁道索引,溢出区用来存放后插入的记录。
当文件主要用于检索时,ISAM文件效率高,
既能随机查找,又能顺序查找,但若增删频繁,
则存取效率退化,且需定期重组。
16
10.5 VSAM文件的组织方法
虚拟存储存取方法VSAM利用操作系统的
虚拟存储器功能,其文件结构示意图如下所示。
17
VSAM文件的组成
它由索引集、顺序集和数据集三部
分组成。其中数据集即为主文件,而顺
序集和索引集构成主文件的"索引",是
一棵B+树。其中顺序集中的每个结点即
为B+树的叶子结点,包含主文件的全部
索引项,索引集中的结点即为B+树的非
叶结点,可看成是文件索引的高层索引。
18
VSAM文件特点
VSAM文件通常被作为大型索引顺
序文件的标准组织方式。其优点是:动
态地分配和释放空间,不需要重组文件,
并能较快地实现对"后插入"的记录的检
索;其缺点是:占有较多的存储空间,
一般只能保持约75%的存储空间利用率。
19
10.6 散列文件
散列文件又称直接存取文件,其特点
是,由记录的关键码"直接"得到记录在
外存(磁盘)上的映象地址。类似于构
造一个哈希表,根据文件中关键码的特
点设计一种"哈希函数"和"处理冲突的方
法",然后将记录散列到外存储设备上,
故称"散列文件"。
20
10.6.1 散列文件的组织方式
散列文件由若干个"桶"组成,根据设
定的哈希函数将记录"映象"到某个桶号。
处理冲突通常采用链地址法,即每个桶
可以包括一个或几个页块,页块之间以
指针相链。每个页块中的记录个数则由
逻辑记录和物理记录的大小决定。
21
基桶和溢出桶
在散列文件的存储单位叫桶(Bucket)。
注意:
假如一个桶能存放m个记录,则当桶中已
① 溢出桶和基桶大小相同,相互之间
有m个同义词的记录时,存放第m+1个同
用指针相链接。
义词会发生"溢出"。需要将第m+1个同义
② 当在基桶中没有找到待查记录时,
词存放到另一个桶中,通常称此桶为"溢
就沿着指针到所指溢出桶中进行查找,
出桶"。相对地,称前m个同义词存放的
因此,希望同一散列地址的溢出桶和
桶为"基桶"。
基桶,在磁盘上的物理位置不要相距
太远,最好在同一柱面上。
22
【例】某一文件有16个记录,其关键字分别为:
23,05,26,01,18,02,27,12,07,09,
04,19,06,16,33,24。桶的容量m=3,桶
数b=7。用除余法作散列函数H(key)=key%7。
由此得到的散列文件如下图所示。
23
10.6.2 散列文件的操作
1.散列文件的查找操作:
根据给定值求出散列桶地址,将基桶
的记录读人内存,进行顺序查找,若找
到关键字等于给定值的记录,则检索成
功;若基桶内没有填满记录或其指针域
为空(即无溢出桶)则文件内不含有待
查的记录;否则根据指针域的值的指示
将溢出桶的记录读入内存继续进行顺序
查找,直至检索成功或不成功。
24
2.散列文件的插入操作
先查找,当查找不成功时,将记录
插入在相应的基桶或溢出桶内。
3.散列文件的删除操作
在散列文件中删去一个记录,仅需
对被删记录作删除标记即可。
25
散列文件的特点
散列文件的优点
记录随机存放,存取速度快;不需要建多
层索引,节省存储空间;容易实现文件的扩充。
散列文件的缺点
不适用于对文件进行顺序存取和批处理;
在经过多次的插入、删除之后有可能造成文件
结构不合理,即页块链表中的前几个页块中多
数的记录被删除,此时需"重组文件"。
26
10.7 多关键字文件
包含有多个次关键字索引的文件称为
多关键字文件。在对多关键字文件进行
检索操作时,不仅对主关键字进行简单
询问,还经常需要对次关键字进行其他
类型的询问检索。因此,对多关键字文
件,尚需建立一系列的次关键字索引。
次关键字索引本身可以是顺序表或树表。
27
多关键字文件和其他文件的区别
多关键字文件
其他文件
包含的关 主关键字外还有
键字
多个次关键字
只含一个主关键
字索引
建立的索 建立主关键字索
引
引和多个次关键
字索引
查询
对主关键字索引
或次关键字索引
查询
只有(没有)主
关键字索引查询
只能顺序存取主
文件记录进行比
较,效率低
28
10.7.1 倒排文件
在倒排文件中,为每个需要进行检
倒排表的优点是对于主文件的存储
具有相对的独立性,无论主文件中记录
索的次码建立一个"倒排表",倒排表中具
的存储位置如何变化都不需要修改次码
有相同次码的记录构成一个顺序表。当
索引,对于多码组合查询,也可以先对
按次码进行检索时,首先从相应的次码
由每个次码得到的多个主码集合进行集
倒排表中得到记录的主码信息,然后从
合运算,最后只要对得到的满足多码检
主索引存取相应记录。
索要求的主码进行存取。
29
10.7.2 多重表文件
多重表易于构造和插入记录,但删
多重表文件的主文件为"串联文件
"(即按主码顺序利用指针链接为表结构),
除记录时要修改所有次索引链表。在进
并建立主码的非稠密索引-主索引,对每
行多码组合查询时,应选择长度最短的
一个次码建立次索引,所有具有同一次
次索引,依次存取记录直至找到满足所
有条件的记录为止。
码值的记录链接为一个链表,链表的头
指针和链表的长度以及次码值构成一个
索引项。
30
本章小结
本章介绍了数据项、记录、文件和关键
字等一些基本概念;
文件的主要操作有:插入、删除、修改、
检索等。
文件的物理结构是指文件在外存上的组
织形式。
按照文件的检索方式和物理结构,文件
可分为顺序文件、索引文件、索引顺序文件、
散列文件(直接存取文件)、多重表文件、
倒排文件。
31
本章着重介绍了这几种文件的概念、组织形式、存储
和相关操作。
•顺序文件结构简单,使用方便,但查询速度很慢。
•索引顺序文件是被经常采用的一种文件结构。采用索
引文件可以提高检索效率,它是在顺序文件的基础上,
用增加索引的办法而形成的。
•散列文件是利用散列存储方式组织的文件,也称直接
存取文件。
•多重表文件是将索引方法和链接方法相结合的一种组
织方式,通常多重表文件的主文件是一个顺序文件。
•倒排文件在次关键字索引中,具有相同次关键字的记
录之间不进行链接,而是列出具有该次关键字记录的
物理地址。
32