Chap6.1~6.3.文件组织及数据存储_2013.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 可以看成是只有一个记录的记录式文件。 * * ?记录键 主键,次键 单键记录,多键记录 * 连接结构的特点是使用连接字,又叫指针来表示文件中各个记录之间的关系。如图6-4所示,文件信息存放在磁盘的若干个物理块中,第一块文件信息的物理地址由文件FCB给出,而每块的连接字指出文件的下一个物理块位置,通常,连接字内容为0时,表示文件至本块结束。 * 3 直接文件(哈希文件)(1) 记录的关键字与其地址间可通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。 hash技术要建立hash表,hash表是一个指针数组,数组通过索引访问,找到的指针便指向数据记录。索引是与数据记录有关的关键字或其变换, * 直接文件(哈希文件)(2) 步1 构造转换(hash)函数 假定有一个文件系统,采用hash法来管理FCB,以便加快文件目录的查找过程,下面来讨论hash文件的设计过程 设文件名为8个ASCⅡ字符。构造的hash函数为模2加“⊕”,求已知文件名的ASCⅡ字符值的模2加值作为该文件的FCB所在物理块在目录文件中的索引A,那么, A= (a1⊕a2⊕…⊕a8) * 直接文件(哈希文件)(3) 步2 建立目录文件(2) 目录文件采用索引结构,建立文件时由步1求出文件名的hash值A, 凡A值相同的文件的FCB都存放在同一个物理块。磁盘的物理块号存放在索引表中的相对位置应等于A值。 * 直接文件(哈希文件)(4) 步2 建立目录文件(2) 目录文件 A=10 26号物理块 file1文件控制块 file2文件控制块 0 10 26 * 直接文件(哈希文件)(5) 步3 查找文件 根据给定文件名,由步1算出该文件的FCB所在物理块号在索引表中的相对位置A。根据A就可找到该FCB所在物理块号, 把这个物理块读入主存缓冲区,用文件名逐个比较,找出要求的FCB。 * 直接文件(哈希文件)(6) 步4 溢出处理 物理块中存放的FCB是有限的,建立目录文件时,如果A值相同的文件数目超过物理块能容纳数时,产生溢出。 溢出时,系统再申请一个盘区,该区物理块号放在A+k的索引表目中,k是质数作为位移常数。 第二块盘区也溢出,则申请第三块,块号放在A+2×k表目中,依此类推。 查找目录时,如第一块找不到可找A+k表目中的物理块号,读出后继续比较,依次类推。 * 4 索引文件(1) 索引结构是实现非连续存储的另一种方法,适用于数据记录保存有随机存取存储设备上的文件。 使用索引表,每个表目包含一个记录的键及其记录数据的存储地址,这类文件称索引文件。 * 索引文件(2) … 盘块号 … 文件 控制块 (a)无键索 引表 块 块 块 两种索引文件 结构示意图 … Key 1 记录键 盘块号 Key 2 … … Key N 块 块 块 (b)有键索引表 文件 控制块 * 索引文件(3) 索引顺序文件 索引顺序文件是顺序文件的扩展,各记录本身在介质上也顺序排列,有直接处理和修改记录的能力。 索引顺序文件能象顺序文件一样进行快速顺序处理,既允许按物理存放次序(记录出现的次序);也允许按逻辑顺序(由记录主键决定的次序)进行处理。 二级索引。二级索引表的表项列出一级索引表每一块最后一个索引项的键值及该索引表区的地址,若干个记录的索引本身也是一种记录。查找时先查看二级索引表找到某键所在的索引表区地址,再搜索一级索引表找出数据记录。 三级索引。 * 顺序文件 vs 索引文件 例子: 考虑一个包含100万记录的顺序文件,为查找某一特定的关键域值,平均需要访问50万次记录。现在假设创建一个包含了1000项的索引,索引中的关键域或多或少均匀分布在文件中,为找到这条记录,平均只需要在索引文件中进行500次访问,接着在主文件中进行500次访问。搜索的开销从500 000减少到1000。 * 顺序文件 vs 索引文件 例子: 为提供更有效的访问,可以使用多级索引。最低一级的索引文件看做是顺序文件,然后为该文件创建高一级的索引文件。再次考虑一个包含100万条记录的文件,首先构造具有10000项的低级索引,然后为这个低级索引构造100项的高级索引。搜索过程从高级索引开始,找到指向低级索引的一项(平均长度=50次访问)。接着搜索这个索引,找到指向主文件的一项(平均长度=50次访问)。然后搜索主文件(平均长度=50次访问)。因此,平均搜索长度从500 000减少到1000,最后减少到150。 * Secondary Storage Management 在二级存储中,一个文件是由许多块

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档