IMS DB - bloki sterujące
Bloki sterujące IMS definiują strukturę bazy danych IMS i dostęp do nich programu. Poniższy diagram przedstawia strukturę bloków sterujących IMS.
DL / I wykorzystuje następujące trzy typy bloków sterujących -
- Deskryptor bazy danych (DBD)
- Blok specyfikacji programu (PSB)
- Blok kontroli dostępu (ACB)
Deskryptor bazy danych (DBD)
Punkty do zapamiętania -
DBD opisuje pełną fizyczną strukturę bazy danych po zdefiniowaniu wszystkich segmentów.
Podczas instalowania bazy danych DL / I należy utworzyć jedną DBD, ponieważ jest ona wymagana do uzyskania dostępu do bazy danych IMS.
Aplikacje mogą korzystać z różnych widoków DBD. Nazywane są one strukturami danych aplikacji i są określone w bloku specyfikacji programu.
Administrator bazy danych tworzy DBD przez kodowanie DBDGEN instrukcje kontrolne.
DBDGEN
DBDGEN jest generatorem deskryptorów bazy danych. Za tworzenie bloków sterujących odpowiada administrator bazy danych. Wszystkie moduły ładujące są przechowywane w bibliotece IMS. Do tworzenia bloków sterujących używane są makra języka asemblera. Poniżej podano przykładowy kod, który pokazuje, jak utworzyć DBD za pomocą instrukcji sterujących DBDGEN -
PRINT NOGEN
DBD NAME=LIBRARY,ACCESS=HIDAM
DATASET DD1=LIB,DEVICE=3380
SEGM NAME=LIBSEG,PARENT=0,BYTES=10
FIELD NAME=(LIBRARY,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM NAME=BOOKSEG,PARENT=LIBSEG,BYTES=5
FIELD NAME=(BOOKS,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM NAME=MAGSEG,PARENT=LIBSEG,BYTES=9
FIELD NAME=(MAGZINES,SEQ),BYTES=8,START=1,TYPE=C
DBDGEN
FINISH
END
Rozumiemy terminy użyte w powyższym DBDGEN -
Kiedy wykonujesz powyższe instrukcje sterujące w JCL, tworzy fizyczną strukturę, w której BIBLIOTEKA jest segmentem głównym, a KSIĄŻKI i MAGZINY są jego segmentami potomnymi.
Pierwsza instrukcja makra DBD identyfikuje bazę danych. Tutaj musimy wspomnieć o NAZWIE i DOSTĘPIE, które są używane przez DL / I w celu uzyskania dostępu do tej bazy danych.
Druga instrukcja makra DATASET identyfikuje plik zawierający bazę danych.
Typy segmentów są definiowane za pomocą makropolecenia SEGM. Musimy określić PARENT tego segmentu. Jeśli jest to segment główny, podaj PARENT = 0.
W poniższej tabeli przedstawiono parametry używane w makropoleceniu FIELD -
S.Nr | Parametr i opis |
---|---|
1 | Name Nazwa pola, zwykle od 1 do 8 znaków |
2 | Bytes Długość pola |
3 | Start Położenie pola w segmencie |
4 | Type Typ danych pola |
5 | Type C Typ danych znakowych |
6 | Type P Pakowany typ danych dziesiętnych |
7 | Type Z Strefowy typ danych dziesiętnych |
8 | Type X Szesnastkowy typ danych |
9 | Type H Binarny typ danych pół słowa |
10 | Type F Typ danych binarnych pełnych słów |
Blok specyfikacji programu (PSB)
Podstawy PSB są podane poniżej -
Baza danych ma pojedynczą strukturę fizyczną zdefiniowaną przez DBD, ale aplikacje, które ją przetwarzają, mogą mieć różne widoki bazy danych. Te widoki nazywane są strukturą danych aplikacji i są zdefiniowane w PSB.
Żaden program nie może używać więcej niż jednego PSB w jednym wykonaniu.
Programy aplikacyjne mają własny PSB i często aplikacje, które mają podobne wymagania przetwarzania bazy danych, współużytkują PSB.
PSB składa się z jednego lub więcej bloków sterujących zwanych programowymi blokami komunikacyjnymi (PCB). PSB zawiera jedną płytkę drukowaną dla każdej bazy danych DL / I, do której program aplikacji będzie miał dostęp. Więcej o PCB omówimy w kolejnych modułach.
Aby utworzyć PSB dla programu, należy wykonać PSBGEN.
PSBGEN
PSBGEN jest znany jako Generator bloku specyfikacji programu. Poniższy przykład tworzy PSB przy użyciu PSBGEN -
PRINT NOGEN
PCB TYPE=DB,DBDNAME=LIBRARY,KEYLEN=10,PROCOPT=LS
SENSEG NAME=LIBSEG
SENSEG NAME=BOOKSEG,PARENT=LIBSEG
SENSEG NAME=MAGSEG,PARENT=LIBSEG
PSBGEN PSBNAME=LIBPSB,LANG=COBOL
END
Rozumiemy terminy użyte w powyższym DBDGEN -
Pierwsza instrukcja makro to blok komunikacyjny programu (PCB), który opisuje typ bazy danych, nazwę, długość klucza i opcję przetwarzania.
Parametr DBDNAME w makrze PCB określa nazwę DBD. KEYLEN określa długość najdłuższego połączonego klucza. Program może przetwarzać w bazie danych. Parametr PROCOPT określa opcje przetwarzania programu. Na przykład LS oznacza tylko operacje LOAD.
SENSEG jest znany jako czułość na poziomie segmentu. Określa dostęp programu do części bazy danych i jest identyfikowany na poziomie segmentu. Program ma dostęp do wszystkich pól w segmentach, na które jest wrażliwy. Program może mieć również czułość na poziomie pola. W tym miejscu definiujemy nazwę segmentu i nazwę nadrzędną segmentu.
Ostatnia instrukcja makro to PCBGEN. PSBGEN to ostatnia instrukcja mówiąca, że nie ma więcej instrukcji do przetworzenia. PSBNAME definiuje nazwę nadaną wyjściowemu modułowi PSB. Parametr LANG określa język, w którym napisana jest aplikacja, np. COBOL.
Blok kontroli dostępu (ACB)
Poniżej wymienione są punkty, na które należy zwrócić uwagę na temat bloków kontroli dostępu -
Bloki kontroli dostępu dla programu aplikacji łączą deskryptor bazy danych i blok specyfikacji programu w postać wykonywalną.
ACBGEN jest znany jako Generator bloków kontroli dostępu. Służy do generowania wyłączników mocy.
W przypadku programów online musimy wstępnie zbudować ACB. Dlatego narzędzie ACBGEN jest uruchamiane przed wykonaniem programu użytkowego.
W przypadku programów wsadowych ACB mogą być również generowane w czasie wykonywania.