网站大量收购闲置独家精品文档,联系QQ:2885784924

第9章 文件3.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 文件3

第9章 文件 例如: 主文件: 索引表: 上例为索引非顺序文件。 若主文件中记录按照学号从小到大排列,则成为索引顺序文件。 若索引表的索引项与主文件的各记录对应——稠密索引; 若索引项对应主文件的一组记录——稀疏索引(非稠密索引)。 查找记录的过程: ①读入索引表,查找出关键字为k的记录的物理地址。 ②读入相应的物理记录,找出关键字为k的记录。 好处:减少访问外存的次数,提高查找速度。 显见,查找时访问外存次数与索引表大小有关: 当索引表≤1个物理记录,读入索引表访问外存1次。 否则,读入索引表要访问外存多次。 若索引表很大,对索引表再建立索引——查找表。 查找表的查找项——索引表的一组索引项。 例如: 假设每个物理记录存放三个索引项。即查找索引需访问外存两次: ? 读入查找表,查到相应的查找项; ? 读入相应的索引块,查到需要的索引项。 索引文件记录插入操作: 对索引非顺序文件: ? 把记录写入主文件尾;(若最后一块满,需新分配一个物理块) ? 把插入记录相应的索引项插入到索引表中。 对索引顺序文件: ? 在主文件中查到插入位置,插入记录; ? 修改索引表(稀疏索引),或插入相应的索引项到索引表中 (稠密索引)。 记录删除操作(逻辑删除): ? 在文件中对删除记录加“删除”标记; ? 在索引表中删除相应记录的索引项(稀疏索引不做)。 (1) 多重表文件 次关键字项——经常需要对其查询的数据项(一项或多项)。 次关键字——每个记录的次关键字项的值。 多重链表文件结构: ? 主文件为顺序文件; ? 对主关键字建立索引表——主索引表; ? 主文件中对每个次关键字项设一指针域,用以链接相同关 键字的记录(单链表); ? 对每个次关键字分别建立索引表——辅索引表。 例如: 主文件 (2) 倒排文件 适用:多关键字查询。 与多重链表文件相同之处:主文件+主索引表+辅索引表。 与多重链表文件不同之处:辅索引表结构不同。 物理地址序列——相同次关键字的记录的物理地址的顺序排列。 辅助索引表——倒排表。 例如,对上例主文件建立的“班级” 倒排表和“平均分”倒排表如下: 优点:? 处理多关键字查询时,通过集合运算直接查取记录。 ? 如:查W01班80~90分的学生,只要做 : {W01}∩{80~89}={120,260} 根据运算结果可直接查找相应记录 120,260。 缺点:倒排表中的各索引项长度不同,文件管理维护困难。 四. 散列文件 散列文件——直接存取文件,用散列方法组织的文件。 散列文件的组织方法与散列表不同之处是: ① 根据散列函数计算的结果是“存储块”号, 一个存储块——m个文件记录,可以把m个文件记录存于同 一存储块(不是冲突); ② 当有m+1个同义词记录时发生存储块“溢出”,—“冲突”。 处理“溢出”(解决冲突)——主要采用链地址方法。 常用“按桶散列法和可扩充散列法”。 1. 按桶散列法 桶—存储单位,可存放m个文件记录信息。 按桶散列方法存放文件步骤: ① 根据文件记录数n确定需要的桶数(桶容量为m)t 一般取t≥?n/m? ② 选取一种散列函数,使文件记录的散列地址尽可能 均匀分布在0 ~ t-1之间; ③ 以每个记录的散列地址为桶号,把记录存入相对的桶中—基 桶。若桶已满须做溢出处理(冲突处理方法): ?分配一个与基桶同样大小的桶—溢出桶,链接到基桶; ? m个的同义词存入溢出桶;再溢出,依次类推。 例如,对于关键字元素:77,53,25,18,75,54,90,46,67,42,11,65,27,02, 假设桶容量=3,取桶数t=5,散列函数为i=mod(k,t) 则按桶散列得到的存储结果为: (目录表是具有t个分量的向量,存放t个基桶的指针) 查找记录步骤: ①

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档