`

ISAM and VSAM

 
阅读更多

一、ISAM文件

索引顺序存取方法ISAM为Indexed Sequential Access Method的缩写,它是一种专为磁盘存取设计的文件组织方式。由于磁盘是以盘组、柱面和磁道三级地址存取的设备,则可对磁盘上的数据文件建立盘组、柱面和磁道三级索引。文件的记录在同一盘组上存放时,应先集中放在一个柱面上,然后再顺序存放再相邻的柱面上,对同一柱面,则应按盘面的次序顺序存放。例如图(a)为存放在一个磁盘组上的ISAM文件,每个柱面建立一个磁道索引,每个磁道索引由两个部分组成:基本索引和溢出索引项,如图(b)所示。每一部分都包括关键字和指针两项,前者表示该磁道中最末一个记录的关键字(在此为最大关键字),后者指示该磁道中第一个记录的位置,柱面索引的每一个索引项也由关键字和指针两部分组成,前者表示该柱面中最末一个记录的关键字(最大关键字),后者指示该柱面上的磁道索引位置。柱面索引存放在某个柱面上,若柱面索引较大,占多个磁道时,则可建立柱面索引的索引——主索引。

图10-4(a) ISAM文件结构示例

图10-4(b) 磁道索引项结构

在ISAM文件上检索记录时,先从主索引出发找到相应的柱面索引,再从柱面索引找到记录所在柱面的磁道索引,最后从磁道索引找到记录所在磁道的第一个记录的位置,由此出发在该磁道上进行顺序查找直至找到为止;反之,若找遍该磁道而不存在该记录,则表明该文件中无此记录。

在每个柱面上还开辟了一个溢出区;并且,磁道索引项中有溢出索引项,这是为了插入记录所设置的。由于ISAM文件中记录是按关键字顺序存放的,则在插入记录时需要移动记录并将同一磁道上最末一个记录移至溢出区,同时修改磁道索引项。通常溢出区有三种设置方法:(1)集中存放——整个文件设一个大的单一的溢出区;(2)分散存放——每个柱面设一个溢出区;(3)集中与分散结合——溢出时记录先移至每个柱面各自的溢出区,待满之后再使用公共溢出区。

ISAM文件中删除记录的操作要比插入简单得多,只需找到待删除的记录,在其存储位置上作删除标记即可,而不需要移动记录或改变指针。则在经过多次的增删后,文件的结构可能变得很不合理。此时,大量的记录进入溢出区,而基本区中又浪费很多空间。因此,通常需要周期地整理ISAM文件。把记录读入内存,重新排列,复制成一个新的ISAM文件,填满基本区而空出溢出区。

 

二、VSAM文件

虚拟存储存取方法VSAM是Virtual Storage Access Method的缩写。这种存取方法利用了操作系统的虚拟存储器的功能,给用户提供方便。对用户来说,文件只有控制区间和控制区域等逻辑存储单元,与外存储器中柱面、磁道等具体存储单元没有必要的联系。用户在存取文件中的记录时,不需要考虑这个记录的当前位置是否在内存,也不需要考虑何时执行对外存进行“读/写”的指令。

VSAM文件的结构如图(C)所示。它由三个部分组成:索引集、顺序集和数据集。

图10-4(c) VSAM文件的结构示意图

文件的记录均存放在数据集中,数据集中的一个结点称为控制区间,它是一个I/O操作的基本单位,它由一组连续的存储单元组成。控制区间的大小可随文件不同而不同,但同一文件上控制区间的大小相同。每个控制区间含有一个或多个关键字递增有序排列的记录。顺序集和索引集一起构成一棵B+树,为文件的索引部分。顺序集中存放每个控制区间的索引项。每个控制区间的索引项由两部分信息组成,即该控制区间中的最大关键字和指向控制区间的指针。若干相邻控制区间的索引项形成顺序集中的一个结点,结点之间用指针相链结,而每个结点有在其上一层的结点中建有索引,且逐层向上建立索引,所有的索引项都由最大关键字和指针两个部分信息组成。因此,VSAM文件既可在顺序集中进行顺序存取,又可从最高层的索引出发进行按关键字存取。顺序集中一个结点连同其对应的所有控制区间形成一个整体,称做控制区域。每个控制区间可视为一个逻辑磁道,而每个控制区域可视为一个逻辑柱面。

VSAM文件中没有溢出区,解决插入的办法是在初建文件时留有空间。一是每个控制区间内没有填满记录,而是在最末一个记录和控制信息之间留有空隙;二是在每个控制区域中有一些完全空的控制区间,并在顺序集的索引中指明这些空区间。当插入新记录时,大多数的新记录能插入到相应的控制区间内。但要注意为了保持区间内记录的关键字自小至大有序,则需将区间内关键字大于插入记录关键字的向控制信息的方向移动。若在若干记录插入之后控制区间已满,则在下一个记录插入时要进行控制区间的分裂,即将近乎一半的记录移到同一控制区域中全空的控制区间中,并修改顺序集中相应索引。倘若控制区域中已经没有全空的控制区间,则要进行控制区域的分裂,此时顺序集中的结点亦要分裂,由此尚需修改索引集中的结点信息。但由于控制区间很大,很少发生分裂的情况。

在VSAM文件中删除记录时,需将同一控制区间中较删除记录关键字大的记录向前移动,把空间留给以后插入新的记录。若整个控制区间变空,则需修改顺序集中相应的索引项。

由此可见,VSAM文件占有较多的存储空间,一般只能保持约75%的存储空间利用率。但它的优点是:动态地分配和释放存储,不需要对文件进行重组,并能较快地对插入的记录进行查找,查找一个后插入记录的时间与查找一个原有记录的时间是相同的。

  • 大小: 2.6 KB
  • 大小: 2.9 KB
分享到:
评论

相关推荐

    中文版VSAM介绍_入门级

    与ISAM文件相比,KSDS在一定范围内能自我重新组织,降低了平均搜索时间。 2. **进入顺序数据组织(ESDS)**:新记录按进入顺序追加至文件末尾,适用于数据流的连续写入场景,类似于SAM文件的组织方式。 3. **相对...

    vsam介绍

    - **ISAM**(Indexed Sequential Access Method):索引顺序访问方法。 - **BDAM**(Basic Direct Access Method):基础直接访问方法。 - **BPAM**(Basic Partitioned Access Method):基础分区访问方法。 - **...

    iSAM Incremental Smoothing and Mapping.pdf

    增量平滑与建图(iSAM)是一种新颖的方法,用于解决同时定位与建图(Simultaneous Localization and Mapping, SLAM)问题。SLAM问题是指在机器人运动过程中,根据所有可用的传感器数据来估计机器人的轨迹和地图。...

    vsam介绍中文 大型机

    - 文件转换(例如从SAM或ISAM格式转换为VSAM格式) #### 六、VSAM的优势总结 1. **高效率**:VSAM通过自我重新组织能力实现了高效的键控访问和顺序访问,减少了搜索时间。 2. **灵活性**:用户可以根据实际需求...

    vsam介绍(中文)

    它是专门为虚拟存储环境设计的,与传统的访问方法如QSAM(Queued Sequential Access Method)、BSAM(Basic Sequential Access Method)、ISAM(Indexed Sequential Access Method)、BDAM(Basic Direct Access ...

    iSAM2 Incremental Smoothing and Mapping Using the Bayes Tree.pdf

    iSAM2:增量平滑与映射使用贝叶斯树是Michael Kaess、Hordur Johannsson、Richard Roberts、Viorela Ila、John Leonard以及Frank Dellaert所撰写的研究论文。该论文提出了一种新的数据结构——贝叶斯树,它为理解...

    ISAM 数据库开发系统.zip

    ISAM(Indexed Sequential Access Method,索引顺序存取方法)是一种早期的数据库管理系统,它以高效的数据检索和存储而著称。ISAM数据库系统在计算机科学的历史上扮演了重要角色,尤其是在关系型数据库普及之前。它...

    VSAM 数据集

    VSAM作为一种先进的数据访问方法,相较于其他传统访问方法(如QSAM、BSAM、ISAM等),具有以下显著优势: 1. **高效性**:VSAM采用Control Interval(CI)作为基本的数据单位,能够实现顺序和直接访问模式下的高效...

    第11章 文件答案1

    - 索引顺序文件:主文件按关键字有序,索引表指示记录位置,常用于ISAM和VSAM文件。 - ISAM文件:采用静态索引,适用于磁盘存取,有三级索引,查找时需顺序扫描磁道。 - VSAM文件:采用B+树动态索引,动态分配...

    ISAM.rar_isam

    标题中的“ISAM.rar_isam”可能是指一个关于ISAM(Indexed Sequential Access Method,索引顺序访问方法)技术的压缩文件,它包含了多个章节的学习资料,可能是为了帮助C++编程者深入理解和掌握这一主题。ISAM是...

    Isam.rar_isam

    标题中的“Isam.rar_isam”可能是指一个名为“Isam”的数据库系统,它被封装在RAR压缩文件中。RAR是一种流行的压缩格式,用于存储和传输数据。在这里,“Isam”可能代表“Indexed Sequential Access Method”,这是...

    采用ISAM算法编写的日志管理类

    ISAM(Indexed Sequential Access Method,索引顺序存取方法)是一种经典的数据库索引技术,它在日志管理和数据存储中有着广泛的应用。ISAM算法结合了顺序访问和随机访问的优点,使得数据检索既快速又高效。在这个...

    concept-ISAM.rar_isam

    标题中的"concept-ISAM.rar_isam"提示我们关注的核心是ISAM(Incremental Smoothing and Mapping)算法,它在机器人定位和映射(SLAM,Simultaneous Localization and Mapping)领域有着重要应用。ISAM是一种优化...

    vsam使用资料

    VSAM(Virtual Storage Access Method,虚拟存储访问方法)是IBM大型机系统中的一种高效的数据访问技术,主要用于IBM的z/OS操作系统。它提供了一种直接、快速的数据存取方式,适用于处理大量的在线事务处理(OLTP)...

    算法 数据结构1800题 第11章 文件.doc

    - **问题背景**:ISAM 和 VSAM(Virtual Storage Access Method)都是允许随机访问的顺序文件组织形式。 - **选项分析**: - A. 顺序文件:顺序文件支持顺序访问,但不一定支持随机访问。 - B. 索引文件:索引...

    贝尔OLT7360 ISAM

    贝尔OLT7360 ISAM

    ISAM_BTRE.zip_btree_isam

    ISAM_BTRE.zip_btree_isam 是一个与数据库索引技术相关的压缩文件,其中包含了ISAM(Indexed Sequential Access Method)系统的一种实现以及BTREE(B树)的数据结构源码。ISAM是早期数据库管理系统中使用的一种文件...

Global site tag (gtag.js) - Google Analytics