IMS DB – Unidades de control

Los bloques de control de IMS definen la estructura de la base de datos de IMS y el programa de acceso a ellos. El siguiente diagrama muestra la estructura de las unidades de control IMS.

Bloque de control

DL / I utiliza los siguientes tres tipos de unidades 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)

En una nota –

  • DBD describe la estructura física completa de la base de datos después de que se hayan definido todos los segmentos.

  • Al instalar la base de datos DL / I, debe crear un DBD, ya que es necesario para acceder a la base de datos IMS.

  • Las aplicaciones pueden utilizar diferentes vistas DBD. Se denominan estructuras de datos de la aplicación y se especifican en el bloque de especificación del programa.

  • El administrador de la base de datos crea DBD codificando DBDGEN declaraciones de control.

DBDGEN

DBDGEN es un generador de descriptores de bases de datos. El administrador de la base de datos es responsable de crear bloques de control. Todos los módulos de carga se almacenan en la biblioteca IMS. Las sentencias 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 instrucciones 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 con BIBLIOTECA como segmento raíz y LIBROS y REVISTAS como segmentos secundarios.

  • La primera macro DBD define una 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 la macro DATASET identifica el archivo que contiene la base de datos.

  • Los tipos de segmento se definen mediante el operador de macro SEGM. Necesitamos especificar el Padre de este segmento. Si se trata de un segmento raíz, especifique PARENT = 0.

La siguiente tabla muestra los parámetros utilizados en la macro FIELD:

S. No Parámetro y descripción
uno

Nombre

Nombre de campo, generalmente de 1 a 8 caracteres.

2

Bytes

Longitud del campo

3

Iniciar

Posición del campo en el segmento

cuatro

Un tipo

Tipo de datos de campo

cinco

Tipo C

Tipo de datos de caracteres

6

Tipo P

Tipo de datos decimal empaquetado

7

Tipo Z

Tipo de datos decimal dividido en zonas

8

Tipo X

Tipo de datos hexadecimales

9

Tipo H

Tipo de datos binarios de media palabra

diez

Tipo F

Tipo de datos binarios de palabra completa

Bloque de especificación de programa (PSB)

Los conceptos básicos de PSB se dan a continuación:

  • La base de datos tiene una estructura física única definida por el DBD, pero las aplicaciones 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 utilizar más de una PSB a la vez.

  • Los programas de aplicación tienen su propio PSB, y para aplicaciones que tienen requisitos de procesamiento de base de datos similares, se suele utilizar un PSB común.

  • Un PSB se compone de uno o más bloques de control denominados bloques de comunicación de software (PCB). El PSB contiene una tarjeta para cada base de datos DL / I a la que accederá la aplicación. Discutiremos más sobre PCB en los próximos módulos.

  • Para crear un PSB para un programa, debe ejecutar PSBGEN.

PSBGEN

PSBGEN se conoce como un 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 macro es un bloque de comunicación de software (PCB) que describe el tipo de base de datos, el nombre, la longitud de la clave y el parámetro de procesamiento.

  • El parámetro DBDNAME en la macro de placa especifica el nombre del DBD. KEYLEN define la longitud de la clave concatenada más larga. El programa puede manejar la base de datos. El parámetro PROCOPT especifica los parámetros para procesar el programa. Por ejemplo, LS significa solo operaciones de CARGA.

  • SENSEG se conoce como sensibilidad 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 de los segmentos a los que es sensible. El programa también puede tener sensibilidad a nivel de campo. En esto definimos el nombre del segmento y el nombre del segmento principal.

  • La última declaración de la macro es PCBGEN. PSBGEN es la última declaración que indica que no hay más declaraciones que procesar. PSBNAME define el nombre dado a la unidad de salida PSB. El parámetro LANG especifica el idioma en el que está escrita la aplicación, como COBOL.

Bloque de control de acceso (ACB)

A continuación se enumeran los puntos a tener en cuenta sobre las unidades de control de acceso.

  • Los bloques de control de acceso para una aplicación combinan un descriptor de base de datos y un bloque de especificación de programa en un formato ejecutable.

  • ACBGEN se conoce como un generador de bloques de control de acceso. Se utiliza para generar ACB.

  • Para los programas en línea, necesitamos crear una ACB con anticipación. Por lo tanto, la utilidad ACBGEN se ejecuta antes de que se ejecute la aplicación.

  • Para los programas por lotes, también se pueden generar ACB en tiempo de ejecución.

🚫