VSAM中文教學(xué)講解課件_第1頁
VSAM中文教學(xué)講解課件_第2頁
VSAM中文教學(xué)講解課件_第3頁
VSAM中文教學(xué)講解課件_第4頁
VSAM中文教學(xué)講解課件_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

VSAM:即虛擬存儲訪問方式;使用VSAM組織數(shù)據(jù),管理數(shù)據(jù)信息的文件稱為VSAM文件。VSAM文件所在的數(shù)據(jù)集稱為VSAM數(shù)據(jù)集.VSAM文件的分類:

LDS:線性數(shù)據(jù)集(LinearDataSet)ESDS:進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataSet)RRDS:相對記錄數(shù)據(jù)集(RelativeRecordDataSet)KSDS:索引順序數(shù)據(jù)集(KeySequenceDataSet)VRRDS:變長相對記錄數(shù)據(jù)集(Variable-lengthRelativeRecordDataSet)VSAM文件的基本概念VSAM:即虛擬存儲訪問方式;VSAM文件的基本概念LDS的定義LDS即線性數(shù)據(jù)集(lineardataset),LDS是最簡單的一類VSAM數(shù)據(jù)集,只包含數(shù)據(jù),不含任何控制信息。LDS通常僅用于保存和備份數(shù)據(jù)。LDS的結(jié)構(gòu)及特征LDS中僅包含數(shù)據(jù)部分,這些數(shù)據(jù)是純粹的數(shù)據(jù),沒有形成邏輯記錄。因此LDS的CI(ControlInterval)中沒有RDF(RecordDefinitionField)和CIDF(CIDataField)控制信息的。這一點(diǎn)是LDS區(qū)別于其他VSAM數(shù)據(jù)集的最大特點(diǎn)。LDS有多個CA(ControlArea)組成,并且每個CA由由多個CI組成VSAM中的LDSLDS的定義VSAM中的LDSLDS的基本結(jié)構(gòu)圖CICACILDSCICACIVSAM中的LDS數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LDS的基本結(jié)構(gòu)圖VSAM中的LDS數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LDS有某些特征如下LDS由ICF進(jìn)行編目管理,而沒有記錄管理。LDS中僅含有數(shù)據(jù)部分,而沒有索引部分。在LDS中不能定義次索引。在LDS中不能使用SpannedRecord技術(shù)。LDS中CI的大小最小為4KB,最大為32KB。LDS中的CI不含控制信息RDF以及CIDF。COBOL應(yīng)用程序必須清楚LDS中各段數(shù)據(jù)所表示的意義。VSAM中的LDSLDS有某些特征如下VSAM中的LDSRRDS的定義RRDS即相對記錄數(shù)據(jù)(RelativeRecordDataSet),在RRDS中存在著許多固定的區(qū)域,稱為Slot。RRDS中的數(shù)據(jù)便是存放在這些Slot之中。RRDS的結(jié)構(gòu)及特征RRDS結(jié)構(gòu)上最大的特點(diǎn)是每一個CI中的數(shù)據(jù)部分被劃分為等長的SLOT。這些Slot都被進(jìn)行了編號,稱之為相對記錄號碼RRN(RelativeRecordNumber)。RRDS的基本結(jié)構(gòu)CICI

CICIVSAM中的RRDSCACARRDSslot1slot2未使用空間RDF2RDF1CIDFslot3slot4未使用空間RDF4RDF3CIDFslot5slot6未使用空間RDF6RDF5CIDFslot7slot8未使用空間RDF8RDF7CIDFRRDS的定義VSAM中的RRDSCACARRDSslot1RRDS主要有以下特征:RRDS只有數(shù)據(jù)部分邏輯記錄按RRN進(jìn)行存放邏輯記錄只能為定長記錄邏輯記錄可以刪除,并將其所占Slot置為空狀態(tài)在創(chuàng)建RRDS時不能預(yù)留FreeSpace可以更新邏輯記錄的內(nèi)容,但是不可以改變邏輯記錄的長度不能建立次索引不能改變邏輯記錄的RRNVSAM中的RRDSRRDS主要有以下特征:VSAM中的RRDSRRDS的訪問方式RRDS的訪問方式通常有順序訪問和直接訪問方式兩種。對于順序訪問,應(yīng)該注意一下兩點(diǎn):訪問的順序依據(jù)RRN的值從小到大的順序順序訪問時,對于空的Slot,VSAM文件管理自動跳過當(dāng)對RRDS直接訪問時,將主要根據(jù)記錄的RRN進(jìn)行。對于直接訪問方式,應(yīng)該注意以下兩點(diǎn):VSAM文件系統(tǒng)將在內(nèi)部把所提供的RRN轉(zhuǎn)換為RBA(RelativeByteAddress),以對記錄進(jìn)行訪問不可直接使用RBA訪問RRDS中的數(shù)據(jù)VSAM中的RRDSRRDS的訪問方式VSAM中的RRDSESDS的基本概念ESDS即進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataset)。ESDS中數(shù)據(jù)的存放必須依照先后順序進(jìn)行,并且新增的數(shù)據(jù)必須在原數(shù)據(jù)的末尾添加。ESDS的結(jié)構(gòu)ESDS中僅有數(shù)據(jù)部分,不過其中的數(shù)據(jù)并非線性的,ESDS中的數(shù)據(jù)形成了相對獨(dú)立的邏輯記錄,并且每一記錄主要通過相對字節(jié)位置RBA進(jìn)行識別。在ESDS中包含有RDF和CIDF控制信息。

VSAM中的ESDSESDS的基本概念VSAM中的ESDSESDS的特征ESDS中僅含有數(shù)據(jù)部分,并且數(shù)據(jù)形成了邏輯記錄。邏輯記錄既可為定長記錄,也可為變長記錄。邏輯記錄不可刪除,不過可以進(jìn)行邏輯隱藏。新的數(shù)據(jù)只可在原數(shù)據(jù)末尾進(jìn)行添加。對邏輯記錄進(jìn)行順序訪問時,也可進(jìn)行直接訪問。當(dāng)對邏輯記錄進(jìn)行順序訪問時,訪問順序為記錄插入順序。當(dāng)對邏輯記錄進(jìn)行直接訪問時,根據(jù)記錄的RBA進(jìn)行訪問。支持spannedrecord技術(shù)。在創(chuàng)建時不能預(yù)留freespace??梢愿聰?shù)據(jù)記錄的內(nèi)容,但不能改變原有記錄的長度。不能改變資料記錄的RBA。VSAM中的ESDSESDS的特征VSAM中的ESDSESDS的訪問方式順序訪問方式當(dāng)對ESDS進(jìn)行順序訪問時,所訪問的數(shù)據(jù)記錄將根據(jù)記錄的存放順序自動查找獲得。直接訪問方式直接訪問方式是通過ESDS文件中的邏輯記錄的RBA進(jìn)行訪問的。邏輯記錄的RBA值和該記錄在ESDS文件中的位置有關(guān)。第一條記錄的RBA為0.對訪問方式的說明ESDS中的邏輯記錄不可在物理上進(jìn)行刪除,因為會影響到后面記錄的RBA值,不過在應(yīng)用程序中,可將其內(nèi)容視為空,以此從邏輯上將其刪除,實現(xiàn)邏輯隱藏。ESDS中的內(nèi)容可以被更改,但長度不可被更改。ESDS可訪問的邏輯記錄包括定長記錄,變長記錄,以及spannedrecord。ESDS文件添加記錄時,只能在原數(shù)據(jù)的末尾進(jìn)行添加。VSAM中的ESDSESDS的訪問方式VSAM中的ESDSSpannedRecord技術(shù)簡單的說就是當(dāng)邏輯記錄的長度大于一個CI的大小時,將其進(jìn)行切分,并分別使用多個CI進(jìn)行存放。該技術(shù)僅使用與ESDS文件和KSDS文件。使用SpannedRecord技術(shù)處理的邏輯長度應(yīng)該大于一個CI的大小。所處理的記錄以CI的大小為單位進(jìn)行分割,并將分割后的內(nèi)容分別存放在多個CI中。存放邏輯記錄分段的每個CI中應(yīng)有連個RDF控制信息,以保證其連貫性。SpannedRecord技術(shù)只可跨越多個CI進(jìn)行,而不可跨越CA。當(dāng)邏輯記錄的長度大于CI的大小減去7倍的RDF與CIDF大小之和時,將對其進(jìn)行處理。整個邏輯記錄的最大長度為一個CA的大小減去其中控制信息的長度。必須使用MOVE模式對其進(jìn)行訪問。程序的工作區(qū)域和I/O區(qū)域必須足夠大,空間大小至少要大于最大的SpannedRecord的長度。VSAM中的ESDSSpannedRecord技術(shù)VSAM中的ESDSKSDS結(jié)構(gòu)和特征與ISAM(IndexSequenceAccessMethod)文件一樣,KSDS文件根據(jù)用戶在每個記錄中所定義的鍵字段作為次序,也就是文件中的記錄根據(jù)在每個記錄中的鍵字段的排序序列而定位,每個記錄在鍵字段有唯一的一個值。VSAM使用與每個記錄相結(jié)合的鍵,把記錄插入到文件中,或者從文件中檢索記錄,記錄的存取次序可以是隨機(jī)的,也可以是順序的。VSAM文件可以有多個索引。這就是指文件中的記錄,既有主鍵,也有次級鍵(AIX:AlternateIndex,替換鍵),但最多能有253個次級鍵,可以是記錄中的任何字段,但必須有固定的長度和位置。替換鍵與主鍵一樣具有同樣的功能,而且,與主鍵相比,替換鍵的鍵值不必是唯一的值,因此在應(yīng)用處理中允許用戶能充分利用其靈活性。數(shù)據(jù)記錄數(shù)據(jù)記錄。。。。。數(shù)據(jù)記錄KEY10KEY88KEY1000根據(jù)數(shù)據(jù)記錄的鍵順序而組織的鍵順序文件VSAM中的KSDSKSDS結(jié)構(gòu)和特征VSAM中的KSDSKSDS即索引順序數(shù)據(jù)集(KeySequencedDataSet)最主要的特點(diǎn)是通過索引來組織和管理其中的數(shù)據(jù)。在KSDS文件中,每條邏輯記錄中的同一位置都有唯一的一個關(guān)鍵字(key)需要注意的幾點(diǎn):Key為定長數(shù)據(jù),且位于每條邏輯記錄中的相同的位置。邏輯記錄根據(jù)Key值的升序排列存放在文件之中。每一個Key的值必須唯一,以確定邏輯記錄在文件中的排序序列。Key的值必須嚴(yán)格按從小到大的順序連續(xù)排列。一旦Key的值被設(shè)定后,該值不可被更改。不過,可以將包含該Key的整條邏輯記錄刪除,這樣同時也將該Key刪除。KSDS中的key和索引KSDS即索引順序數(shù)據(jù)集(KeySequencedDat在KSDS中主要涉及:索引部分和數(shù)據(jù)部分索引設(shè)施:IS(IndexSet)和順序設(shè)施:SS(SequenceSet);KSDS的索引部分是在對其載入數(shù)據(jù)時自動建立的。并且,索引部分的SS包含所對應(yīng)CA中每條CI的一個入口。該入口為對應(yīng)CI中最大的Key值。而IS則相應(yīng)的包含每條SS的一個入口;CA里的每一行代表其中的一個CI。CI中每一個單元格代表其中的一個邏輯記錄,單元格中的數(shù)值表示該邏輯記錄的Key值。KSDS的結(jié)構(gòu)在KSDS中主要涉及:索引部分和數(shù)據(jù)部分KSDS的結(jié)構(gòu)在KSDS中,邏輯記錄是按照記錄關(guān)鍵字(RecordKey)的升序存放的。IS:IndexedSet索引設(shè)施。SS:SequenceSet順序設(shè)施。CI:ControlInterval表示在一次I/O操作中數(shù)據(jù)的轉(zhuǎn)移量。CA:ControlArea由多個CI組成。KSDS的結(jié)構(gòu)在KSDS中,邏輯記錄是按照記錄關(guān)鍵字(RecordKeyKSDS的訪問方式KSDS的訪問方式包含有順序訪問方式和直接訪問方式這兩種。對于順序訪問方式,需要注意一下幾點(diǎn):順序訪問通過SS中的Key值對數(shù)據(jù)進(jìn)行訪問。訪問順序既可為升序,也可為降序。當(dāng)一個CA中的數(shù)據(jù)遍歷完后仍未找到所求數(shù)據(jù),將通過SS中的水平指針FS訪問下一CA.可從KSDS文件中的任何一個位置開始順序訪問。當(dāng)對KSDS中的數(shù)據(jù)記錄進(jìn)行直接訪問時,將從KSDS的索引部分開始進(jìn)行訪問。對于直接訪問方式,需要注意以下幾點(diǎn):直接訪問從索引部分中最高一層的IS開始訪問。通過索引部分層級之間的向下指針?biāo)褜た赡馨兴涗浀腃A及CI。檢索可能包含有所記錄的整條CI,以對記錄進(jìn)行訪問,或判斷該記錄不存在。KSDS的訪問方式CI的分割結(jié)合例子來講解如果需要新增一個Key值為1024的邏輯記錄,根據(jù)Key值順序,只能在CI1中添加。并且,該邏輯記錄應(yīng)該添加在Key值為1019和1350的這兩個邏輯記錄之間。由于CI1已沒有更多的空間裝下該條邏輯記錄,將會把CI1中的邏輯記錄對等分割為兩半。其中一半邏輯記錄將存放在該CA中空白的CI3中。添加該記錄后的KSDS內(nèi)容如圖所示。CI及CA分割技術(shù)CI的分割CI及CA分割技術(shù)SSKSDS原始數(shù)據(jù)CI0CACI1CI2CI3

CI及CA分割技術(shù)092814572705FS0715082409100928093609751019135014572089213725272705SSCI及CA分割技術(shù)092814572705FSSSCI分割后KSDS的內(nèi)容CI0CI1CACI2CI3CI及CA分割技術(shù)0928101914572705FS07150824091009280936097510192089213725272705102413501457SSCI及CA分割技術(shù)0928101914572705FS0CA的分割如果對KSDS新增數(shù)據(jù)時,CA中沒有空白CI用于進(jìn)行CI分割了,將進(jìn)行CA分割。例如,當(dāng)在以上KSDS中再新增兩個Key值分別為2107和2348的邏輯記錄,KSDS數(shù)據(jù)部分內(nèi)容將如圖所示。需要注意的是,由于此時存在兩個CA,因此索引部分中相應(yīng)的也有兩個SS。同時,這兩個SS的上層IS中的數(shù)值也應(yīng)相應(yīng)地改變。因此,CA分割后,該KSDS的索引部分內(nèi)容應(yīng)該如圖所示。CI及CA分割技術(shù)CA的分割CI及CA分割技術(shù)

CI0CI1CA0CI2CI3CA分割前數(shù)據(jù)部分

CI及CA分割技術(shù)0936097510190715082409100928CI及CA分割技術(shù)093609751019071

CI0CI1CA1CI2CI3

CA分割后數(shù)據(jù)部分內(nèi)容

CI及CA分割技術(shù)234825272705208921072137102413501457CI及CA分割技術(shù)23482527270520809281457CI及CA分割技術(shù)09281019FS145721372705FSCA分割后索引部分的內(nèi)容09281457CI及CA分割技術(shù)09281019FS145次索引技術(shù)定義次索引為邏輯記錄提供次級key,同主索引中key進(jìn)行交互,以提高記錄訪問效率。每條次索引中所包含的數(shù)據(jù)信息:標(biāo)題信息次關(guān)鍵字一個或多個指向主數(shù)據(jù)集中邏輯記錄的指針指針類別主數(shù)據(jù)集是KSDS,指針為主關(guān)鍵字的值。主數(shù)據(jù)集為KSDS,指針為RBA的值KSDS中的次索引次索引技術(shù)KSDS中的次索引在程序中指定VSAM文件對于COBOL程序而言,在對VSAM處理之前需在環(huán)境部和數(shù)據(jù)部對其進(jìn)行指定。VSAM在系統(tǒng)中的名稱為VKSDS,接下來我們對各項參數(shù)分別介紹:通過COBOL操作VSAM文件在程序中指定VSAM文件通過COBOL操作VSAM文件KSDA文件在COBOL程序中:ORGANIZATION:用于指定VSAM文件的邏輯結(jié)構(gòu)。通常可以為SEQUENTIAL或INDEXED,默認(rèn)是為SEQUENTIAL。ACCESSMODE:用于指定對該VSAM文件的訪問模式。通??梢詾镾EQOENTIAL、RANDOM或DYNAMIC。Sequential對應(yīng)順序訪問方式;RANDOM對應(yīng)直接訪問方式;DYNAMIC既可以為順序訪問方式又可以為直接訪問方式。RECORDKEY:用于指定Key在程序中的名稱。FILESTATUS:用于反映VSAM文件被讀取或?qū)懭氲臓顟B(tài)。通過COBOL操作VSAM文件KSDA文件在COBOL程序中:通過COBOL操作VSAM文VSAM文件在COBOL程序中對于VSAM文件在數(shù)據(jù)部中的指定,主要需要注意一下幾點(diǎn)。通過LABLERECORDIS(ARE)STANDARD指明該VSAM文件是否含有標(biāo)(label)。通過DATARECORDIS(ARE)定義該VSAM文件中邏輯記錄在程序中的名稱。通過COPY命令將邏輯記錄復(fù)制到程序工作區(qū)域中.VSAM文件在數(shù)據(jù)部中默認(rèn)BLOCKCONTAINS0RECORDS一項??赡J(rèn)RECORDCONTAINSnCHARACTERS一項。通過COBOL操作VSAM文件VSAM文件在COBOL程序中通過COBOL操作VSAM文件VSAM文件的打開和關(guān)閉在對VSAM文件進(jìn)行任何處理之前,首先需要打開該文件。并且,為保護(hù)文件數(shù)據(jù),在程序結(jié)束后也應(yīng)該關(guān)閉該文件。打開和關(guān)閉文件是通過OPEN和CLOSE命令進(jìn)行的。并且,在打開的文件中需要指明該文件用來輸入、輸出還是中間文件。以下為打開和關(guān)閉VSAM文件的相應(yīng)代碼。PROCEDUREDIVISION.OPENINPUTKS-FILE01,KS-FILE02I-ORR-FILEOUTPUTES-FILE.……CLOSEKS-FILE01,KS-FILE02,RR-FILE,ES-FILE.STOPRUN.通過COBOL操作VSAM文件VSAM文件的打開和關(guān)閉通過COBOL操作VSAM文件VSAM文件的讀取順序讀取方式

相應(yīng)的代碼如下:READKS-FILE01NEXTRECORDATENDGOTO100-TEST-ENDEND-READ.隨機(jī)讀取方式

相應(yīng)的代碼如下:READKS-FILE02KEYISTEST-RCD-KEYINVALIDKEYGOTO200-TEST-ABENDEND-READ.動態(tài)讀取方式

動態(tài)讀取方式是順序讀取方式和隨機(jī)讀取方式的綜合。通過COBOL操作VSAM文件VSAM文件的讀取通過COBOL操作VSAM文件Write(寫入)和Rewrite(改寫)在VSAM中write和rewrite操作與正常文件基本相同,其形式為:WRITEAFROMB.

REWRITEAFROMB.與其他write和rewrite的區(qū)別在于:write可以用于output和I-O模式下打開的VSAM文件。rewrite只能用于I-O模式下的VSAM文件所寫入和改寫的名稱應(yīng)該為記錄名,而不是文件名,如:WRITEKS01-RCDFROMTEST-REC01.REWRITERR-RCDFROMTEST-RCD02.通過COBOL操作VSAM文件Write(寫入)和Rewrite(改寫)通過COVSAM文件的刪除當(dāng)需要對VSAM文件中的記錄進(jìn)行刪除時,可以使用DELETE命令,一下為刪除VSAN文件中記錄的相應(yīng)代碼:DELETEKS-FILE01RECORDINVILIDKEYDISPLAY‘DELETEFAILED’.其中INVILIDKEY從句指明當(dāng)刪除失敗時的操作START語句當(dāng)處理的VSAM文件為索引文件時(KSDS),在COBOL中還可以提供指針定位功能

相應(yīng)代碼如下:STARTKS-FILE02KEY<TEST-VALUEINVILIDKEYDISPLAY‘NOSUCHRECORD’通過COBOL操作VSAM文件VSAM文件的刪除通過COBOL操作VSAM文件VASM文件的處理方式:在線(ONLINE)方式批處理(BATCH)方式ONLINE方式:此時VASM文件不用在COBOL程序中進(jìn)行打開和關(guān)閉。所用到的文件將在CICS打開。同時,該方式下可以實現(xiàn)多終端對文件的操作,而不必等待用戶或資源。BATCH方式:VASM文件必須在COBOL程序中進(jìn)行打開和關(guān)閉。同時,每次只能有一個作業(yè)可以對該文件進(jìn)行操作。其余作業(yè)需要等到該作業(yè)結(jié)束后,才可對其所占用的VASM文件進(jìn)行操作。VSAM文件的處理方式VASM文件的處理方式:VSAM文件的處理方式VSAM:即虛擬存儲訪問方式;使用VSAM組織數(shù)據(jù),管理數(shù)據(jù)信息的文件稱為VSAM文件。VSAM文件所在的數(shù)據(jù)集稱為VSAM數(shù)據(jù)集.VSAM文件的分類:

LDS:線性數(shù)據(jù)集(LinearDataSet)ESDS:進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataSet)RRDS:相對記錄數(shù)據(jù)集(RelativeRecordDataSet)KSDS:索引順序數(shù)據(jù)集(KeySequenceDataSet)VRRDS:變長相對記錄數(shù)據(jù)集(Variable-lengthRelativeRecordDataSet)VSAM文件的基本概念VSAM:即虛擬存儲訪問方式;VSAM文件的基本概念LDS的定義LDS即線性數(shù)據(jù)集(lineardataset),LDS是最簡單的一類VSAM數(shù)據(jù)集,只包含數(shù)據(jù),不含任何控制信息。LDS通常僅用于保存和備份數(shù)據(jù)。LDS的結(jié)構(gòu)及特征LDS中僅包含數(shù)據(jù)部分,這些數(shù)據(jù)是純粹的數(shù)據(jù),沒有形成邏輯記錄。因此LDS的CI(ControlInterval)中沒有RDF(RecordDefinitionField)和CIDF(CIDataField)控制信息的。這一點(diǎn)是LDS區(qū)別于其他VSAM數(shù)據(jù)集的最大特點(diǎn)。LDS有多個CA(ControlArea)組成,并且每個CA由由多個CI組成VSAM中的LDSLDS的定義VSAM中的LDSLDS的基本結(jié)構(gòu)圖CICACILDSCICACIVSAM中的LDS數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LDS的基本結(jié)構(gòu)圖VSAM中的LDS數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)LDS有某些特征如下LDS由ICF進(jìn)行編目管理,而沒有記錄管理。LDS中僅含有數(shù)據(jù)部分,而沒有索引部分。在LDS中不能定義次索引。在LDS中不能使用SpannedRecord技術(shù)。LDS中CI的大小最小為4KB,最大為32KB。LDS中的CI不含控制信息RDF以及CIDF。COBOL應(yīng)用程序必須清楚LDS中各段數(shù)據(jù)所表示的意義。VSAM中的LDSLDS有某些特征如下VSAM中的LDSRRDS的定義RRDS即相對記錄數(shù)據(jù)(RelativeRecordDataSet),在RRDS中存在著許多固定的區(qū)域,稱為Slot。RRDS中的數(shù)據(jù)便是存放在這些Slot之中。RRDS的結(jié)構(gòu)及特征RRDS結(jié)構(gòu)上最大的特點(diǎn)是每一個CI中的數(shù)據(jù)部分被劃分為等長的SLOT。這些Slot都被進(jìn)行了編號,稱之為相對記錄號碼RRN(RelativeRecordNumber)。RRDS的基本結(jié)構(gòu)CICI

CICIVSAM中的RRDSCACARRDSslot1slot2未使用空間RDF2RDF1CIDFslot3slot4未使用空間RDF4RDF3CIDFslot5slot6未使用空間RDF6RDF5CIDFslot7slot8未使用空間RDF8RDF7CIDFRRDS的定義VSAM中的RRDSCACARRDSslot1RRDS主要有以下特征:RRDS只有數(shù)據(jù)部分邏輯記錄按RRN進(jìn)行存放邏輯記錄只能為定長記錄邏輯記錄可以刪除,并將其所占Slot置為空狀態(tài)在創(chuàng)建RRDS時不能預(yù)留FreeSpace可以更新邏輯記錄的內(nèi)容,但是不可以改變邏輯記錄的長度不能建立次索引不能改變邏輯記錄的RRNVSAM中的RRDSRRDS主要有以下特征:VSAM中的RRDSRRDS的訪問方式RRDS的訪問方式通常有順序訪問和直接訪問方式兩種。對于順序訪問,應(yīng)該注意一下兩點(diǎn):訪問的順序依據(jù)RRN的值從小到大的順序順序訪問時,對于空的Slot,VSAM文件管理自動跳過當(dāng)對RRDS直接訪問時,將主要根據(jù)記錄的RRN進(jìn)行。對于直接訪問方式,應(yīng)該注意以下兩點(diǎn):VSAM文件系統(tǒng)將在內(nèi)部把所提供的RRN轉(zhuǎn)換為RBA(RelativeByteAddress),以對記錄進(jìn)行訪問不可直接使用RBA訪問RRDS中的數(shù)據(jù)VSAM中的RRDSRRDS的訪問方式VSAM中的RRDSESDS的基本概念ESDS即進(jìn)入順序數(shù)據(jù)集(EntrySequencedDataset)。ESDS中數(shù)據(jù)的存放必須依照先后順序進(jìn)行,并且新增的數(shù)據(jù)必須在原數(shù)據(jù)的末尾添加。ESDS的結(jié)構(gòu)ESDS中僅有數(shù)據(jù)部分,不過其中的數(shù)據(jù)并非線性的,ESDS中的數(shù)據(jù)形成了相對獨(dú)立的邏輯記錄,并且每一記錄主要通過相對字節(jié)位置RBA進(jìn)行識別。在ESDS中包含有RDF和CIDF控制信息。

VSAM中的ESDSESDS的基本概念VSAM中的ESDSESDS的特征ESDS中僅含有數(shù)據(jù)部分,并且數(shù)據(jù)形成了邏輯記錄。邏輯記錄既可為定長記錄,也可為變長記錄。邏輯記錄不可刪除,不過可以進(jìn)行邏輯隱藏。新的數(shù)據(jù)只可在原數(shù)據(jù)末尾進(jìn)行添加。對邏輯記錄進(jìn)行順序訪問時,也可進(jìn)行直接訪問。當(dāng)對邏輯記錄進(jìn)行順序訪問時,訪問順序為記錄插入順序。當(dāng)對邏輯記錄進(jìn)行直接訪問時,根據(jù)記錄的RBA進(jìn)行訪問。支持spannedrecord技術(shù)。在創(chuàng)建時不能預(yù)留freespace。可以更新數(shù)據(jù)記錄的內(nèi)容,但不能改變原有記錄的長度。不能改變資料記錄的RBA。VSAM中的ESDSESDS的特征VSAM中的ESDSESDS的訪問方式順序訪問方式當(dāng)對ESDS進(jìn)行順序訪問時,所訪問的數(shù)據(jù)記錄將根據(jù)記錄的存放順序自動查找獲得。直接訪問方式直接訪問方式是通過ESDS文件中的邏輯記錄的RBA進(jìn)行訪問的。邏輯記錄的RBA值和該記錄在ESDS文件中的位置有關(guān)。第一條記錄的RBA為0.對訪問方式的說明ESDS中的邏輯記錄不可在物理上進(jìn)行刪除,因為會影響到后面記錄的RBA值,不過在應(yīng)用程序中,可將其內(nèi)容視為空,以此從邏輯上將其刪除,實現(xiàn)邏輯隱藏。ESDS中的內(nèi)容可以被更改,但長度不可被更改。ESDS可訪問的邏輯記錄包括定長記錄,變長記錄,以及spannedrecord。ESDS文件添加記錄時,只能在原數(shù)據(jù)的末尾進(jìn)行添加。VSAM中的ESDSESDS的訪問方式VSAM中的ESDSSpannedRecord技術(shù)簡單的說就是當(dāng)邏輯記錄的長度大于一個CI的大小時,將其進(jìn)行切分,并分別使用多個CI進(jìn)行存放。該技術(shù)僅使用與ESDS文件和KSDS文件。使用SpannedRecord技術(shù)處理的邏輯長度應(yīng)該大于一個CI的大小。所處理的記錄以CI的大小為單位進(jìn)行分割,并將分割后的內(nèi)容分別存放在多個CI中。存放邏輯記錄分段的每個CI中應(yīng)有連個RDF控制信息,以保證其連貫性。SpannedRecord技術(shù)只可跨越多個CI進(jìn)行,而不可跨越CA。當(dāng)邏輯記錄的長度大于CI的大小減去7倍的RDF與CIDF大小之和時,將對其進(jìn)行處理。整個邏輯記錄的最大長度為一個CA的大小減去其中控制信息的長度。必須使用MOVE模式對其進(jìn)行訪問。程序的工作區(qū)域和I/O區(qū)域必須足夠大,空間大小至少要大于最大的SpannedRecord的長度。VSAM中的ESDSSpannedRecord技術(shù)VSAM中的ESDSKSDS結(jié)構(gòu)和特征與ISAM(IndexSequenceAccessMethod)文件一樣,KSDS文件根據(jù)用戶在每個記錄中所定義的鍵字段作為次序,也就是文件中的記錄根據(jù)在每個記錄中的鍵字段的排序序列而定位,每個記錄在鍵字段有唯一的一個值。VSAM使用與每個記錄相結(jié)合的鍵,把記錄插入到文件中,或者從文件中檢索記錄,記錄的存取次序可以是隨機(jī)的,也可以是順序的。VSAM文件可以有多個索引。這就是指文件中的記錄,既有主鍵,也有次級鍵(AIX:AlternateIndex,替換鍵),但最多能有253個次級鍵,可以是記錄中的任何字段,但必須有固定的長度和位置。替換鍵與主鍵一樣具有同樣的功能,而且,與主鍵相比,替換鍵的鍵值不必是唯一的值,因此在應(yīng)用處理中允許用戶能充分利用其靈活性。數(shù)據(jù)記錄數(shù)據(jù)記錄。。。。。數(shù)據(jù)記錄KEY10KEY88KEY1000根據(jù)數(shù)據(jù)記錄的鍵順序而組織的鍵順序文件VSAM中的KSDSKSDS結(jié)構(gòu)和特征VSAM中的KSDSKSDS即索引順序數(shù)據(jù)集(KeySequencedDataSet)最主要的特點(diǎn)是通過索引來組織和管理其中的數(shù)據(jù)。在KSDS文件中,每條邏輯記錄中的同一位置都有唯一的一個關(guān)鍵字(key)需要注意的幾點(diǎn):Key為定長數(shù)據(jù),且位于每條邏輯記錄中的相同的位置。邏輯記錄根據(jù)Key值的升序排列存放在文件之中。每一個Key的值必須唯一,以確定邏輯記錄在文件中的排序序列。Key的值必須嚴(yán)格按從小到大的順序連續(xù)排列。一旦Key的值被設(shè)定后,該值不可被更改。不過,可以將包含該Key的整條邏輯記錄刪除,這樣同時也將該Key刪除。KSDS中的key和索引KSDS即索引順序數(shù)據(jù)集(KeySequencedDat在KSDS中主要涉及:索引部分和數(shù)據(jù)部分索引設(shè)施:IS(IndexSet)和順序設(shè)施:SS(SequenceSet);KSDS的索引部分是在對其載入數(shù)據(jù)時自動建立的。并且,索引部分的SS包含所對應(yīng)CA中每條CI的一個入口。該入口為對應(yīng)CI中最大的Key值。而IS則相應(yīng)的包含每條SS的一個入口;CA里的每一行代表其中的一個CI。CI中每一個單元格代表其中的一個邏輯記錄,單元格中的數(shù)值表示該邏輯記錄的Key值。KSDS的結(jié)構(gòu)在KSDS中主要涉及:索引部分和數(shù)據(jù)部分KSDS的結(jié)構(gòu)在KSDS中,邏輯記錄是按照記錄關(guān)鍵字(RecordKey)的升序存放的。IS:IndexedSet索引設(shè)施。SS:SequenceSet順序設(shè)施。CI:ControlInterval表示在一次I/O操作中數(shù)據(jù)的轉(zhuǎn)移量。CA:ControlArea由多個CI組成。KSDS的結(jié)構(gòu)在KSDS中,邏輯記錄是按照記錄關(guān)鍵字(RecordKeyKSDS的訪問方式KSDS的訪問方式包含有順序訪問方式和直接訪問方式這兩種。對于順序訪問方式,需要注意一下幾點(diǎn):順序訪問通過SS中的Key值對數(shù)據(jù)進(jìn)行訪問。訪問順序既可為升序,也可為降序。當(dāng)一個CA中的數(shù)據(jù)遍歷完后仍未找到所求數(shù)據(jù),將通過SS中的水平指針FS訪問下一CA.可從KSDS文件中的任何一個位置開始順序訪問。當(dāng)對KSDS中的數(shù)據(jù)記錄進(jìn)行直接訪問時,將從KSDS的索引部分開始進(jìn)行訪問。對于直接訪問方式,需要注意以下幾點(diǎn):直接訪問從索引部分中最高一層的IS開始訪問。通過索引部分層級之間的向下指針?biāo)褜た赡馨兴涗浀腃A及CI。檢索可能包含有所記錄的整條CI,以對記錄進(jìn)行訪問,或判斷該記錄不存在。KSDS的訪問方式CI的分割結(jié)合例子來講解如果需要新增一個Key值為1024的邏輯記錄,根據(jù)Key值順序,只能在CI1中添加。并且,該邏輯記錄應(yīng)該添加在Key值為1019和1350的這兩個邏輯記錄之間。由于CI1已沒有更多的空間裝下該條邏輯記錄,將會把CI1中的邏輯記錄對等分割為兩半。其中一半邏輯記錄將存放在該CA中空白的CI3中。添加該記錄后的KSDS內(nèi)容如圖所示。CI及CA分割技術(shù)CI的分割CI及CA分割技術(shù)SSKSDS原始數(shù)據(jù)CI0CACI1CI2CI3

CI及CA分割技術(shù)092814572705FS0715082409100928093609751019135014572089213725272705SSCI及CA分割技術(shù)092814572705FSSSCI分割后KSDS的內(nèi)容CI0CI1CACI2CI3CI及CA分割技術(shù)0928101914572705FS07150824091009280936097510192089213725272705102413501457SSCI及CA分割技術(shù)0928101914572705FS0CA的分割如果對KSDS新增數(shù)據(jù)時,CA中沒有空白CI用于進(jìn)行CI分割了,將進(jìn)行CA分割。例如,當(dāng)在以上KSDS中再新增兩個Key值分別為2107和2348的邏輯記錄,KSDS數(shù)據(jù)部分內(nèi)容將如圖所示。需要注意的是,由于此時存在兩個CA,因此索引部分中相應(yīng)的也有兩個SS。同時,這兩個SS的上層IS中的數(shù)值也應(yīng)相應(yīng)地改變。因此,CA分割后,該KSDS的索引部分內(nèi)容應(yīng)該如圖所示。CI及CA分割技術(shù)CA的分割CI及CA分割技術(shù)

CI0CI1CA0CI2CI3CA分割前數(shù)據(jù)部分

CI及CA分割技術(shù)0936097510190715082409100928CI及CA分割技術(shù)093609751019071

CI0CI1CA1CI2CI3

CA分割后數(shù)據(jù)部分內(nèi)容

CI及CA分割技術(shù)234825272705208921072137102413501457CI及CA分割技術(shù)23482527270520809281457CI及CA分割技術(shù)09281019FS145721372705FSCA分割后索引部分的內(nèi)容09281457CI及CA分割技術(shù)09281019FS145次索引技術(shù)定義次索引為邏輯記錄提供次級key,同主索引中key進(jìn)行交互,以提高記錄訪問效率。每條次索引中所包含的數(shù)據(jù)信息:標(biāo)題信息次關(guān)鍵字一個或多個指向主數(shù)據(jù)集中邏輯記錄的指針指針類別主數(shù)據(jù)集是KSDS,指針為主關(guān)鍵字的值。主數(shù)據(jù)集為KSDS,指針為RBA的值KSDS中的次索引次索引技術(shù)KSDS中的次索引在程序中指定VSAM文件對于COBOL程序而言,在對VSAM處理之前需在環(huán)境部和數(shù)據(jù)部對其進(jìn)行指定。VSAM在系統(tǒng)中的名稱為VKSDS,接下來我們對各項參數(shù)分別介紹:通過COBOL操作VSAM文件在程序中指定VSAM文件通過COBOL操作VSAM文件KSDA文件在COBOL程序中:ORGANIZATION:用于指定VSAM文件的邏輯結(jié)構(gòu)。通??梢詾镾EQUENTIAL或INDEXED,默認(rèn)是為SEQUENTIAL。ACCESSMODE:用于指定對該VSAM文件的訪問模式。通??梢詾镾EQOENTIAL、RANDOM或DYNAMIC。Sequential對應(yīng)順序訪問方式;RANDOM對應(yīng)直接訪問方式;DYNAMIC既可以為順序訪問方式又可以為直接訪問方式。RECORDKEY:用于指定Key在程序中的名稱。FILESTATUS:用于反映VSAM文件被讀取或?qū)懭氲臓顟B(tài)。通過COBOL操作VSAM文件KSDA文件在COBOL程序中:通過COBOL操作VSAM文VSAM文件在COBOL程序中對于VSAM文件在數(shù)據(jù)部中的指定,主要需要注意一下幾點(diǎn)。通過LABLERECORDIS(ARE)STANDARD指明該VSAM文件是否含有標(biāo)(label)。通過DATARECORDIS(ARE)定義該VSAM文件中邏輯記錄在程序中的名稱。通過COPY命令將邏輯記錄復(fù)制到程序工作區(qū)域中.VSAM文件在數(shù)據(jù)部中默認(rèn)BLOCKCONTAINS0RECORDS一項??赡J(rèn)RECORDCONTAINSnCHARACTERS一項。通過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論