VSAM - Alternatif Dizin

Alternatif indeks, birincil indekslerine ek olarak KSDS / ESDS veri kümeleri için oluşturulan ek indekstir. Alternatif bir dizin, birden fazla anahtar kullanarak kayıtlara erişim sağlar. Alternatif dizinin anahtarı benzersiz olmayan bir anahtar olabilir, kopyaları olabilir.

Alternatif Dizinin Oluşturulması

Bir Alternatif Dizin oluşturmak için aşağıdaki adımlar kullanılır -

  • Alternatif Dizini Tanımla
  • Yolu Tanımla
  • Bina Endeksi

Alternatif Dizini Tanımla

Alternatif İndeks kullanılarak tanımlanır DEFINE AIX komut.

DEFINE AIX                              -
(NAME(alternate-index-name)             -
RELATE(vsam-file-name)                  -
CISZ(number)                            -
FREESPACE(CI-Percentage,CA-Percentage)  -
KEYS(length offset)                     -
NONUNIQUEKEY / UNIQUEKEY                -
UPGRADE / NOUPGRADE                     -
RECORDSIZE(average maximum))            -
DATA                                    -
   (NAME(vsam-file-name.data))          -
INDEX                                   -
   (NAME(vsam-file-name.index))

Yukarıdaki sözdizimi, Alternatif İndeks tanımlanırken kullanılan parametreleri göstermektedir. Define Cluster Module'de bazı parametreleri zaten tartışmıştık ve burada tartışacağımız Alternatif İndeksi tanımlamada bazı yeni parametreler kullanılıyor -

Sr.No Açıklamalı Parametreler
1

DEFINE AIX

Define AIX komutu, Alternatif Dizini tanımlamak ve bileşenleri için parametre niteliklerini belirtmek için kullanılır.

2

NAME

NAME, Alternatif Dizinin adını belirtir.

3

RELATE

RELATE, kendisi için alternatif dizinin oluşturulduğu VSAM kümesinin adını belirtir.

4

NONUNIQUEKEY / UNIQUEKEY

UNIQUEKEY, alternatif dizinin benzersiz olduğunu ve NONUNIQUEKEY, yinelemelerin var olabileceğini belirtir.

5

UPGRADE / NOUPGRADE

UPGRADE, temel küme değiştirilirse alternatif dizinin değiştirilmesi gerektiğini belirtir ve NOUPGRADE, temel küme değiştirilirse alternatif dizinlerin tek başına bırakılması gerektiğini belirtir.

Misal

Aşağıda, JCL'de bir Alternatif Dizinin nasıl tanımlanacağını gösteren temel bir örnek verilmiştir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   DEFINE AIX (NAME(MY.VSAM.KSDSAIX)      -
   RELATE(MY.VSAM.KSDSFILE)               -
   CISZ(4096)                             -
   FREESPACE(20,20)                       -
   KEYS(20,7)                             -
   NONUNIQUEKEY                           -
   UPGRADE                                -
   RECORDSIZE(80,80))                     -
   DATA(NAME(MY.VSAM.KSDSAIX.DATA))       -
   INDEX(NAME(MY.VSAM.KSDSAIX.INDEX))
/*

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

Yolu Tanımla

Yolu Tanımla, alternatif dizini temel kümeyle ilişkilendirmek için kullanılır. Yolu tanımlarken, yolun adını ve bu yolun ilişkili olduğu alternatif dizini belirtiyoruz.

DEFINE PATH                        -
NAME(alternate-index-path-name)    -
PATHENTRY(alternate-index-name))

Yukarıdaki sözdiziminin iki parametresi vardır. AD, Alternatif Dizin Yolu Adını belirtmek için kullanılır ve YOL, Alternatif Dizin Adını belirtmek için kullanılır.

Misal

Aşağıda, JCL'de Yolu tanımlamak için temel bir örnek verilmiştir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
DEFINE PATH                          -
   NAME(MY.VSAM.KSDSAIX.PATH)    -
   PATHENTRY(MY.VSAM.KSDSAIX))
/*

Yukarıdaki JCL'yi Mainframes sunucusunda çalıştıracaksanız. MAXCC = 0 ile çalışmalı ve Alternatif İndeks ile temel kümeye arasında yol oluşturacaktır.

Bina Endeksi

BLDINDEX komutu, alternatif dizini oluşturmak için kullanılır. BLDINDEX, VSAM endeksli veri kümesindeki (veya temel kümedeki) tüm kayıtları okur ve alternatif dizini oluşturmak için gereken verileri çıkarır.

BLDINDEX                           -
INDATASET(vsam-cluster-name)       -
OUTDATASET(alternate-index-name))

Yukarıdaki sözdiziminin iki parametresi vardır. INDATASET, VSAM Küme Adını belirtmek için kullanılır ve OUTDATASET, Alternatif Dizin Adını belirtmek için kullanılır.

Misal

Aşağıda, JCL'de Dizin Oluşturmaya yönelik temel bir örnek verilmiştir -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1  EXEC PGM = IDCAMS
//SYSPRINT DD  SYSOUT = *
//SYSIN    DD  *
   BLDINDEX                           -
   INDATASET(MY.VSAM.KSDSFILE)        -
   OUTDATASET(MY.VSAM.KSDSAIX))
/*

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