第十章文件、外部排序与外部搜索学习培训模板课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第十章文件、外部排序与外部搜索学习培训模板课件.ppt》由用户(林田)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 文件 外部 排序 搜索 学习 培训 模板 课件
- 资源描述:
-
1、第十章第十章 文件、外部排序文件、外部排序与外部搜索与外部搜索主存储器和外存储器主存储器和外存储器 文件组织文件组织 多级索引结构多级索引结构 外排序外排序 1主存储器与外存储器主存储器与外存储器主存储器主存储器又叫又叫内存储器,内存储器,简称为简称为内存;外存内存;外存储器储器简称为简称为外存。外存。外存储器外存储器与与内存储器内存储器相比,优点是:相比,优点是:u价格较低价格较低u永久的存储能力永久的存储能力缺点:缺点:u访问访问外存外存储器上的数据比访问储器上的数据比访问内存内存要慢要慢56个数量级个数量级要求我们在开发系统时必须考虑如何要求我们在开发系统时必须考虑如何使外存使外存访问次
2、数达到最少访问次数达到最少。2磁带(磁带(tapetape)磁带是一种磁带是一种顺序存取顺序存取设备。设备。磁带主要用于备份、存储不经常使用的数据,磁带主要用于备份、存储不经常使用的数据,以及作为将数据从一个系统转移到另一个系统以及作为将数据从一个系统转移到另一个系统的脱机介质。的脱机介质。3读出头读出头写入头写入头磁带磁带送带盘送带盘卷带盘卷带盘磁带卷在一个卷盘上,运行时磁带经过读写磁磁带卷在一个卷盘上,运行时磁带经过读写磁头,把磁带上的信息读入计算机,或者把计算头,把磁带上的信息读入计算机,或者把计算机中的信息写到磁带上去。机中的信息写到磁带上去。数据记录在磁带带面上。在带面上并列存放有数
3、据记录在磁带带面上。在带面上并列存放有 9 个磁道的信息,即个磁道的信息,即每一横排有每一横排有 9 位二进制信位二进制信息息:8 位数据加位数据加 1 位奇偶校验位。位奇偶校验位。磁带的存储密度用磁带的存储密度用 BPI(Bit Per Inch)为单位,为单位,典型的存储密度有典型的存储密度有 3 种:种:6250BPI(=246排排/mm)、)、1600BPI(=64排排/mm)、)、800BPI(32排排/mm)。正常走带速度为)。正常走带速度为35m/Sec,因设备而异。因设备而异。4数据的传送速度数据的传送速度=存储密度存储密度 走带速度走带速度。在应用中使用文件进行数据处理的基本
4、单位叫在应用中使用文件进行数据处理的基本单位叫做做逻辑记录逻辑记录,简称为记录;在磁带上物理地存,简称为记录;在磁带上物理地存储的记录叫做储的记录叫做物理记录物理记录。在使用磁带或磁盘存放逻辑记录时,常常把在使用磁带或磁盘存放逻辑记录时,常常把若若干个逻辑记录打包干个逻辑记录打包进行存放,把这个过程叫做进行存放,把这个过程叫做“块化块化”(blocking)。经过块化处理的物理)。经过块化处理的物理记录叫做记录叫做块化记录块化记录。磁带设备是一种启停设备。磁带每次启停都有磁带设备是一种启停设备。磁带每次启停都有一个加速与减速的过程,在这段时间内走带不一个加速与减速的过程,在这段时间内走带不5稳
5、定,只能走空带,这段空带叫做稳定,只能走空带,这段空带叫做记录间间隙记录间间隙IRG(Inter Record Gap)或者)或者块间间隙块间间隙IBG(Inter Block Gap),其长度因设备而异。),其长度因设备而异。6磁带速度磁带速度75-200英寸英寸/秒秒传输速度传输速度7000-1250000字字/秒秒1.5-16ms1.5-16ms定速定速加速加速IBG0.30.75英寸英寸减速减速物理记录物理记录启动位置启动位置IBG0.30.75英寸英寸停止位置停止位置传输开始传输开始传输完成传输完成经过时间经过时间如果每个逻辑记录是如果每个逻辑记录是 80个字符个字符,IRG为为 0
6、.75英英寸寸,则对存储密度为,则对存储密度为 1600BPI 的磁带,一个的磁带,一个逻辑记录仅占逻辑记录仅占 80/1600=0.05英寸英寸。每传输一。每传输一个逻辑记录磁带走过个逻辑记录磁带走过 0.05英寸英寸,接着磁带要走,接着磁带要走过一个过一个IRG占占0.75英寸英寸。结果大部分时间都花。结果大部分时间都花费在走空带上,费在走空带上,存储利用率只有存储利用率只有1/16。如果将若干逻辑记录存放于一个块,将如果将若干逻辑记录存放于一个块,将IRG变变成成IBG,可以提高存储利用率。例如,将,可以提高存储利用率。例如,将50个个有有80个字符的逻辑记录放在一个块内,此块的个字符的
7、逻辑记录放在一个块内,此块的长度将达到长度将达到50 80/1600=2.5英寸,存储利用率英寸,存储利用率达到达到0.77。因此在磁带上采用。因此在磁带上采用按块读写按块读写。7在磁带设备上读写一块信息所用时间在磁带设备上读写一块信息所用时间tIO=ta+tb其中,其中,ta 是是延迟时间延迟时间,即读写磁头到达待读写,即读写磁头到达待读写块开始位置所需花费的时间,它与当前读写磁块开始位置所需花费的时间,它与当前读写磁头所在位置有关。头所在位置有关。tb是对一个块进行是对一个块进行读写所用读写所用时间时间,它等于数据传输时间加上,它等于数据传输时间加上IBG时间。时间。磁带设备只能用于处理变
8、化少,只进行磁带设备只能用于处理变化少,只进行顺序存顺序存取取的大量数据。的大量数据。8磁盘(磁盘(discdisc)磁盘存储器通常称为磁盘存储器通常称为直接存取设备直接存取设备,或,或随机存随机存取设备取设备,它访问外存上文件的任一记录的时间,它访问外存上文件的任一记录的时间几乎相同。几乎相同。磁盘存储器可以磁盘存储器可以顺序存取顺序存取,也可以,也可以随机存取随机存取。目前使用较多的是目前使用较多的是活动臂硬盘组活动臂硬盘组:若干盘片构:若干盘片构成磁盘组,它们安装在主轴上,在驱动装置的成磁盘组,它们安装在主轴上,在驱动装置的控制下高速旋转。除了最上面一个盘片和最下控制下高速旋转。除了最上
9、面一个盘片和最下面一个盘片的外侧盘面不用以外,其他每个盘面一个盘片的外侧盘面不用以外,其他每个盘片上下两面都可存放数据。将这些可存放数据片上下两面都可存放数据。将这些可存放数据的盘面称为的盘面称为记录盘面记录盘面。910主轴主轴盘片盘片活动臂活动臂(回转臂)(回转臂)读写磁头读写磁头磁道磁道柱面柱面每个记录盘面上有很多每个记录盘面上有很多磁道磁道,数据就存放在这,数据就存放在这些磁道上。它们在记录盘面上形成一个个同心些磁道上。它们在记录盘面上形成一个个同心圆。圆。每个记录盘面都有一个读写磁头。所有记录盘每个记录盘面都有一个读写磁头。所有记录盘面的读写磁头都安装在同一个动臂上,随动臂面的读写磁头
10、都安装在同一个动臂上,随动臂向内或向外做径向移动,从一个磁道移到另一向内或向外做径向移动,从一个磁道移到另一个磁道。个磁道。任一时刻,所有记录盘面的读写磁头停留在各任一时刻,所有记录盘面的读写磁头停留在各个记录盘面的个记录盘面的半径相同半径相同的磁道上。运行时,由的磁道上。运行时,由于盘面做高速旋转,磁头所在的磁道上的数据于盘面做高速旋转,磁头所在的磁道上的数据相继在磁头下,从而可以读写数据相继在磁头下,从而可以读写数据。11各个记录盘面上半径相同的磁道合在一起称各个记录盘面上半径相同的磁道合在一起称为为柱面柱面。动臂的移动实际上是将磁头从一个。动臂的移动实际上是将磁头从一个柱面移动到另一个柱
11、面上。柱面移动到另一个柱面上。一个一个磁道磁道可以划分为若干段,称为可以划分为若干段,称为扇区扇区,一,一个扇区就是一次读写的最小数据量。这样,个扇区就是一次读写的最小数据量。这样,对磁盘存储器来说,从大到小的存储单位是:对磁盘存储器来说,从大到小的存储单位是:盘片组、柱面、磁道和扇区盘片组、柱面、磁道和扇区。对磁盘存储器进行对磁盘存储器进行一次存取所需时间一次存取所需时间:1.当有多个盘片组时,要选定某个盘片组。当有多个盘片组时,要选定某个盘片组。这是由电子线路实现的,速度很快。这是由电子线路实现的,速度很快。122.选定盘片组后再选定某个柱面,并移动动选定盘片组后再选定某个柱面,并移动动臂
12、把磁头移到此柱面上。这是臂把磁头移到此柱面上。这是机械动作机械动作,速度较慢。这称为速度较慢。这称为“寻查寻查(seek)”。3.选定柱面后,要进一步确定磁道,即确定选定柱面后,要进一步确定磁道,即确定由哪个读写磁头读写,由电子线路实现。由哪个读写磁头读写,由电子线路实现。4.确定磁道后,还要确定所要读写数据在磁确定磁道后,还要确定所要读写数据在磁盘上的位置(如在哪一个扇区)。这实际盘上的位置(如在哪一个扇区)。这实际上就是在等待要读写的扇区转到读写磁头上就是在等待要读写的扇区转到读写磁头下面。这是下面。这是机械动作机械动作。这段时间一般称为。这段时间一般称为旋转延迟(旋转延迟(rotatio
13、nal delay)时间)时间。5.真正进行读写时间。真正进行读写时间。13在磁盘组上一次读写的时间主要为:在磁盘组上一次读写的时间主要为:tiotseektlatencytrw其中,其中,tseek是是平均寻查时间平均寻查时间,是把磁头定位到,是把磁头定位到要求柱面所需时间,这个时间的长短取决于磁要求柱面所需时间,这个时间的长短取决于磁头移过的柱面数。头移过的柱面数。tlatency是是平均等待时间平均等待时间,是,是将磁头定位到指定块所需时间。将磁头定位到指定块所需时间。trw是传送一个是传送一个扇区数据所需的时间。扇区数据所需的时间。在在MS-DOS系统中,多个扇区集结成组,称为系统中,
14、多个扇区集结成组,称为簇簇。簇是文件分配的最小单位,其大小由操作。簇是文件分配的最小单位,其大小由操作系统决定。在系统决定。在UNIX系统中不使用簇,文件分系统中不使用簇,文件分配的最小单位和读写的最小单位是一个扇区,配的最小单位和读写的最小单位是一个扇区,称为一个称为一个块块(block)。)。14缓冲区(缓冲区(bufferbuffer)磁盘一次读写操作访问一个扇区,称为访问磁盘一次读写操作访问一个扇区,称为访问“一页一页”(page)或)或“一块一块”(block),又),又称为称为“一次访外一次访外”。为了实施磁盘读写操作,在为了实施磁盘读写操作,在内存中内存中需要开辟一需要开辟一些区
15、域,用以存放需要从磁盘读入的信息,或些区域,用以存放需要从磁盘读入的信息,或存放需要写出的信息。这些内存区域称为存放需要写出的信息。这些内存区域称为缓冲缓冲区区。多数操作系统至少设置两个缓冲区,一个多数操作系统至少设置两个缓冲区,一个为为输入缓冲区输入缓冲区,一个为,一个为输出缓冲区输出缓冲区。15例如,在从磁盘向内存读入一个扇区的数据时,例如,在从磁盘向内存读入一个扇区的数据时,数据被存放到输入缓冲区,如果下次需要读入数据被存放到输入缓冲区,如果下次需要读入同一个扇区的数据,就可以直接从缓冲区中读同一个扇区的数据,就可以直接从缓冲区中读取数据,不需要重新读盘。取数据,不需要重新读盘。缓冲区大
16、小应缓冲区大小应与操作系统一次读写的块与操作系统一次读写的块的的大小大小相适应相适应,这样可以通过操作系统一次读写把信,这样可以通过操作系统一次读写把信息全部存入缓冲区中,或把缓冲区中的信息全息全部存入缓冲区中,或把缓冲区中的信息全部写出到磁盘。部写出到磁盘。如果缓冲区大小与磁盘上的块大小不适配,就如果缓冲区大小与磁盘上的块大小不适配,就会造成存储空间的浪费。会造成存储空间的浪费。缓冲区的构造可以看作一个先进先出的缓冲区的构造可以看作一个先进先出的队列队列。16缓冲区的定义及其操作缓冲区的定义及其操作#include#include const int DefaultSize=2048;tem
17、plate struct buffer T*data;/缓冲区数组 int current,maxSize;/当前指针,缓冲区容量buffer(int sz=DefaultSize):maxSize(sz),current(0)data=new Tsz;assert(data!=NULL);buffer()delete data;17 void OutputInfo(ostream&out,T x);/缓冲区输出 void InputInfo(istream&in,T&x);/缓冲区输入;template void buffer:OutputInfo(ostream&out,T x)if(cu
18、rrent=maxSize)for(int i=0;i maxSize;i+)out datai;current=0;datacurrent=x;current+;18template void buffer:InputInfo(istream&in,T&x)if(current maxSize)x=datacurrent;current+;else for(int i=0;i datai;current=0;19文件组织文件组织什么是文件什么是文件u文件是存储在外存上的数据结构,一般是在逻文件是存储在外存上的数据结构,一般是在逻辑上具有完整意义的一组相关信息项的有序序辑上具有完整意义的一组相
19、关信息项的有序序列。列。u文件分操作系统文件和数据库文件文件分操作系统文件和数据库文件 操作系统中的文件是流式文件:是没有结操作系统中的文件是流式文件:是没有结构的字符流构的字符流 数据库文件是具有结构的数据集合数据库文件是具有结构的数据集合u数据结构中讨论的是数据库文件。数据结构中讨论的是数据库文件。操作系统对文件是按操作系统对文件是按物理记录物理记录读写的,在数据库读写的,在数据库中文件按中文件按页块页块存储和读写。存储和读写。20文件的基本概念文件的基本概念文件的组成文件的组成文件文件由由记录记录组成;组成;记录记录由若干由若干数据项数据项组成。组成。记录是文件存取的基本单位,数据项是文
20、件可记录是文件存取的基本单位,数据项是文件可使用的最小单位。使用的最小单位。从不同的观点,文件记录分为从不同的观点,文件记录分为逻辑记录逻辑记录和和物理物理记录记录。前者是面向用户的基本存取单位,后者。前者是面向用户的基本存取单位,后者是面向外设的基本存取单位。是面向外设的基本存取单位。能够唯一标识一个记录的数据项或数据项集称能够唯一标识一个记录的数据项或数据项集称为为主关键码项主关键码项,其值称为,其值称为主关键码主关键码;不唯一标识一个记录的数据项或数据项集称为不唯一标识一个记录的数据项或数据项集称为次关键码项次关键码项,其值称为,其值称为次关键码次关键码。21文件结构包括文件的文件结构包
21、括文件的逻辑结构逻辑结构、文件的、文件的存储结存储结构构和文件的和文件的操作操作。文件的逻辑结构是文件的逻辑结构是线性结构线性结构,各个记录以线性,各个记录以线性方式排列。方式排列。文件的文件的存储结构存储结构是指文件在外存上的组织方式,是指文件在外存上的组织方式,它与文件特性有关。它与文件特性有关。u 顺序组织顺序组织u直接存取组织(散列组织)直接存取组织(散列组织)u索引组织索引组织文件的操作是文件的操作是定义在逻辑结构上定义在逻辑结构上的,但操作的的,但操作的具体实现具体实现要在要在存储结构存储结构上进行。上进行。22评价一个文件组织的效率评价一个文件组织的效率u执行文件操作所花费的时间
22、执行文件操作所花费的时间u文件组织所需要的空间。文件组织所需要的空间。23文件的操作文件的操作检索检索维护维护简单查询简单查询范围查询范围查询函数查询函数查询布尔查询布尔查询插入插入删除删除修改修改重构重构恢复恢复顺序文件顺序文件 (Sequential File)(Sequential File)顺序文件中的记录按它们进入文件的先后顺序顺序文件中的记录按它们进入文件的先后顺序存放,其存放,其逻辑顺序与物理顺序一致逻辑顺序与物理顺序一致。如果文件的记录按主关键码有序,则称其为如果文件的记录按主关键码有序,则称其为顺顺序有序文件序有序文件,否则称其为,否则称其为顺序无序文件顺序无序文件。顺序文件
23、通常存放在顺序存取设备(如磁带)顺序文件通常存放在顺序存取设备(如磁带)上或直接存取设备(如磁盘)上。上或直接存取设备(如磁盘)上。当存放在顺序存取设备上时只能按顺序搜索法当存放在顺序存取设备上时只能按顺序搜索法存取;当存放在直接存取设备上时,可以使用存取;当存放在直接存取设备上时,可以使用顺序搜索法、折半搜索法等存取。顺序搜索法、折半搜索法等存取。24顺序文件的存储方式顺序文件的存储方式1.连续文件连续文件:文件的全部记录顺序地存放于:文件的全部记录顺序地存放于外存的一个连续的区域中。优点是存取速外存的一个连续的区域中。优点是存取速度快、存储利用率高、处理简单。缺点是度快、存储利用率高、处理
24、简单。缺点是区域大小需事先定义,不能扩充。区域大小需事先定义,不能扩充。2.串联文件串联文件:文件记录成块存放于外存中,:文件记录成块存放于外存中,在块中记录顺序连续存放,但在块中记录顺序连续存放,但块与块之间块与块之间可以不连续可以不连续,通过块链指针顺序链接。优,通过块链指针顺序链接。优点是文件可以扩充、存储利用率高。缺点点是文件可以扩充、存储利用率高。缺点是影响了存取是影响了存取和修改的效率。和修改的效率。25直接存取文件直接存取文件 (Direct Access File)(Direct Access File)又叫又叫散列文件。散列文件。利用散列技术组织文件。处理利用散列技术组织文件
25、。处理类似散列法,但它是存储在外存上的。类似散列法,但它是存储在外存上的。文件记录的文件记录的逻辑顺序与物理顺序不一定相同逻辑顺序与物理顺序不一定相同。通过记录的通过记录的关键码关键码可直接确定该记录的地址。可直接确定该记录的地址。使用使用散列函数散列函数把关键码集合映射到地址集合时,把关键码集合映射到地址集合时,往往会产生地址冲突,处理冲突有两种处理方往往会产生地址冲突,处理冲突有两种处理方式:式:u按桶散列按桶散列u可扩充散列可扩充散列 26(1)(1)按桶散列按桶散列文件中的记录成组存放,若干个记录组成一个文件中的记录成组存放,若干个记录组成一个存储单位,称之为存储单位,称之为桶桶。假若
展开阅读全文