IMS DB - İkincil Endeksleme
İkincil İndeksleme, bir veritabanına tam birleştirilmiş anahtarı kullanmadan erişmek istediğimizde veya birincil alanları sıralı kullanmak istemediğimizde kullanılır.
Dizin İşaretçisi Segmenti
DL / I, indekslenmiş veritabanının segmentlerine göstericiyi ayrı bir veritabanında depolar. Dizin işaretçi segmenti, ikincil dizin türünün tek türüdür. İki bölümden oluşur -
- Önek Öğesi
- Veri Öğesi
Önek Öğesi
İndeks işaretçi segmentinin önek kısmı, İndeks Hedef Segmenti için bir işaretçi içerir. Dizin hedef segmenti, ikincil dizin kullanılarak erişilebilen segmenttir.
Veri Öğesi
Veri öğesi, üzerinde dizinin oluşturulduğu dizinlenmiş veritabanındaki segmentteki anahtar değerini içerir. Bu aynı zamanda dizin kaynak segmenti olarak da bilinir.
İkincil Dizin Oluşturma hakkında dikkat edilmesi gereken önemli noktalar şunlardır:
Dizin kaynak segmenti ve hedef kaynak segmentin aynı olması gerekmez.
İkincil bir dizin oluşturduğumuzda, otomatik olarak DL / I tarafından korunur.
DBA, çoklu erişim yollarına göre birçok ikincil dizini tanımlar. Bu ikincil dizinler ayrı bir dizin veritabanında saklanır.
DL / I üzerinde ek işlem yükü getirdiklerinden daha fazla ikincil indeks oluşturmamalıyız.
İkincil Tuşlar
Dikkat edilecek noktalar -
İkincil dizinin üzerine inşa edildiği dizin kaynak segmentindeki alan ikincil anahtar olarak adlandırılır.
Herhangi bir alan ikincil anahtar olarak kullanılabilir. Segment dizisi alanı olması gerekmez.
İkincil anahtarlar, dizin kaynak segmenti içindeki tek alanların herhangi bir kombinasyonu olabilir.
İkincil anahtar değerlerinin benzersiz olması gerekmez.
İkincil Veri Yapıları
Dikkat edilecek noktalar -
İkincil bir indeks oluşturduğumuzda, veritabanının görünen hiyerarşik yapısı da değişir.
Dizin hedef segmenti, görünen kök segment haline gelir. Aşağıdaki görüntüde gösterildiği gibi, Mühendislik segmenti, bir kök segment olmasa bile, kök segment haline gelir.
İkincil indeksin neden olduğu veritabanı yapısının yeniden düzenlenmesi, ikincil veri yapısı olarak bilinir.
İkincil veri yapıları, diskte bulunan ana fiziksel veritabanı yapısında herhangi bir değişiklik yapmaz. Uygulama programının önünde veritabanı yapısını değiştirmenin bir yoludur.
Bağımsız VE Operatör
Dikkat edilecek noktalar -
Bir AND (* veya &) operatörü ikincil dizinlerle kullanıldığında, bağımlı AND operatörü olarak bilinir.
Bağımsız bir AND (#), bağımlı bir AND ile imkansız olacak nitelikleri belirlememize izin verir.
Bu operatör yalnızca dizin kaynak bölümünün dizin hedef bölümüne bağlı olduğu ikincil dizinler için kullanılabilir.
Hedef segmentin bir oluşumunun iki veya daha fazla bağımlı kaynak segmentindeki alanlara dayalı olarak işlenmesini belirtmek için bağımsız bir AND ile bir SSA kodlayabiliriz.
01 ITEM-SELECTION-SSA.
05 FILLER PIC X(8).
05 FILLER PIC X(1) VALUE '('.
05 FILLER PIC X(10).
05 SSA-KEY-1 PIC X(8).
05 FILLER PIC X VALUE '#'.
05 FILLER PIC X(10).
05 SSA-KEY-2 PIC X(8).
05 FILLER PIC X VALUE ')'.
Seyrek Sıralama
Dikkat edilecek noktalar -
Seyrek sıralama, Seyrek İndeksleme olarak da bilinir. İkincil indeks veritabanı ile seyrek sıralama kullanarak indeks kaynak segmentlerinin bir kısmını indeksten çıkarabiliriz.
Performansı artırmak için seyrek sıralama kullanılır. İndeks kaynak segmentinin bazı oluşumları kullanılmadığında, bunu kaldırabiliriz.
DL / I, bir segmentin indekslenmesi gerekip gerekmediğini belirlemek için bir bastırma değeri veya bir bastırma rutini veya her ikisini birden kullanır.
Dizin kaynak bölümündeki bir sıra alanının değeri bir gizleme değeriyle eşleşirse, bu durumda dizin ilişkisi kurulmaz.
Pasifleştirme rutini, segmenti değerlendiren ve indekslenip endekslenmeyeceğini belirleyen, kullanıcı tarafından yazılmış bir programdır.
Seyrek indeksleme kullanıldığında, işlevleri DL / I tarafından ele alınır. Başvuru programında bunun için özel hükümler koymamıza gerek yoktur.
DBDGEN Gereksinimleri
Daha önceki modüllerde tartışıldığı gibi, DBDGEN bir DBD oluşturmak için kullanılır. İkincil indeksler oluşturduğumuzda, iki veritabanı devreye girer. Bir DBA'nın, dizinlenmiş bir veritabanı ile ikincil dizinli bir veritabanı arasında bir ilişki oluşturmak için iki DBDGEN kullanarak iki DBD oluşturması gerekir.
PSBGEN Gereksinimleri
Bir veritabanı için ikincil indeksi oluşturduktan sonra, DBA'nın PSB'leri oluşturması gerekir. Program için PSBGEN, PSB makrosunun PROCSEQ parametresi üzerinde veritabanı için uygun işlem sırasını belirtir. PROCSEQ parametresi için DBA, ikincil indeks veritabanı için DBD adını kodlar.