数据结构(C++版)(第二版) 第11章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(c)二级索引表
2019年3月9日
7
11.4 ISAM文件和VSAM文件
11.4.1 ISAM文件
ISAM(Indexed Sequential Access Method)索引顺序存取方法的缩写,它是 一种专为磁盘存取设计的文件组织方式。由于磁盘是以盘组、柱面和磁道三级 地址存取的设备,则可对磁盘上的数据文件建立盘组、柱面、磁道三级索引。 文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放 在相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放。例如图11-2为存 放在一个磁盘组上的ISAM文件,每个柱面建立一个磁道索引,每个磁道索引项 由两部分组成:基本索引项和溢出索引项。每一部分都包含关键字和指针两项, 前者表示该磁道中最末一个记录的关键字(最大关键字),后者指示该磁道中 第一个记录的位置,柱面索引的每一个索引项也由关键字和指针两项组成,前 者表示该柱面中最末一个记录的关键字(最大关键字),后者指示该柱面上的 磁道索引位置。
姓名 张三 李四 王五 赵六 刘七 朱八 陈二 欧阳十 何九
其它 … … … … … … … … …
关键字 01 02 03 04 05 06 07 08 09
物理记录号 10 20 30 40 50 60 70 80 90
最大关键字
物理块号
1
03
1
2
06
2
3
09
3
(a)主表
(b)索引表 图11-1 索引表文件示例
文件的更新有三种方式:插入、删除、更新一条记录。
2019年3月9日
3
11.2 顺序文件
顺序文件是指记录按其在文件中的逻辑顺序依次存放到外部介质上的文件。也 就是说,顺序文件的物理记录顺序和逻辑记录顺序一致。若次序相继的两个物 理记录在存储器中位置是相邻的,则称为连续文件;若物理记录之间的次序由 指针相链表示,则称为串链文件。
2019年3月9日
2
文件和数据元素一样,也有逻辑结构和存储结构。文件的逻辑结构可以表现为 记录的逻辑结构。文件的存储结构是指文件在物理存储器(磁盘或磁带)中的 组织方式。文件可以有各种各样的组织方式,其基本方式有三种:顺序组织、 随机组织和链组织。 对文件所施加的运算(操作)有两类:查找(检索)和更新(修改)。 文件的查找(检索)有三种方式:顺序查找、按记录号直接随机查找、按关键 字直接随机查找。
2019年3月9日
8
在ISAM文件上检索记录时,先从主索引出发找到相应的柱面索引,再从柱面索引 找到记录所在柱面的磁道索引,最后从磁道索引找到记录所在磁道的第一个记录 的位置,由此出发在该磁道上进行顺序查找直到找到为止;反之,若找遍该磁道 而不存在此记录,则表明该文件中无此记录。
例如,在图11-2中,查找关键字21时,先找到主索引中620,再找到柱面索引164, 最后找到磁道索引50,最后顺序查找到R21,查找成功。若查找关键字48,先找 到主索引中620,再找到柱面索引164,最后找到磁道索引50,最后顺序查找到 R50,无R48,查找不成功。
2019年3月9日
5
索引表是有序表,可以用快速的折半查找来实现,而主文件为索引顺序文件时, 也可以用折半查找实现,主文件为索引非顺序文件时,只能用顺序查找来实现。 当一个文件很大时,索引表也很大,这时可以对索引表再建立一个索引,称为 二级索引。更大的索引表可以建立多级索引。
ຫໍສະໝຸດ Baidu
在图11-1中,(a)为主表,(b)为一级索引表,(c)为二级索引表。
第11章 文件
本章学习内容 11.1 文件的基本概念 11.2 顺序文件 11.3 索引文件 11.4 ISAM文件和VSAM文件
11.5 散列文件
11.6 多关键字文件
2019年3月9日
1
11.1 文件的基本概念
文件是由大量性质相同的记录所构成的集合。 文件有不同的分类方式: 按记录类型分:操作系统文件和数据库文件。 按记录是否定长分:定长记录文件和不定长记录文件。 按查找关键字多少分:单关键文件和多关键文件。 记录有逻辑结构和存储结构之分。记录的逻辑结构,是指记录在用户或应用程 序员面前呈现的方式,是用户对数据的表示和存取方式。记录的存储结构是指 数据在物理存储器中的存储形式,是数据的物理表示和组织。
顺序文件是根据记录的序号或记录的相对位置进行存取的文件组织方式。它的 特点是: (1) 存取第K个记录必须先搜索在它之前的K-1个记录。 (2) 插入新的记录时只能在文件末尾插入。 (3) 若要更新文件中的某个记录,则必须将该文件复制。
由于顺序文件的优点是连续存取速度快,因此主要用于顺序存取、批量修改的 情况。 磁带是一种典型的顺序存取设备,存储在磁带上的文件就是顺序文件。但磁带 目前很 少使用,使用的顺序文件多为磁盘顺序文件。对顺序文件可以向顺序表一样, 进行顺序查找、分块查找或折半查找(文件有序)。
2019年3月9日 4
11.3 索引文件
除了文件(主文件)本身外,另外建立一张指示逻辑记录与物理记录之间一 一对应关系的表(索引表)。这种包含主文件数据和索引表两大部分的文件 称为索引文件。 索引表中的每一项称为索引项,索引项由记录的关键字与记录的存放地址构 成。索引文件是按关键字有序排列的,若主文件也按关键字有序排列,这样 的索引文件称为索引顺序文件;若主文件是无序的,这样的索引文件为索引 非顺序文件。 索引表是由系统程序自动生成的。在输入记录的同时建立一个索引表,表中 的索引项按记录输入的先后次序排列,待全部记录输入完毕再对索引表进行 排序。 索引文件的查找方式为直接查找或按关键字查找,和前面介绍的分块查找类 似,但必须分两步走:首先在索引表中查找,若找到则再到主文件中查找; 否则主文件中不存在该记录,也就不要访问外存了。
但图11-1中的多级索引是一种静态索引,为顺序表结构。虽然结构简单,但修改 很不方便,所以当主文件在使用过程中变化比较大时,应采用树表结构的动态索 引,如二叉排序树、B树、键树等,以便于插入、删除。
2019年3月9日
6
物理记录号 10 20 30 40 50 60 70 80 90
学号 01 02 03 04 05 06 07 08 09
相关文档
最新文档