第10章 文件 10.1 文件的基本概念 10.2 顺序文件 10.3 索引文件 10.4 散列文件 10.5 多关键字文件.

Slides:



Advertisements
Similar presentations
東元綜合醫院 主講人:醫事課 課長 張桂瑛 醫管處醫事課 新人教育訓練課程 -批價作業.
Advertisements

出入库作业实务 项目一:走进自动化立体仓库.
代理商入件流程.
第三课 金字塔与古埃及文明 第三课 金字塔与古埃及文明深圳市翠园中学孙曙光.
會計學 第四版 第十章 投 資 10-1 金融商品概述 10-2 股票投資 10-3 債券投資 10-4 長期股權投資
案例分析 ——中交集团的设立的思考.
專題研究 第一講 教育研究模式 第二講 專題計畫書之擬定及研究主題選擇 第三講 實驗法 第四講 測驗法 第五講 問卷調查法
信息检索中效率问题的研究 报告人:赵江华 北京大学计算机科学与技术系 网络与分布式系统实验室 2002年4月21日.
資料結構 第9章 搜尋.
如何定义和确定参考区间 郭健 卫生部北京医院.
现场调查报告的撰写.
第二章 餐饮组织结构设计.
SPSS统计软件的使用方法基础 主讲人:宋振世 (闵行校区) 电 话:
多元評量與評量案例分享 Multiple assessment
第六章 会计报表编制前 的准备工作 期末账项的调整 财产清查 资产期末计价.
大型机系统管理 刘 玓
青岛市数字证书认证中心 2011年4月.
房地合一新制介紹 (含本法及申報作業要點) 財政部南區國稅局澎湖分局
项目七、在线投票模块的实现 南京高等职业技术学校 邱敏 专业:电子商务专业 课程:电子商务网站建设.
乙檢直通車 推廣小組:台科大圖書 報告人:孫婉倩.
教育部教育管理信息中心 教育卡标准化研究所 二00九年七月
维护表 上机.
在 线 考 试 系 统 的 设 计 学 生: 班 级: 指导老师:.
企业经营管理基础 模块一 企业组织结构概述 模块二 采购管理 模块三 生产管理 模块四 销售管理 模块五 仓储管理 模块六 人力资源管理
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
大学计算机应用基础 信息学院信息技术教学部.
第7章 表單的使用介面 7-1 表單的基礎 7-2 使用精靈建立表單 7-3 表單視窗的檢視模式 7-4 表單的基本使用
利用共同供應契約 辦理大量訂購流程說明.
通过外网访问邮件系统的说明 信息中心.
作業系統 第十三章 檔案系統實例.
資料庫結構與組織.
網路點名系統 致遠管理學院網路通訊學系 張逸中 2007/6/22.
Windows 2012 Dynamic Access Control (動態存取控管)
Course 4 搜尋 Search.
第 10 章 生產管理 授課教師:__________ 工業工程與管理概論 陳潭,洪堯勳,姚銘忠,黃欽印 著 前程文化出版.
計算機概論 第十章 檔案與資料庫管理系統 陳維魁/陳邦治 旗標出版社.
Access & MySQL 主從式資料庫系統設計實務 作者:盧坤勇 主從式資料庫系統 - 大綱.
ANOVA簡介 許晉誠
第三章 儲存空間的配置.
第三章 結構化程式設計 授課老師:___________.
数据结构 -Maple Related- 牟克典 数学科学学院信息科学系 2012秋季 1/16/2019.
B+ Tree.
CICS和DB2应用结合 引入CICS API和CICS MAP的嵌入式COBOL程序完整示例
财政部上海证券交易所 国债发行招投标系统功能介绍
圖書館利用1-1 學校圖書館資源與服務 教育部增置國中圖書教師輔導與教育訓練計畫 圖書資訊利用教育課程綱要及教案設計小組(國中組)
随易通服务简介及常见问题
關鍵數據 數據錯了 扣 50分 排序錯了 扣50分.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
作業系統 Operating System 第四單元 檔案系統
如何將臺大圖書館館藏目錄 加入Connection File
第十二章 文件管理 (Chapter 5 File Management)
貝氏刷牙法 (Bass Method) 外埔國小.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
6-1 燃油系統工作原理 6-2 汽油濾清器更換 6-3 汽油泵檢查與更換
圖書館利用1-5 OPAC系統檢索與應用 教育部增置國中圖書教師輔導與教育訓練計畫 圖書資訊利用教育課程綱要及教案設計小組(國中組)
教育部特殊教育通報網 學生異動、接收操作說明.
第一週 音樂的元素.
轉換 Quick Time 的視訊格式 雖然網頁上可支援播放AVI的視訊檔,但由於檔案容量相
第五章 資訊安全概述 5-1 安全定義 5-2 安全標準 5-3 安全元件.
進貨管理介接更動 有關「匯入進貨資料」傳,請注意「上游業者出貨單號」,上游業者出貨單號要配合「匯出上游出貨資料」中的「出貨單號」或是「自有系統上傳的出貨單號」。 Ø  若「自有系統上傳的出貨單號」有值,則「匯入進貨資料」中的「上游業者出貨單號」就要key入「匯出上游出貨資料」中的「自有系統上傳的出貨單號」。
基于位置感知和负载均衡 MapReduce的Join算法优化 汇报人:黄梓铭 厦大数据库实验室
辦公室固體廢物對環境有什麼影響? 第三組.
第三章 系統與資料庫檔案設計.
朱中華 2011/12/14 建立關聯式報表.
熟悉VC++开发环境.
银川社保网上申报 宁夏人力资源和社会保障 网上服务大厅操作
CDMA.
姓名:林鳳珍 小名:阿Key 身高:160 體重:65 年齡:23
PIXAR 皮克斯動畫工作室 極致力+整合力.
Presentation transcript:

第10章 文件 10.1 文件的基本概念 10.2 顺序文件 10.3 索引文件 10.4 散列文件 10.5 多关键字文件

第10章 文件 文件(Files)是大量记录的有序集合,它对应一个二维表,表的每一行为一个记录,每一列为一个数据项。一般称存储在内存中的记录集合称为表,而称存储在外存储器中的记录集合为文件。文件中的记录是按某一种确定的次序线性排列,所以文件的逻辑结构是线性结构。本章主要介绍文件的概念和几种基本的数据文件的构造方法及其使用讨论文件在外存储器中的表示及其操作的实现。

10.1 文件的基本概念 1、文件的概念 文件是由大量性质相同的记录组成的集合;二者的区别在于线性表是把记录全部组织在内存储器中,而文件则是把大量记录都组织在外存储器中。 2、文件分类 按照记录的类型,可以把文件分为操作系统文件和数据库文件两大类。 按照记录的长度特性,可以把文件分为定长记录文件和不定长记录文件。定长记录文件中每个记录含有的信息长度相同,而不定长记录文件中每个记录含有的信息长度不等。 按照记录中关键字的多少,可以把文件分为单关键字文件和多关键字文件。单关键字文件中的记录只有一个惟一标识记录的主关键字;而多关键字文件中的记录除了主关键字外,还含有一个或多个次关键字,记录中所有非关键字的数据项称作记录的属性。

3、逻辑结构和物理结构 逻辑结构是指记录在用户或应用程序员面前呈现的方式,是用户对数据的表示和存取方式;用户所读写的记录是指逻辑记录。记录的物理结构是数据在物理存储器上存储的方式,是数据的物理表示和组织方式。一个物理记录可以存放一个或多个逻辑记录,多个物理记录可以表示一个逻辑记录。用户读写的是逻辑记录,检索其对应的物理记录是操作系统的职责。 文件组织方式(即物理结构)有顺序组织、随机组织和链式组织等基本方式。

4、文件的操作 一般的,文件的操作有检索、修改和排序三类 。检索的方式有三种:①顺序检索;②按记录号检索;③按关键字检索。修改操作包括插入、删除和更新一个记录这三种操作。排序操作则是为了检索方便高效对文件中记录的重新有序整理。 另外,文件的操作也可以有实时和批处理两种不同的方式。实时处理通常对应答时间要求严格,应在接收询问后立即完成相应的操作;而批处理则不同,可以根据需要对积累一段时间的记录进行成批处理。

10.2 顺序文件 顺序文件是把记录按建立文件时的逻辑顺序依次存放在外存储器中,文件中的物理记录顺序和逻辑记录顺序一致。若次序相继的两个物理记录在存储器上的存储位置是相邻的,则又称为连续文件;若物理记录之间的次序由指针链接,则称为串联文件。 顺序文件的优点是连续存取速度快,主要用于顺序存取和批量修改的情况。若对应答时间要求不严格时亦可进行直接存取。 在对顺序文件作修改时,可对原文件中的记录复制一遍,并在复制的过程中插入新的记录、跳过待删除的记录、或用修改过的新记录代替原记录。为了修改方便起见,要求待修改文件按关键字有序(对非数据库文件可将逻辑记录号作为关键字)。 磁带是一种典型的顺序存取设备,存储在磁带上的文件就是顺序文件。对磁盘上的顺序文件进行修改时,若不增加记录的长度,也可在原文件上直接修改而不必复制文件。 对顺序文件进行顺序检索的方法类似于静态表的顺序检索,也可以对磁盘文件进行分块检索或二分法检索。

10.3 索引文件 索引文件是指具有索引存储结构的文件。简单的文件包含一个主文件和一个索引表,主文件是原有数据文件的顺序存储或链接存储的文件,而索引表是在主文件的基础上建立的顺序表,索引表中的每个索引项同文件中的每个记录一一对应,每个索引项由对应记录的关键字和存储该记录的首地址组成,而且无论主文件是否按关键字有序,索引表将组织成按关键字有序,即除了主文件(即数据文件)之外,再建立一张索引表来指示逻辑记录和物理记录之间的一一对应关系;索引表中的每一项称作索引项,由记录的关键字和记录的存放地址构成;把索引表和主文件总称为索引文件(Indexed File)。 在索引文件中,若主文件也按关键字升序排列,则构成的索引文件称作索引顺序文件;若主文件是无序的,则称所构造的索引文件为索引非顺序文件。索引文件只适用于直接存取的外存储器(如磁盘)。索引文件的存储分索引区和数据区来进行,索引区存放索引表,数据区存放主文件。在输入记录建立数据区的同时建立索引表,表中的索引项按记录输入的先后次序排列;待全部记录输入完毕后再对索引表按关键字排序,排序后的索引表和主文件一起构成了索引文件,如图10.1所示。

物理地址 职工号 姓名 其它 关键字 101 352 张三 · 201 007 113 103 058 李四 105 285 王五 202 148 115 107 184 赵六 109 397 马七 203 219 111 杨八 侯九 204 朱十 (a) 主文件(数据区) (b) 索引区(排序前) (c) 索引表(排序后) 图10.1 索引非顺序文件示例

索引文件的检索,应先在索引表中检索。若在索引表中检索到关键字值等于给定值的索引项,则按索引项指示从外部存储器读取该记录;否则,说明待检索记录不存在无需访问外存储器。当主文件中记录数目很大时,可对索引表再次建立二级索引;检索时先在二级索引中找,再检索索引表,然后读取记录。索引表和二级索引表都是有序表,在内存储器中可用检索效率较高的方法如二分法检索方法进行检索。 多级索引是一种静态索引,为顺序表结构,虽然结构简单,但修改很不方便,每次修改都要重组索引,所以,当主文件在使用过程中记录变动比较多时,应采用树表结构的动态索引,如二叉排序树、B-树、键树等,以便于插入、删除等。

10.3.1 ISAM文件 ISAM(Indexed Sequential Access Method)即索引顺序存取方法,是一种专为磁盘存取设计的文件组织方式。如图10.2所示为存放在一个磁盘组上的ISAM文件。 在ISAM文件上检索记录时,先从主索引出发检索到相应的柱面索引,然后从柱面索引检索到记录所在柱面的磁道索引,最后从磁道索引检索到记录所在磁道的第一个记录的位置,由此出发在该磁道上进行顺序查找直至检索到为止;反之,若检索遍磁道而不存在此记录,则表明文件中无此记录。 由于ISAM文件中记录是按关键字顺序存放的,在插入一个记录时需要向后移动记录,并将同一磁道上的最后一个记录移至溢出区,同时修改磁道索引项。ISAM文件的插入和溢出处理如图10.3所示。 ISAM文件中删除记录比较简单,只需作删除标记而不用移动记录或改变指针。当然应该周期性地把记录读入内存重排整理ISAM文件,以尽量填满基本区而空出溢出区。

10.3.2 VSAM文件 VSAM(Virtual Storage Access Method)即虚拟存储存取方法。它使用户只需考虑控制区间等逻辑存储单位,而无需考虑其物理位置以及何时对外存储器进行读写操作,给用户使用文件提供了方便。 VSAM文件的结构由索引集、顺序集和数据集三部分组成,如图10.4所示。数据集存放文件的所有记录,顺序集和索引集构成一棵B+树是文件的索引部分。数据集中的一个结点称为控制区间(Control Interval)。顺序集中的一个结点,存放着若干相邻控制区间的索引项,每个索引项由控制区间中的最大关键字和指向该控制区间的指针组成。顺序集中的一个结点连同其下层所有控制区间形成的整体称作控制区域(Control Range)。顺序集中的结点之间用指针相链接,在它们上层的结点又以它们为基础形成索引,并逐级向上建立索引,形成B+树的非终端结点。

对VSAM文件中记录的检索,既可从最高层的索引逐层往下按关键字进行检索,又可在顺序集中沿着指针链顺序检索。 VSAM文件没有专门的溢出区,但可以利用控制区间中的空隙或控制区域中的空控制区间来插入记录(即在B+树上插入记录)。而在VSAM文件中删除记录时,也需移动记录。 VSAM文件占有较多的存储空间,然而它具有许多优点,如动态地分配和释放存储空间,无需像ISAM文件那样定期重排文件,并能较快地执行插入操作和保持较高的检索效率。 VSAM文件通常作为组织大型索引顺序文件的标准形式。

10.4 散列文件 散列文件(Hash File)也称作直接存取文件,它是利用哈希方法组织的数据文件;即根据某个哈希函数和一定的冲突消解策略而得到的存放在外存储器上的散列表。 磁盘上的文件的若干个记录组成一个存储单位,在散列文件中这个存储单位称作桶。一个桶能存放的逻辑记录的总数称作桶的容量。假如桶的容量为m,即m个同义词的记录可以存放在同一地址的桶中,当第m+1个同义词记录出现时则发生溢出。处理溢出也可采用哈希表中的各种处理冲突的方法,但对散列文件主要是采用链地址法消解冲突。 当发生溢出时,需要将第m+1个同义词存放到另一个桶中,通常称作“溢出桶”;相应地把存放前m个同义词的桶称作“基桶”。溢出桶可以有多个,它们和基桶大小相同,相互之间用指针相链接。当在基桶中没有检索到待查记录时,就顺指针所指到溢出桶中去检索。 例如,某一个文件有个记录,其关键字分别为28,19,13,93,89,14,55,69,8,9,16,21,33,81,62,l1,15,34,35,用除留余数法作哈希函数H(key)=key %7,桶的容量m=3,基本桶数=7,由此得到的散列文件如图10.5所示。

在散列文件中检索时,先根据给定的关键字值k求得哈希地址即基桶号,然后将基桶的记录读入内存进行顺序检索,若找到关键字值为k的记录则检索成功;若基桶中虽无关键字值为k的记录但指针域非空,需要把溢出桶中的记录读入内存继续检索,直到检索成功或检索失败。若基桶内没有填满记录即虽有溢出桶但仍未找到关键字为k的记录或其指针域为空(即无溢出桶),则文件内不含有待检索记录,即检索失败。 在散列文件中,删除记录时仅需对被删除记录作一个删除标记即可。 散列文件具有插入、删除方便,存取速度比索引文件要快;不需要索引区,节省存储空间等优点;但它也具有以下缺点:不能进行顺序存取,只能按关键字随机存取,且询问方式只有简单询问;并且在经过多次的插入、删除之后,也可能造成溢出桶满而基桶内多数为被删除记录的不合理文件结构,也可能造成文件结构不合理,即溢出桶满而基桶内多数为被删除的记录,此时亦需对文件进行重新整理。

10.5 多关键字文件 多关键字文件(Multiple Key File)的特点是,在对文件进行检索操作时不仅对主关键字进行简单询问,还经常需要对次关键字进行其它类型的询问检索。因此,对多关键字文件还需要建立一系列的次关键字索引。次关键字索引和主关键字索引所不同的是,每个索引项应包含次关键字和具有同一次关键字的多个记录的主关键字或物理记录号。多重表文件和倒排文件是常见的两种多关键字文件的组织方法。 多重表文件(Multilist File)的特点是,记录按主关键字的顺序构成一个串联文件,并建立主关键字索引(称为主索引);对每一个次关键字项建立次关键字索引(称为次索引),所有具有同一次关键字的记录构成一个链表。主索引为非稠密索引,一组记录建立一个索引项;次索引为稠密索引,每个记录建立一个索引项,每个索引项包括次关键字、头指针和链表长度。

例如,图10. 6所示为一个多重表文件。对工号非稠密索引分成三个子链表,其索引如图10 例如,图10.6所示为一个多重表文件。对工号非稠密索引分成三个子链表,其索引如图10.6(b)所示,索引项中的主关键字为各组中关键字的最大值。职称和专业是两个次关键字项,其索引分别如图10.6(c)和(d)所示,具有相同次关键字值的记录链接在同一链表中。有了这些次关键字索引,根据关键字值找到链表头指针,然后从头指针出发可列出链表中所有记录。 在多重表文件中可以很容易地插入一个新记录是,只要修改指针,将记录插在链表的头指针之后即可。但是,要删去一个记录却很繁琐,需要在每个次关键字的链表中删去该记录。 倒排文件(inverted file)和多重表文件的区别在于次关键字索引的结构不同。倒排文件的次关键字索引称为倒排表,在倒排表的索引项中没有头指针和链长度,而是直接用一个项存放具有同一关键字的所有记录的物理记录号或主关键字值。如图10.7所示为上例中的倒排表。

在倒排文件中可以较快地检索记录,特别是在检索多个次关键字的情况时。在处理各种次关键字的查询时,只要在次关键字索引中检索出有关的指针集合,再对这些指针集合进行交、并、差等逻辑运算,就可求出符合查询条件的记录指针,然后按指针到外存去存取记录。 在插入和删除记录时,倒排表也要进行相应修改;需要移动索引项中记录号以保持其有序排列。若数据文件是索引顺序文件(如ISAM文件),倒排表中应存放记录的主关键字而不是物理记录号。 倒排文件的缺点是维护困难。同一倒排表中各项长度不同,不同倒排表的长度也不同,这些都给倒排文件的维护带来一定的困难,而且倒排表需要额外存储空间。