12.6 多关键字文件

概述

  • 多关键字文件的特点
    在对文件进行检索操作时:
    不仅对主关键字进行检索
    还经常对次关键字进行检索

  • 若文件组织中只有主关键字索引,那么在处理对次关键字的询问时,只能顺序存取文件中的每一个记录进行比较,效率很低
    因此需要建立一系列的次关键字索引

  • 次关键字索引可以是稠密的,也可以是非稠密的
    次关键字索引表可以是顺序表,也可以是树表
    与主关键字索引表不同,每个索引项应包含:次关键字、具有同一次关键字的过个记录的主关键字或物理记录号

  • 两种多关键字文件的组织方法
    1、多重表文件
    2、倒排文件

1、多重表文件

  • 特点
    记录按主关键字的顺序构成一个串联文件,并建立主关键字的索引(称为主索引);
    对每一个次关键字项建立次关键字索引(称为次索引),所有具有同一关键字的记录构成一个链表。(次索引)
    主索引为非稠密索引,次索引为稠密索引;
    每个主索引项包括次关键字、头指针和链表长度。

  • 举例
    如下图 a 是一个多重链表文件。学号为主关键字,记录按学号顺序连接
    在这里插入图片描述
    为了查找方便设置了3个子链表
    在这里插入图片描述
    专业、已修学分和选修科目为3个次关键字项,索引如下图
    在这里插入图片描述
    在这里插入图片描述

  • 多重链表文件的特点
    优点:易于构造,也易于修改。若不要求保持链表的某种次序,插入一个新记录也很容易,插在链表的头指针之后即可。
    缺点:删除一个记录比较麻烦,需要在每个次关键字的链表中删去该记录

倒排文件

  • 特点
    与多重表文件的区别在于 次关键字索引的结构不同
    倒排表:通常称次关键字索引为倒排表
    具有相同次关键字的记录之间不设指针相链,而在倒排表中该次关键字的一项中存放这些记录的物理记录号

  • 倒排表示例
    源文件
    在这里插入图片描述
    倒排文件索引
    在这里插入图片描述

  • 插入和删除记录时,倒排表也要做相应的修改
    倒排表中具有同一次关键字的记录号是有序排列的,在插删时要做相应移动

  • 若数据文件非串链文件,而是索引顺序文件(如ISAM文件),则倒排表中应存放记录的主关键字而不是物理记录号。

  • 倒排文件的缺点
    维护困难,
    在同一索引表中,不同的关键字其记录数不同,各倒排表的长度不等
    同一倒排表中各项长度也不等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值