IMS DB - Bloques de control
Los bloques de control de IMS definen la estructura de la base de datos de IMS y el acceso de un programa a ellos. El siguiente diagrama muestra la estructura de los bloques de control IMS.
DL / I utiliza los siguientes tres tipos de bloques de control:
- Descriptor de base de datos (DBD)
- Bloque de especificación de programa (PSB)
- Bloque de control de acceso (ACB)
Descriptor de base de datos (DBD)
Puntos a tener en cuenta:
DBD describe la estructura física completa de la base de datos una vez que se han definido todos los segmentos.
Al instalar una base de datos DL / I, se debe crear un DBD ya que es necesario para acceder a la base de datos IMS.
Las aplicaciones pueden usar diferentes vistas del DBD. Se denominan estructuras de datos de aplicación y se especifican en el bloque de especificaciones del programa.
El administrador de la base de datos crea un DBD codificando DBDGEN declaraciones de control.
DBDGEN
DBDGEN es un generador de descriptores de bases de datos. La creación de bloques de control es responsabilidad del administrador de la base de datos. Todos los módulos de carga se almacenan en la biblioteca IMS. Las instrucciones de macro en lenguaje ensamblador se utilizan para crear bloques de control. A continuación se muestra un código de muestra que muestra cómo crear un DBD utilizando declaraciones de control 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
Entendamos los términos utilizados en el DBDGEN anterior:
Cuando ejecuta las declaraciones de control anteriores en JCL, crea una estructura física donde BIBLIOTECA es el segmento raíz y LIBROS y REVISTAS son sus segmentos secundarios.
La primera declaración de macro DBD identifica la base de datos. Aquí, debemos mencionar el NOMBRE y el ACCESO que utiliza DL / I para acceder a esta base de datos.
La segunda instrucción de macro DATASET identifica el archivo que contiene la base de datos.
Los tipos de segmento se definen mediante la instrucción macro SEGM. Necesitamos especificar el PADRE de ese segmento. Si es un segmento raíz, entonces mencione PADRE = 0.
La siguiente tabla muestra los parámetros utilizados en la instrucción de macro FIELD:
S. No | Descripción de parámetros |
---|---|
1 | Name Nombre del campo, normalmente de 1 a 8 caracteres |
2 | Bytes Longitud del campo |
3 | Start Posición del campo dentro del segmento |
4 | Type Tipo de datos del campo |
5 | Type C Tipo de datos de caracteres |
6 | Type P Tipo de datos decimal empaquetado |
7 | Type Z Tipo de datos decimal por zonas |
8 | Type X Tipo de datos hexadecimales |
9 | Type H Tipo de datos binarios de media palabra |
10 | Type F Tipo de datos binarios de palabra completa |
Bloque de especificación de programa (PSB)
Los fundamentos de PSB son los siguientes:
Una base de datos tiene una única estructura física definida por un DBD, pero los programas de aplicación que la procesan pueden tener diferentes vistas de la base de datos. Estas vistas se denominan estructura de datos de la aplicación y se definen en la PSB.
Ningún programa puede usar más de un PSB en una sola ejecución.
Los programas de aplicación tienen su propio PSB y es común que los programas de aplicación que tienen requisitos de procesamiento de base de datos similares compartan un PSB.
PSB consta de uno o más bloques de control denominados Bloques de comunicación de programa (PCB). La PSB contiene una PCB para cada base de datos DL / I a la que accederá el programa de aplicación. Discutiremos más sobre PCB en los próximos módulos.
Se debe realizar PSBGEN para crear una PSB para el programa.
PSBGEN
PSBGEN se conoce como Generador de bloques de especificación de programa. El siguiente ejemplo crea un PSB usando 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
Entendamos los términos utilizados en el DBDGEN anterior:
La primera declaración macro es el bloque de comunicación del programa (PCB) que describe el tipo, nombre, longitud de clave y opción de procesamiento de la base de datos.
El parámetro DBDNAME en la macro PCB especifica el nombre del DBD. KEYLEN especifica la longitud de la clave concatenada más larga. El programa puede procesar en la base de datos. El parámetro PROCOPT especifica las opciones de procesamiento del programa. Por ejemplo, LS significa solo operaciones de CARGA.
SENSEG se conoce como sensibilidad de nivel de segmento. Define el acceso del programa a partes de la base de datos y se identifica a nivel de segmento. El programa tiene acceso a todos los campos dentro de los segmentos a los que es sensible. Un programa también puede tener sensibilidad a nivel de campo. En esto, definimos un nombre de segmento y el nombre principal del segmento.
La última declaración de macro es PCBGEN. PSBGEN es la última declaración que dice que no hay más declaraciones que procesar. PSBNAME define el nombre dado al módulo PSB de salida. El parámetro LANG especifica el idioma en el que está escrito el programa de aplicación, por ejemplo, COBOL.
Bloque de control de acceso (ACB)
A continuación se enumeran los puntos a tener en cuenta sobre los bloques de control de acceso:
Los bloques de control de acceso para un programa de aplicación combinan el descriptor de base de datos y el bloque de especificación del programa en un formato ejecutable.
ACBGEN se conoce como Generador de bloques de control de acceso. Se utiliza para generar ACB.
Para los programas en línea, necesitamos preconstruir ACB. Por lo tanto, la utilidad ACBGEN se ejecuta antes de ejecutar el programa de aplicación.
Para los programas por lotes, también se pueden generar ACB en el momento de la ejecución.