Data Language One (Data Language/I, DL/I, Data Language/One, Data Language/One [ 1 ] ) es el sistema de lenguaje utilizado para acceder a las bases de datos IMS de IBM y a su sistema de comunicación de datos .
Se implementa desde varios lenguajes mediante llamadas a un módulo de software, DFSLI000. Este módulo cuenta con puntos de entrada para manejar diversos lenguajes de programación, por ejemplo, llamando a CBLTDLI desde un programa COBOL . El módulo se vincula al programa que realiza la llamada, transmite la solicitud al sistema IMS y devuelve los resultados y un código de estado.
En cualquier base de datos IMS completa, el elemento más pequeño que se puede recuperar es un segmento . Cada segmento está compuesto por campos , uno de los cuales, normalmente, será un campo clave. Los segmentos se organizan jerárquicamente en la base de datos, siendo el segmento raíz el de nivel superior. Se permiten 255 tipos de segmentos diferentes, en hasta 15 niveles, en cualquier base de datos. Un registro de base de datos consta de un segmento raíz específico y todos sus segmentos hijos dependientes ; no hay límite en el número de segmentos en un registro ni en el número de registros en una base de datos (aparte de las limitaciones físicas del espacio de almacenamiento).
La estructura de cualquier base de datos se presenta al programa de aplicación como un PCB (Bloque de Comunicación del Programa), que se utiliza como uno de los parámetros que se pasan al stub. Otros tipos de PCB se utilizan para enviar y recibir mensajes de procesamiento de transacciones , acceder y escribir en la pantalla VDU del usuario , imprimir informes, etc.
Al acceder a un segmento de la base de datos, el programa de aplicación también utiliza un SSA (Argumento de Búsqueda de Segmento) como parámetro para especificar el segmento o los segmentos que necesita. Este argumento suele contener el tipo de segmento requerido y el contenido de los campos clave.
Para todos los lenguajes excepto PL/I , el primer parámetro en una llamada es el Código de Función , un campo de cuatro caracteres, por ejemplo: “ ” (Obtener Único), “ ” (Obtener Siguiente), “ ” (Reemplazar) y “ ” (Insertar). Con PL/I, debido a que este lenguaje no marca el último parámetro con un '1' en el bit 0, el primer parámetro debe ser una palabra completa (Fixed Bin(31)) que contenga el número de parámetros siguientes. GU GN REPLISRT
Una llamada típica desde un programa COBOL podría ser . El programa esperaría automáticamente hasta que se recuperaran los datos solicitados y se colocaran en el área de segmento. El código de estado contenido en el PCB se actualizaría con espacios en blanco (si todo salió bien) o con algún código informativo o de error.CALL “CBLTDLI”USINGGU,Stores-Database-PCB,Stores-Segment-Area,Stores-Root-SSA
Una llamada típica de un programa PL/I podría ser .CALLPLITDLI(FOUR,GU,Stores-Database-PCB,Stores-Segment-Area,Stores-Root-SSA);
Referencias
Enlaces externos
- Software de gestión de la información para el Centro de información de soluciones z/OS
- Conceptos básicos de bases de datos DL/I
- lenguajes de programación estructurados en datos
- Software de IBM