VSAM
IBM的磁盘文件存储访问方法
VSAM: Virtual storage access method 虚拟存储访问方法是IBM磁盘文件存储访问方法, 首先使用在0S/VS2操作系统中,然后使用在多虚拟存储架构,然后在z/OS。 作为一个面向记录的文件系统,VSAM由四个数据集组成。关键字顺序数据集KSDS, 关联记录数据集RRDS, 实体顺序数据集ESDS和线性数据集LDS。 KSDS,RRDS和ESDS由记录组成, 而LDS只包含无固定记录结构的字节流。
VSAM基本概念
虚拟存储技术的发展,为文件管理系统开拓了新的方向,而基于虚拟存储概念而研制发展的虚拟存取方法,在IBM系列的机器中也已经普遍地使用。
VSAM(Virtual Storage Access Method)是一种虚拟存取方法,它是为了与直接存取存储设备DASD(Direct Access Storage Device--能够在文件上直接地存取任何记录的设备)一起使用而研制的文件管理系统。
VSAM 存取文件记录的方法将不依赖于存放记录的外部设备类型,而是通过这个记录对文件开始点的相对位移(相对位移以字节为单位计算)来访问记录。相对位移值就称之为相对字节地址RBA(Relative Byte Address)。文件开始点地址定为0。
VSAM方法允许使用三种不同的数据组织,每一种数据组织均可采用不同的处理方法。包括了对在DASD上文件的自动空间分配、产生替换索引等功能。
VSAM方法还有一组服务性的程序--------存取方法服务AMS(Access Method Service)。这组服务性程序可以定义和维护VSAM文件,把记录输入到VSAM文件中、为文件建立一个或多个替换索引、复制和打印文件、产生文件的副本、恢复失效的数据、把顺序存取方法( SAM)文件和索引顺序存取方法(ISAM)文件转换成VSAM格式、并且能对已转换成VSAM格式的ISAM文件进行处理。
基本特征
1。自动的数据空间分配
VSAM的数据空间全是通过独立的目录来管理的。该目录描述了在系统中的全部VSAM文件的逻辑属性和物理属性。用于 VSAM 的数据空间是动态的,如需要则可增加更多的空间。
2。数据保护
VSAM方法利用它本身的设计和存取控制参数,可以对数据进行保护。VSAM的设计允许用户仅通过指定正确的目录信息来存取数据,目录本身指向数据,在目录中所存储的信息都受到VSAM所限制。
3。设备独立性
VSAM方法允许在不同类型的磁盘设备上处理,而不必重新进行程序设计。事实上,在逻辑上 VSAM文件被设计成连续的区域,唯一的限制是:VSAM文件必须全部存储在同样的设备类型的卷中。
4。数据移植性
VSAM方法提供了在不同操作系统下VSAM文件互换的可能性。
2。VSAM的数据组织
所谓的文件组织形式,是指数据记录在文件中的排列方式。而文件的存取方法是指从文件找到数据记录的方法。VSAM 所使用的数据,均具有一定的组织结构以及存取方法,用户可以选择三种类型的数据组织及其相应的存取方法:
1。键顺序数据组织(Indexed Sequential Organization)
2。进入顺序数据组织(Sequential Organization)
3。相对记录数据组织(Relative Organization)
这三种数据组织
所对应的数据集就分别称为:
1。键顺序数据集KSDS(Key Squenced Data Set)
2。进入顺序数据集ESDS(Entry Squenced DataSet)
3。相对记录数据集RRDS(Relative Record Data Set)
存取方法
数据条带技术基本要素
要弄明白数据条带的优点,就有必要了解一下这种技术的原理。VSAM在控制区(CA)里按顺序摆放了I/O基础单元--控制间隔(CIs)诸如CA1,CA2等等控制区,它们包含了很多磁道,这些磁道呈直线安放在直接存取存储器(DASD)上。如果集群扩展到其它卷,VSAM仍遵循同一规则在控制区里有序安放控制间隔。
条带式排列提高了按序处理效率,因为系统可以同时发起针对多卷的并行I/O访问动作。条带化帮助关键访问比如在线应用能够实现即时访问一个卷的数据,而无需等待I/O结束对另一个数据卷的访问。
VSAM还支持“层级”理念。IBM把该理念定义为将会包含在“I/O包”中的数据卷。实际上,一层代表了一个数据组扩展区,它们共享相同的数据记录。当一个数据组扩展时,扩展区可能延伸到不同的数据卷上。VSAM可能会得到进一步优化,识别出每个层分别属于哪个数据卷。
用户可以对除AIXs(辅助索引)之外几乎所有类型的VSAM集群进行条带化。IBM也可以把条带化限制在一个集群的数据组件上。
IBM提醒VSAM要支持多达16条带。这意味着控制区可能伸展至16个磁道而非传统的15个磁道,并且包含更多的控制间隔。对于(KSDS)关键性排序数据组,这就意味着指向数据模块(索引序列组)的索引控制间隔可能没有足够空间引用控制区的控制间隔。这就表明其本身是控制区末端不使用的控制间隔,或者说是某种空间浪费。为了充分利用这部分空间,存储管理员一定要用较大的控制间隔来覆盖默认的索引控制间隔。
键顺序数据组织允许四种类型的处理:
1。键控直接处理(根据主键对单个逻辑记录的处理)。
2。键控顺序处理(在逻辑序列中根据主键对一系列逻辑记录的处理)。
3。直接访问处理(根据在文件中的位置,对单个逻辑记录的处理)。
4。顺序访问处理(在物理序列中,根据在文件中的位置,对一系列逻辑记录的处理)
VSAM数据集
为了满足用户的需要,程序员可以选择不同的数据结构(数据集 / 文件)。
3。1。KSDS
与ISAM文件一样,KSDS文件根据用户在每个记录中所定义的键字段作为次序,也就是文件中的记录根据在每个记录中的键字段的排序序列而定位,每个记录在键字段有唯一的一个值。VSAM使用与每个记录相结合的键,把记录插入到文件中,或者从文件中检索记录,记录的存取次序可以是随机的,也可以是顺序的。
VSAM文件可以有多个索引。这就是指文件中的记录,既有主键,也有次级键(替换键),但最多能有253个次级键,可以是记录中的任何字段,但必须有固定的长度和位置。
替换键与主键一样具有同样的功能,而且,与主键相比,替换键的键值不必是唯一的值,因此在应用处理中允许用户能充分利用其灵活性。
数据记录 数据记录 。。。。。 数据记录
KEY10 KEY88 KEY1000
根据数据记录的键顺序而组织的键顺序文件
3。2。ESDS
包含在文件中的记录,是以当时进入的先后顺序而存储在ESDS中,而
且,这种进入顺序并不关心记录的内容,由于没有用键去标识该记录,因而没有建立主索引。但是,ESDS可以定义一个或多个替换索引。记录的次序是固定的,不会移动的。因此,将不会通过文件分配自由空间,新记录的插入要放在文件的末端,同时也不能缩短、增长、删除记录,用户要访问这些记录时,必须按其原来写入记录的次序而顺序地访问文件中的记录。 所以,从本质上来说,ESDS是顺序文件,与SAM文件的处理方法类似。
RRDS相对记录文件也没有索引,在其固定长度的槽串中,仅有其相对记录号。相对记录号从 1到N,其中N是能够存储在文件中最大的记录数。
每一记录占一个槽,并且根据槽的相对记录号而存储或检索记录,而记录的内容与进入的顺序无关。在相对记录文件中的记录组成的控制区间中,正如它们进入顺序文件或键顺序文件一样,每个控制区间包含相同数量的槽,每个槽的大小就是记录长度,由用户在文件初始化定义时指定。
参考资料
最新修订时间:2022-01-09 15:38
目录
概述
VSAM基本概念
参考资料