VSAM是一种虚拟存取方法,是把用户的逻辑数据(应用处理程序)与辅助存储器中的物理数据相连接,从而为程序员在数据管理中提供方便,程序员可根据不同的需要选择不同的数据组织。
VSAM基本概念
虚拟存储技术的发展,为文件管理系统开拓了新的方向,而基于虚拟存储概念而研制发展的虚拟存取方法,在IBM系列的机器中也已经普遍地使用。
VSAM(Virtual Storage Access Method)是一种虚拟存取方法,它是为了与直接存取存储设备DASD(Direct Access Storage Device--能够在文件上直接地存取任何记录的设备)一起使用而研制的文件管理系统。
VSAM是把用户的逻辑数据(应用处理程序)与辅助存储器中的物理数据相连接,从而为程序员在数据管理中提供方便,程序员可根据不同的需要选择不同的数据组织。
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)
存取方法
键顺序数据组织允许四种类型的处理:
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是能够存储在文件中最大的记录数。
每一记录占一个槽,并且根据槽的相对记录号而存储或检索记录,而记录的内容与进入的顺序无关。在相对记录文件中的记录组成的控制区间中,正如它们进入顺序文件或键顺序文件一样,每个控制区间包含相同数量的槽,每个槽的大小就是记录长度,由用户在文件初始化定义时指定。