140 likes | 274 Views
第十章 文件. 10.1 概述 10.2 顺序文件 10.3 索引文件 10.4 哈希(散列)文件 10.5 多关键码文件. 10.1 概述. 文件存储结构分类: 顺序结构:物理存放顺序与逻辑顺序一致; 索引结构:为数据文件建立索引; 哈希文件:通过计算确定记录存储位置; 表结构:类似于线性表的链表存储结构. 10.2 顺序文件. 顺序文件的记录物理顺序和逻辑顺序完全一致。 10.2.1 存储在顺序存储器上的文件 只能顺序读取,存储需要重新复制 一般对更新积累,使用批处理 10.2.2 存储在直接存储设备上的文件 可以随机存取和修改
E N D
第十章 文件 10.1概述 10.2顺序文件 10.3索引文件 10.4哈希(散列)文件 10.5多关键码文件
10.1概述 文件存储结构分类: • 顺序结构:物理存放顺序与逻辑顺序一致; • 索引结构:为数据文件建立索引; • 哈希文件:通过计算确定记录存储位置; • 表结构:类似于线性表的链表存储结构
10.2顺序文件 • 顺序文件的记录物理顺序和逻辑顺序完全一致。 • 10.2.1存储在顺序存储器上的文件 • 只能顺序读取,存储需要重新复制 • 一般对更新积累,使用批处理 • 10.2.2存储在直接存储设备上的文件 • 可以随机存取和修改 • 对于插入,可以采用页块预留空间方法或附加文件方法 • 对于删除,采用打标记再统一整理的方式
10.3索引文件 • 索引文件由“索引”和“主文件”构成; • 索引有索引项构成,每个索引项包含关键码和物理记录的位置; • 索引顺序文件:主文件记录按关键码有序; • 索引文件:主文件记录不按关键码有序;
10.3.1 B树 m阶B树中: • 每个结点至多m颗子树 • 除根以外的所有非叶子结点至少有[m/2]颗子树,根节点若非叶子结点,则至少有两个子树。 • 所有非叶子结点中含有如下信息: (n,A0,(K1,D1), A1,(K2,D2),… …An-1,(Kn,Dn), An) n:该结点关键字(索引项)数目 (Ki,Di)索引项,Ki关键字,Di物理记录指针 Ai子树指针 ([m/2]-1≤n ≤m-1) • 所有的叶子结点都在同一层次,且不含任何信息。
4阶B树 1 35 1 18 2 43 78 11 27 39 47 53 64 99 1 1 1 3 1 F F F F F F F F F F F F 红色虚线查找24,绿色虚线查找53
10.3.2 B+树 • 树中每个叶子结点含有n个索引项(n个关键字和n个指向记录的指针);所有叶子结点彼此相链接构成一个有序表,该有序表的头指针指向最小关键码的结点; • 每个非叶子结点中的关键码Ki是其相应指针Ai所指子树的索引项,即该关键码为该子树中关键码的最大值,含有如下信息: ((K1,A1), (K2,A2),… (Kn,An))Ki关键字,Ai子树指针 • m阶B+树每个结点至多m个关键码(m颗子树),除根节点至少含有两个关键码外,其余节点包含至少[m/2]个关键码,所有的叶子结点都在同一层次,且不含任何信息。([m/2] ≤n ≤m)
4阶B+树 50 96 15 50 62 78 96 8 15 3 26 43 50 62 71 78 89 96 ^ 20 56 84 红色虚线查找24,绿色虚线查找78
10.4哈希文件 • 哈希文件由很多桶构成,桶编号即为哈希函数的映射地址,每个桶中可以有多个页块,使用链表链接; • 存放每个记录的空间称子块,在页块的首部为每个子块设置二进制闲满标志,每个页块尾部设置指向下个页块的指针; • 哈希文件桶数量的设置可以遵循以下规则: m=n/w 其中n是记录数,w是每个页块可以存储的记录数,m是哈希文件的桶数目
10.5多关键码文件 • 10.5.1倒排文件
选课倒排表 选课成绩倒排表
学分倒排表 系别倒排表
选课链头索引 成绩链头索引