VSAM - KSDS

KSDS, Anahtar Sıralı Veri Kümesi olarak bilinir. Anahtar sıralı veri seti (KSDS), ESDS ve RRDS'den daha karmaşıktır, ancak daha kullanışlı ve çok yönlüdür. KodlamalıyızINDEXEDKSDS veri kümeleri için DEFINE CLUSTER komutunun içinde. KSDS kümesi aşağıdaki iki bileşenden oluşur:

  • Index- KSDS kümesinin dizin bileşeni, veri bileşenindeki karşılık gelen kayıtlara işaretçilerle birlikte kümedeki kayıtlar için anahtar değerlerin listesini içerir. Dizin bileşeni, bir KSDS kaydının fiziksel adresini belirtir. Bu, her kaydın anahtarını kaydın veri kümesindeki göreceli konumu ile ilişkilendirir. Bir kayıt eklendiğinde veya silindiğinde, bu dizin buna göre güncellenir.

  • Data- KSDS kümesinin veri bileşeni, gerçek verileri içerir. Bir KSDS kümesinin veri bileşenindeki her kayıt, aynı sayıda karaktere sahip bir anahtar alan içerir ve her kayıtta aynı göreceli konumda gerçekleşir.

Aşağıdakiler KSDS'nin temel özellikleridir -

  • KSDS veri kümesindeki kayıtlar her zaman anahtar alanına göre sıralı olarak tutulur. Kayıtlar, anahtarla artan, harmanlayarak saklanır.

  • Kayıtlara sıralı olarak erişilebilir ve doğrudan erişim de mümkündür.

  • Kayıtlar bir anahtar kullanılarak tanımlanır. Her kaydın anahtarı, kayıt içinde önceden tanımlanmış bir konumda bulunan bir alandır. Her anahtar, KSDS veri kümesinde benzersiz olmalıdır. Dolayısıyla kayıtların çoğaltılması mümkün değildir.

  • Yeni kayıtlar eklendiğinde, kayıtların mantıksal sırası anahtar alanının harmanlama sırasına bağlıdır.

  • KSDS veri kümesindeki kayıtlar sabit uzunlukta veya değişken uzunlukta olabilir.

  • KSDS kullanılabilir COBOLdiğer dosyalar gibi programlar. Dosya adını JCL'de belirteceğiz ve KSDS dosyasını program içinde işlemek için kullanabiliriz. COBOL programında dosya organizasyonunu şu şekilde belirtin:Indexed ve herhangi bir erişim modunu kullanabilirsiniz (Sequential, Random or Dynamic) KSDS veri kümesiyle.

KSDS Dosya Yapısı

Belirli bir kaydı aramak için benzersiz bir anahtar değeri veriyoruz. Anahtar değeri, dizin bileşeninde aranır. Anahtar bulunduğunda, veri bileşenine atıfta bulunan karşılık gelen hafıza adresi alınır. Bellek adresinden, veri bileşeninde depolanan gerçek verileri alabiliriz. Aşağıdaki örnek, dizin ve veri dosyasının temel yapısını göstermektedir -

KSDS Kümesini Tanımlama

Aşağıdaki sözdizimi, KSDS kümesi oluştururken hangi parametreleri kullanabileceğimizi gösterir.

Parametre açıklaması VSAM - Küme modülünde belirtilenle aynı kalır.

DEFINE CLUSTER (NAME(ksds-file-name)     -
BLOCKS(number)                           -
VOLUMES(volume-serial)                   -
INDEXED                                  -
KEYS(length offset)                      -
RECSZ(average maximum)                   -
[FREESPACE(CI-Percentage,CA-Percentage)] -
CISZ(number)                             -
[READPW(password)]                       -
[FOR(days)|TO(date)]                     -
[UPDATEPW(password)]                     -
[REUSE / NOREUSE])                       -
DATA                                     -
   (NAME(ksds-file-name.data))           -
INDEX                                    -
   (NAME(ksds-file-name.index))

Misal

Aşağıdaki örnek, IDCAMS yardımcı programını kullanarak JCL'de bir KSDS kümesinin nasıl oluşturulacağını göstermektedir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE CLUSTER (NAME(MY.VSAM.KSDSFILE)  -
   INDEXED                                 -
   KEYS(6 1)	                           -	
   RECSZ(80 80)                            -
   TRACKS(1,1)                             -
   CISZ(4096)                              -                            
   FREESPACE(3 3) )                        -
   DATA (NAME(MY.VSAM.KSDSFILE.DATA))      -
   INDEX (NAME(MY.VSAM.KSDSFILE.INDEX))    -
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve MY.VSAM.KSDSFILE VSAM dosyasını oluşturacaktır.

KSDS Kümesini Silme

KSDS kümesi, IDCAMS yardımcı programı kullanılarak silinir. DELETE komutu, VSAM kümesinin girişini katalogdan kaldırır ve isteğe bağlı olarak dosyayı kaldırır, böylece nesnenin kapladığı alanı serbest bırakır.

DELETE data-set-name CLUSTER  
[ERASE / NOERASE] 
[FORCE / NOFORCE] 
[PURGE / NOPURGE] 
[SCRATCH / NOSCRATCH]

Yukarıdaki sözdizimi, KSDS kümesini silerken hangi parametreleri kullanabileceğimizi gösterir. Parametre açıklaması VSAM - Küme modülünde belirtilenle aynı kalır.

Misal

Aşağıdaki örnek, IDCAMS yardımcı programını kullanarak JCL'de bir KSDS kümesinin nasıl silineceğini gösterir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEPNAME EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DELETE MY.VSAM.KSDSFILE CLUSTER
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve MY.VSAM.KSDSFILE VSAM Kümesini silecektir.