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.