VSAM中文教学讲解课件_第1页
VSAM中文教学讲解课件_第2页
VSAM中文教学讲解课件_第3页
VSAM中文教学讲解课件_第4页
VSAM中文教学讲解课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VSAM:即虚拟存储访问方式;使用VSAM组织数据,管理数据信息的文件称为VSAM文件。VSAM文件所在的数据集称为VSAM数据集.VSAM文件的分类:

LDS:线性数据集(LinearDataSet)ESDS:进入顺序数据集(EntrySequencedDataSet)RRDS:相对记录数据集(RelativeRecordDataSet)KSDS:索引顺序数据集(KeySequenceDataSet)VRRDS:变长相对记录数据集(Variable-lengthRelativeRecordDataSet)VSAM文件的基本概念VSAM:即虚拟存储访问方式;VSAM文件的基本概念LDS的定义LDS即线性数据集(lineardataset),LDS是最简单的一类VSAM数据集,只包含数据,不含任何控制信息。LDS通常仅用于保存和备份数据。LDS的结构及特征LDS中仅包含数据部分,这些数据是纯粹的数据,没有形成逻辑记录。因此LDS的CI(ControlInterval)中没有RDF(RecordDefinitionField)和CIDF(CIDataField)控制信息的。这一点是LDS区别于其他VSAM数据集的最大特点。LDS有多个CA(ControlArea)组成,并且每个CA由由多个CI组成VSAM中的LDSLDS的定义VSAM中的LDSLDS的基本结构图CICACILDSCICACIVSAM中的LDS数据数据数据数据LDS的基本结构图VSAM中的LDS数据数据数据数据LDS有某些特征如下LDS由ICF进行编目管理,而没有记录管理。LDS中仅含有数据部分,而没有索引部分。在LDS中不能定义次索引。在LDS中不能使用SpannedRecord技术。LDS中CI的大小最小为4KB,最大为32KB。LDS中的CI不含控制信息RDF以及CIDF。COBOL应用程序必须清楚LDS中各段数据所表示的意义。VSAM中的LDSLDS有某些特征如下VSAM中的LDSRRDS的定义RRDS即相对记录数据(RelativeRecordDataSet),在RRDS中存在着许多固定的区域,称为Slot。RRDS中的数据便是存放在这些Slot之中。RRDS的结构及特征RRDS结构上最大的特点是每一个CI中的数据部分被划分为等长的SLOT。这些Slot都被进行了编号,称之为相对记录号码RRN(RelativeRecordNumber)。RRDS的基本结构CICI

CICIVSAM中的RRDSCACARRDSslot1slot2未使用空间RDF2RDF1CIDFslot3slot4未使用空间RDF4RDF3CIDFslot5slot6未使用空间RDF6RDF5CIDFslot7slot8未使用空间RDF8RDF7CIDFRRDS的定义VSAM中的RRDSCACARRDSslot1RRDS主要有以下特征:RRDS只有数据部分逻辑记录按RRN进行存放逻辑记录只能为定长记录逻辑记录可以删除,并将其所占Slot置为空状态在创建RRDS时不能预留FreeSpace可以更新逻辑记录的内容,但是不可以改变逻辑记录的长度不能建立次索引不能改变逻辑记录的RRNVSAM中的RRDSRRDS主要有以下特征:VSAM中的RRDSRRDS的访问方式RRDS的访问方式通常有顺序访问和直接访问方式两种。对于顺序访问,应该注意一下两点:访问的顺序依据RRN的值从小到大的顺序顺序访问时,对于空的Slot,VSAM文件管理自动跳过当对RRDS直接访问时,将主要根据记录的RRN进行。对于直接访问方式,应该注意以下两点:VSAM文件系统将在内部把所提供的RRN转换为RBA(RelativeByteAddress),以对记录进行访问不可直接使用RBA访问RRDS中的数据VSAM中的RRDSRRDS的访问方式VSAM中的RRDSESDS的基本概念ESDS即进入顺序数据集(EntrySequencedDataset)。ESDS中数据的存放必须依照先后顺序进行,并且新增的数据必须在原数据的末尾添加。ESDS的结构ESDS中仅有数据部分,不过其中的数据并非线性的,ESDS中的数据形成了相对独立的逻辑记录,并且每一记录主要通过相对字节位置RBA进行识别。在ESDS中包含有RDF和CIDF控制信息。

VSAM中的ESDSESDS的基本概念VSAM中的ESDSESDS的特征ESDS中仅含有数据部分,并且数据形成了逻辑记录。逻辑记录既可为定长记录,也可为变长记录。逻辑记录不可删除,不过可以进行逻辑隐藏。新的数据只可在原数据末尾进行添加。对逻辑记录进行顺序访问时,也可进行直接访问。当对逻辑记录进行顺序访问时,访问顺序为记录插入顺序。当对逻辑记录进行直接访问时,根据记录的RBA进行访问。支持spannedrecord技术。在创建时不能预留freespace。可以更新数据记录的内容,但不能改变原有记录的长度。不能改变资料记录的RBA。VSAM中的ESDSESDS的特征VSAM中的ESDSESDS的访问方式顺序访问方式当对ESDS进行顺序访问时,所访问的数据记录将根据记录的存放顺序自动查找获得。直接访问方式直接访问方式是通过ESDS文件中的逻辑记录的RBA进行访问的。逻辑记录的RBA值和该记录在ESDS文件中的位置有关。第一条记录的RBA为0.对访问方式的说明ESDS中的逻辑记录不可在物理上进行删除,因为会影响到后面记录的RBA值,不过在应用程序中,可将其内容视为空,以此从逻辑上将其删除,实现逻辑隐藏。ESDS中的内容可以被更改,但长度不可被更改。ESDS可访问的逻辑记录包括定长记录,变长记录,以及spannedrecord。ESDS文件添加记录时,只能在原数据的末尾进行添加。VSAM中的ESDSESDS的访问方式VSAM中的ESDSSpannedRecord技术简单的说就是当逻辑记录的长度大于一个CI的大小时,将其进行切分,并分别使用多个CI进行存放。该技术仅使用与ESDS文件和KSDS文件。使用SpannedRecord技术处理的逻辑长度应该大于一个CI的大小。所处理的记录以CI的大小为单位进行分割,并将分割后的内容分别存放在多个CI中。存放逻辑记录分段的每个CI中应有连个RDF控制信息,以保证其连贯性。SpannedRecord技术只可跨越多个CI进行,而不可跨越CA。当逻辑记录的长度大于CI的大小减去7倍的RDF与CIDF大小之和时,将对其进行处理。整个逻辑记录的最大长度为一个CA的大小减去其中控制信息的长度。必须使用MOVE模式对其进行访问。程序的工作区域和I/O区域必须足够大,空间大小至少要大于最大的SpannedRecord的长度。VSAM中的ESDSSpannedRecord技术VSAM中的ESDSKSDS结构和特征与ISAM(IndexSequenceAccessMethod)文件一样,KSDS文件根据用户在每个记录中所定义的键字段作为次序,也就是文件中的记录根据在每个记录中的键字段的排序序列而定位,每个记录在键字段有唯一的一个值。VSAM使用与每个记录相结合的键,把记录插入到文件中,或者从文件中检索记录,记录的存取次序可以是随机的,也可以是顺序的。VSAM文件可以有多个索引。这就是指文件中的记录,既有主键,也有次级键(AIX:AlternateIndex,替换键),但最多能有253个次级键,可以是记录中的任何字段,但必须有固定的长度和位置。替换键与主键一样具有同样的功能,而且,与主键相比,替换键的键值不必是唯一的值,因此在应用处理中允许用户能充分利用其灵活性。数据记录数据记录。。。。。数据记录KEY10KEY88KEY1000根据数据记录的键顺序而组织的键顺序文件VSAM中的KSDSKSDS结构和特征VSAM中的KSDSKSDS即索引顺序数据集(KeySequencedDataSet)最主要的特点是通过索引来组织和管理其中的数据。在KSDS文件中,每条逻辑记录中的同一位置都有唯一的一个关键字(key)需要注意的几点:Key为定长数据,且位于每条逻辑记录中的相同的位置。逻辑记录根据Key值的升序排列存放在文件之中。每一个Key的值必须唯一,以确定逻辑记录在文件中的排序序列。Key的值必须严格按从小到大的顺序连续排列。一旦Key的值被设定后,该值不可被更改。不过,可以将包含该Key的整条逻辑记录删除,这样同时也将该Key删除。KSDS中的key和索引KSDS即索引顺序数据集(KeySequencedDat在KSDS中主要涉及:索引部分和数据部分索引设施:IS(IndexSet)和顺序设施:SS(SequenceSet);KSDS的索引部分是在对其载入数据时自动建立的。并且,索引部分的SS包含所对应CA中每条CI的一个入口。该入口为对应CI中最大的Key值。而IS则相应的包含每条SS的一个入口;CA里的每一行代表其中的一个CI。CI中每一个单元格代表其中的一个逻辑记录,单元格中的数值表示该逻辑记录的Key值。KSDS的结构在KSDS中主要涉及:索引部分和数据部分KSDS的结构在KSDS中,逻辑记录是按照记录关键字(RecordKey)的升序存放的。IS:IndexedSet索引设施。SS:SequenceSet顺序设施。CI:ControlInterval表示在一次I/O操作中数据的转移量。CA:ControlArea由多个CI组成。KSDS的结构在KSDS中,逻辑记录是按照记录关键字(RecordKeyKSDS的访问方式KSDS的访问方式包含有顺序访问方式和直接访问方式这两种。对于顺序访问方式,需要注意一下几点:顺序访问通过SS中的Key值对数据进行访问。访问顺序既可为升序,也可为降序。当一个CA中的数据遍历完后仍未找到所求数据,将通过SS中的水平指针FS访问下一CA.可从KSDS文件中的任何一个位置开始顺序访问。当对KSDS中的数据记录进行直接访问时,将从KSDS的索引部分开始进行访问。对于直接访问方式,需要注意以下几点:直接访问从索引部分中最高一层的IS开始访问。通过索引部分层级之间的向下指针搜寻可能包含有所记录的CA及CI。检索可能包含有所记录的整条CI,以对记录进行访问,或判断该记录不存在。KSDS的访问方式CI的分割结合例子来讲解如果需要新增一个Key值为1024的逻辑记录,根据Key值顺序,只能在CI1中添加。并且,该逻辑记录应该添加在Key值为1019和1350的这两个逻辑记录之间。由于CI1已没有更多的空间装下该条逻辑记录,将会把CI1中的逻辑记录对等分割为两半。其中一半逻辑记录将存放在该CA中空白的CI3中。添加该记录后的KSDS内容如图所示。CI及CA分割技术CI的分割CI及CA分割技术SSKSDS原始数据CI0CACI1CI2CI3

CI及CA分割技术092814572705FS0715082409100928093609751019135014572089213725272705SSCI及CA分割技术092814572705FSSSCI分割后KSDS的内容CI0CI1CACI2CI3CI及CA分割技术0928101914572705FS07150824091009280936097510192089213725272705102413501457SSCI及CA分割技术0928101914572705FS0CA的分割如果对KSDS新增数据时,CA中没有空白CI用于进行CI分割了,将进行CA分割。例如,当在以上KSDS中再新增两个Key值分别为2107和2348的逻辑记录,KSDS数据部分内容将如图所示。需要注意的是,由于此时存在两个CA,因此索引部分中相应的也有两个SS。同时,这两个SS的上层IS中的数值也应相应地改变。因此,CA分割后,该KSDS的索引部分内容应该如图所示。CI及CA分割技术CA的分割CI及CA分割技术

CI0CI1CA0CI2CI3CA分割前数据部分

CI及CA分割技术0936097510190715082409100928CI及CA分割技术093609751019071

CI0CI1CA1CI2CI3

CA分割后数据部分内容

CI及CA分割技术234825272705208921072137102413501457CI及CA分割技术23482527270520809281457CI及CA分割技术09281019FS145721372705FSCA分割后索引部分的内容09281457CI及CA分割技术09281019FS145次索引技术定义次索引为逻辑记录提供次级key,同主索引中key进行交互,以提高记录访问效率。每条次索引中所包含的数据信息:标题信息次关键字一个或多个指向主数据集中逻辑记录的指针指针类别主数据集是KSDS,指针为主关键字的值。主数据集为KSDS,指针为RBA的值KSDS中的次索引次索引技术KSDS中的次索引在程序中指定VSAM文件对于COBOL程序而言,在对VSAM处理之前需在环境部和数据部对其进行指定。VSAM在系统中的名称为VKSDS,接下来我们对各项参数分别介绍:通过COBOL操作VSAM文件在程序中指定VSAM文件通过COBOL操作VSAM文件KSDA文件在COBOL程序中:ORGANIZATION:用于指定VSAM文件的逻辑结构。通常可以为SEQUENTIAL或INDEXED,默认是为SEQUENTIAL。ACCESSMODE:用于指定对该VSAM文件的访问模式。通常可以为SEQOENTIAL、RANDOM或DYNAMIC。Sequential对应顺序访问方式;RANDOM对应直接访问方式;DYNAMIC既可以为顺序访问方式又可以为直接访问方式。RECORDKEY:用于指定Key在程序中的名称。FILESTATUS:用于反映VSAM文件被读取或写入的状态。通过COBOL操作VSAM文件KSDA文件在COBOL程序中:通过COBOL操作VSAM文VSAM文件在COBOL程序中对于VSAM文件在数据部中的指定,主要需要注意一下几点。通过LABLERECORDIS(ARE)STANDARD指明该VSAM文件是否含有标(label)。通过DATARECORDIS(ARE)定义该VSAM文件中逻辑记录在程序中的名称。通过COPY命令将逻辑记录复制到程序工作区域中.VSAM文件在数据部中默认BLOCKCONTAINS0RECORDS一项。可默认RECORDCONTAINSnCHARACTERS一项。通过COBOL操作VSAM文件VSAM文件在COBOL程序中通过COBOL操作VSAM文件VSAM文件的打开和关闭在对VSAM文件进行任何处理之前,首先需要打开该文件。并且,为保护文件数据,在程序结束后也应该关闭该文件。打开和关闭文件是通过OPEN和CLOSE命令进行的。并且,在打开的文件中需要指明该文件用来输入、输出还是中间文件。以下为打开和关闭VSAM文件的相应代码。PROCEDUREDIVISION.OPENINPUTKS-FILE01,KS-FILE02I-ORR-FILEOUTPUTES-FILE.……CLOSEKS-FILE01,KS-FILE02,RR-FILE,ES-FILE.STOPRUN.通过COBOL操作VSAM文件VSAM文件的打开和关闭通过COBOL操作VSAM文件VSAM文件的读取顺序读取方式

相应的代码如下:READKS-FILE01NEXTRECORDATENDGOTO100-TEST-ENDEND-READ.随机读取方式

相应的代码如下:READKS-FILE02KEYISTEST-RCD-KEYINVALIDKEYGOTO200-TEST-ABENDEND-READ.动态读取方式

动态读取方式是顺序读取方式和随机读取方式的综合。通过COBOL操作VSAM文件VSAM文件的读取通过COBOL操作VSAM文件Write(写入)和Rewrite(改写)在VSAM中write和rewrite操作与正常文件基本相同,其形式为:WRITEAFROMB.

REWRITEAFROMB.与其他write和rewrite的区别在于:write可以用于output和I-O模式下打开的VSAM文件。rewrite只能用于I-O模式下的VSAM文件所写入和改写的名称应该为记录名,而不是文件名,如:WRITEKS01-RCDFROMTEST-REC01.REWRITERR-RCDFROMTEST-RCD02.通过COBOL操作VSAM文件Write(写入)和Rewrite(改写)通过COVSAM文件的删除当需要对VSAM文件中的记录进行删除时,可以使用DELETE命令,一下为删除VSAN文件中记录的相应代码:DELETEKS-FILE01RECORDINVILIDKEYDISPLAY‘DELETEFAILED’.其中INVILIDKEY从句指明当删除失败时的操作START语句当处理的VSAM文件为索引文件时(KSDS),在COBOL中还可以提供指针定位功能

相应代码如下:STARTKS-FILE02KEY<TEST-VALUEINVILIDKEYDISPLAY‘NOSUCHRECORD’通过COBOL操作VSAM文件VSAM文件的删除通过COBOL操作VSAM文件VASM文件的处理方式:在线(ONLINE)方式批处理(BATCH)方式ONLINE方式:此时VASM文件不用在COBOL程序中进行打开和关闭。所用到的文件将在CICS打开。同时,该方式下可以实现多终端对文件的操作,而不必等待用户或资源。BATCH方式:VASM文件必须在COBOL程序中进行打开和关闭。同时,每次只能有一个作业可以对该文件进行操作。其余作业需要等到该作业结束后,才可对其所占用的VASM文件进行操作。VSAM文件的处理方式VASM文件的处理方式:VSAM文件的处理方式VSAM:即虚拟存储访问方式;使用VSAM组织数据,管理数据信息的文件称为VSAM文件。VSAM文件所在的数据集称为VSAM数据集.VSAM文件的分类:

LDS:线性数据集(LinearDataSet)ESDS:进入顺序数据集(EntrySequencedDataSet)RRDS:相对记录数据集(RelativeRecordDataSet)KSDS:索引顺序数据集(KeySequenceDataSet)VRRDS:变长相对记录数据集(Variable-lengthRelativeRecordDataSet)VSAM文件的基本概念VSAM:即虚拟存储访问方式;VSAM文件的基本概念LDS的定义LDS即线性数据集(lineardataset),LDS是最简单的一类VSAM数据集,只包含数据,不含任何控制信息。LDS通常仅用于保存和备份数据。LDS的结构及特征LDS中仅包含数据部分,这些数据是纯粹的数据,没有形成逻辑记录。因此LDS的CI(ControlInterval)中没有RDF(RecordDefinitionField)和CIDF(CIDataField)控制信息的。这一点是LDS区别于其他VSAM数据集的最大特点。LDS有多个CA(ControlArea)组成,并且每个CA由由多个CI组成VSAM中的LDSLDS的定义VSAM中的LDSLDS的基本结构图CICACILDSCICACIVSAM中的LDS数据数据数据数据LDS的基本结构图VSAM中的LDS数据数据数据数据LDS有某些特征如下LDS由ICF进行编目管理,而没有记录管理。LDS中仅含有数据部分,而没有索引部分。在LDS中不能定义次索引。在LDS中不能使用SpannedRecord技术。LDS中CI的大小最小为4KB,最大为32KB。LDS中的CI不含控制信息RDF以及CIDF。COBOL应用程序必须清楚LDS中各段数据所表示的意义。VSAM中的LDSLDS有某些特征如下VSAM中的LDSRRDS的定义RRDS即相对记录数据(RelativeRecordDataSet),在RRDS中存在着许多固定的区域,称为Slot。RRDS中的数据便是存放在这些Slot之中。RRDS的结构及特征RRDS结构上最大的特点是每一个CI中的数据部分被划分为等长的SLOT。这些Slot都被进行了编号,称之为相对记录号码RRN(RelativeRecordNumber)。RRDS的基本结构CICI

CICIVSAM中的RRDSCACARRDSslot1slot2未使用空间RDF2RDF1CIDFslot3slot4未使用空间RDF4RDF3CIDFslot5slot6未使用空间RDF6RDF5CIDFslot7slot8未使用空间RDF8RDF7CIDFRRDS的定义VSAM中的RRDSCACARRDSslot1RRDS主要有以下特征:RRDS只有数据部分逻辑记录按RRN进行存放逻辑记录只能为定长记录逻辑记录可以删除,并将其所占Slot置为空状态在创建RRDS时不能预留FreeSpace可以更新逻辑记录的内容,但是不可以改变逻辑记录的长度不能建立次索引不能改变逻辑记录的RRNVSAM中的RRDSRRDS主要有以下特征:VSAM中的RRDSRRDS的访问方式RRDS的访问方式通常有顺序访问和直接访问方式两种。对于顺序访问,应该注意一下两点:访问的顺序依据RRN的值从小到大的顺序顺序访问时,对于空的Slot,VSAM文件管理自动跳过当对RRDS直接访问时,将主要根据记录的RRN进行。对于直接访问方式,应该注意以下两点:VSAM文件系统将在内部把所提供的RRN转换为RBA(RelativeByteAddress),以对记录进行访问不可直接使用RBA访问RRDS中的数据VSAM中的RRDSRRDS的访问方式VSAM中的RRDSESDS的基本概念ESDS即进入顺序数据集(EntrySequencedDataset)。ESDS中数据的存放必须依照先后顺序进行,并且新增的数据必须在原数据的末尾添加。ESDS的结构ESDS中仅有数据部分,不过其中的数据并非线性的,ESDS中的数据形成了相对独立的逻辑记录,并且每一记录主要通过相对字节位置RBA进行识别。在ESDS中包含有RDF和CIDF控制信息。

VSAM中的ESDSESDS的基本概念VSAM中的ESDSESDS的特征ESDS中仅含有数据部分,并且数据形成了逻辑记录。逻辑记录既可为定长记录,也可为变长记录。逻辑记录不可删除,不过可以进行逻辑隐藏。新的数据只可在原数据末尾进行添加。对逻辑记录进行顺序访问时,也可进行直接访问。当对逻辑记录进行顺序访问时,访问顺序为记录插入顺序。当对逻辑记录进行直接访问时,根据记录的RBA进行访问。支持spannedrecord技术。在创建时不能预留freespace。可以更新数据记录的内容,但不能改变原有记录的长度。不能改变资料记录的RBA。VSAM中的ESDSESDS的特征VSAM中的ESDSESDS的访问方式顺序访问方式当对ESDS进行顺序访问时,所访问的数据记录将根据记录的存放顺序自动查找获得。直接访问方式直接访问方式是通过ESDS文件中的逻辑记录的RBA进行访问的。逻辑记录的RBA值和该记录在ESDS文件中的位置有关。第一条记录的RBA为0.对访问方式的说明ESDS中的逻辑记录不可在物理上进行删除,因为会影响到后面记录的RBA值,不过在应用程序中,可将其内容视为空,以此从逻辑上将其删除,实现逻辑隐藏。ESDS中的内容可以被更改,但长度不可被更改。ESDS可访问的逻辑记录包括定长记录,变长记录,以及spannedrecord。ESDS文件添加记录时,只能在原数据的末尾进行添加。VSAM中的ESDSESDS的访问方式VSAM中的ESDSSpannedRecord技术简单的说就是当逻辑记录的长度大于一个CI的大小时,将其进行切分,并分别使用多个CI进行存放。该技术仅使用与ESDS文件和KSDS文件。使用SpannedRecord技术处理的逻辑长度应该大于一个CI的大小。所处理的记录以CI的大小为单位进行分割,并将分割后的内容分别存放在多个CI中。存放逻辑记录分段的每个CI中应有连个RDF控制信息,以保证其连贯性。SpannedRecord技术只可跨越多个CI进行,而不可跨越CA。当逻辑记录的长度大于CI的大小减去7倍的RDF与CIDF大小之和时,将对其进行处理。整个逻辑记录的最大长度为一个CA的大小减去其中控制信息的长度。必须使用MOVE模式对其进行访问。程序的工作区域和I/O区域必须足够大,空间大小至少要大于最大的SpannedRecord的长度。VSAM中的ESDSSpannedRecord技术VSAM中的ESDSKSDS结构和特征与ISAM(IndexSequenceAccessMethod)文件一样,KSDS文件根据用户在每个记录中所定义的键字段作为次序,也就是文件中的记录根据在每个记录中的键字段的排序序列而定位,每个记录在键字段有唯一的一个值。VSAM使用与每个记录相结合的键,把记录插入到文件中,或者从文件中检索记录,记录的存取次序可以是随机的,也可以是顺序的。VSAM文件可以有多个索引。这就是指文件中的记录,既有主键,也有次级键(AIX:AlternateIndex,替换键),但最多能有253个次级键,可以是记录中的任何字段,但必须有固定的长度和位置。替换键与主键一样具有同样的功能,而且,与主键相比,替换键的键值不必是唯一的值,因此在应用处理中允许用户能充分利用其灵活性。数据记录数据记录。。。。。数据记录KEY10KEY88KEY1000根据数据记录的键顺序而组织的键顺序文件VSAM中的KSDSKSDS结构和特征VSAM中的KSDSKSDS即索引顺序数据集(KeySequencedDataSet)最主要的特点是通过索引来组织和管理其中的数据。在KSDS文件中,每条逻辑记录中的同一位置都有唯一的一个关键字(key)需要注意的几点:Key为定长数据,且位于每条逻辑记录中的相同的位置。逻辑记录根据Key值的升序排列存放在文件之中。每一个Key的值必须唯一,以确定逻辑记录在文件中的排序序列。Key的值必须严格按从小到大的顺序连续排列。一旦Key的值被设定后,该值不可被更改。不过,可以将包含该Key的整条逻辑记录删除,这样同时也将该Key删除。KSDS中的key和索引KSDS即索引顺序数据集(KeySequencedDat在KSDS中主要涉及:索引部分和数据部分索引设施:IS(IndexSet)和顺序设施:SS(SequenceSet);KSDS的索引部分是在对其载入数据时自动建立的。并且,索引部分的SS包含所对应CA中每条CI的一个入口。该入口为对应CI中最大的Key值。而IS则相应的包含每条SS的一个入口;CA里的每一行代表其中的一个CI。CI中每一个单元格代表其中的一个逻辑记录,单元格中的数值表示该逻辑记录的Key值。KSDS的结构在KSDS中主要涉及:索引部分和数据部分KSDS的结构在KSDS中,逻辑记录是按照记录关键字(RecordKey)的升序存放的。IS:IndexedSet索引设施。SS:SequenceSet顺序设施。CI:ControlInterval表示在一次I/O操作中数据的转移量。CA:ControlArea由多个CI组成。KSDS的结构在KSDS中,逻辑记录是按照记录关键字(RecordKeyKSDS的访问方式KSDS的访问方式包含有顺序访问方式和直接访问方式这两种。对于顺序访问方式,需要注意一下几点:顺序访问通过SS中的Key值对数据进行访问。访问顺序既可为升序,也可为降序。当一个CA中的数据遍历完后仍未找到所求数据,将通过SS中的水平指针FS访问下一CA.可从KSDS文件中的任何一个位置开始顺序访问。当对KSDS中的数据记录进行直接访问时,将从KSDS的索引部分开始进行访问。对于直接访问方式,需要注意以下几点:直接访问从索引部分中最高一层的IS开始访问。通过索引部分层级之间的向下指针搜寻可能包含有所记录的CA及CI。检索可能包含有所记录的整条CI,以对记录进行访问,或判断该记录不存在。KSDS的访问方式CI的分割结合例子来讲解如果需要新增一个Key值为1024的逻辑记录,根据Key值顺序,只能在CI1中添加。并且,该逻辑记录应该添加在Key值为1019和1350的这两个逻辑记录之间。由于CI1已没有更多的空间装下该条逻辑记录,将会把CI1中的逻辑记录对等分割为两半。其中一半逻辑记录将存放在该CA中空白的CI3中。添加该记录后的KSDS内容如图所示。CI及CA分割技术CI的分割CI及CA分割技术SSKSDS原始数据CI0CACI1CI2CI3

CI及CA分割技术092814572705FS0715082409100928093609751019135014572089213725272705SSCI及CA分割技术092814572705FSSSCI分割后KSDS的内容CI0CI1CACI2CI3CI及CA分割技术0928101914572705FS07150824091009280936097510192089213725272705102413501457SSCI及CA分割技术0928101914572705FS0CA的分割如果对KSDS新增数据时,CA中没有空白CI用于进行CI分割了,将进行CA分割。例如,当在以上KSDS中再新增两个Key值分别为2107和2348的逻辑记录,KSDS数据部分内容将如图所示。需要注意的是,由于此时存在两个CA,因此索引部分中相应的也有两个SS。同时,这两个SS的上层IS中的数值也应相应地改变。因此,CA分割后,该KSDS的索引部分内容应该如图所示。CI及CA分割技术CA的分割CI及CA分割技术

CI0CI1CA0CI2CI3CA分割前数据部分

CI及CA分割技术0936097510190715082409100928CI及CA分割技术093609751019071

CI0CI1CA1CI2CI3

CA分割后数据部分内容

CI及CA分割技术234825272705208921072137102413501457CI及CA分割技术23482527270520809281457CI及CA分割技术09281019FS145721372705FSCA分割后索引部分的内容09281457CI及CA分割技术09281019FS145次索引技术定义次索引为逻辑记录提供次级key,同主索引中key进行交互,以提高记录访问效率。每条次索引中所包含的数据信息:标题信息次关键字一个或多个指向主数据集中逻辑记录的指针指针类别主数据集是KSDS,指针为主关键字的值。主数据集为KSDS,指针为RBA的值KSDS中的次索引次索引技术KSDS中的次索引在程序中指定VSAM文件对于COBOL程序而言,在对VSAM处理之前需在环境部和数据部对其进行指定。VSAM在系统中的名称为VKSDS,接下来我们对各项参数分别介绍:通过COBOL操作VSAM文件在程序中指定VSAM文件通过COBOL操作VSAM文件KSDA文件在COBOL程序中:ORGANIZATION:用于指定VSAM文件的逻辑结构。通常可以为SEQUENTIAL或INDEXED,默认是为SEQUENTIAL。ACCESSMODE:用于指定对该VSAM文件的访问模式。通常可以为SEQOENTIAL、RANDOM或DYNAMIC。Sequential对应顺序访问方式;RANDOM对应直接访问方式;DYNAMIC既可以为顺序访问方式又可以为直接访问方式。RECORDKEY:用于指定Key在程序中的名称。FILESTATUS:用于反映VSAM文件被读取或写入的状态。通过COBOL操作VSAM文件KSDA文件在COBOL程序中:通过COBOL操作VSAM文VSAM文件在COBOL程序中对于VSAM文件在数据部中的指定,主要需要注意一下几点。通过LABLERECORDIS(ARE)STANDARD指明该VSAM文件是否含有标(label)。通过DATARECORDIS(ARE)定义该VSAM文件中逻辑记录在程序中的名称。通过COPY命令将逻辑记录复制到程序工作区域中.VSAM文件在数据部中默认BLOCKCONTAINS0RECORDS一项。可默认RECORDCONTAINSnCHARACTERS一项。通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论