En el contexto de los ordenadores centrales de IBM de la línea IBM System/360 y sus sucesores, un conjunto de datos ( término preferido por IBM) es un archivo informático con una organización de registros . El uso de este término comenzó con, por ejemplo, DOS/360 y OS/360 , y todavía lo utilizan sus sucesores, incluidos los actuales VSE y z/OS . Históricamente, la documentación de estos sistemas prefería este término en lugar de «archivo» .
Un conjunto de datos se almacena normalmente en un dispositivo de almacenamiento de acceso directo (DASD) o cinta magnética , [ 1 ] sin embargo, los dispositivos de registro de unidades, como lectores de tarjetas perforadas, perforadoras de tarjetas, impresoras de línea e impresoras de página, pueden proporcionar entrada/salida (E/S) para un conjunto de datos (archivo). [ 2 ]
Los conjuntos de datos no son flujos de bytes sin estructura , sino que están organizados en varias estructuras lógicas de registro [ 3 ] y bloques determinadas por DSORG(organización del conjunto de datos), RECFM(formato de registro) y otros parámetros. Estos parámetros se especifican en el momento de la asignación (creación) del conjunto de datos, por ejemplo, con instrucciones del lenguaje de control de trabajosDD . Dentro de un programa en ejecución, se almacenan en el Bloque de Control de Datos (DCB) o Bloque de Control de Acceso (ACB), que son estructuras de datos utilizadas para acceder a los conjuntos de datos mediante métodos de acceso .
Los registros en un conjunto de datos pueden tener una longitud fija, variable o “indefinida”. [ 4 ]
Organización del conjunto de datos
Para OS/360, el DSORGparámetro del DCB especifica cómo se organiza el conjunto de datos. Puede ser [ 5 ]
- CQ
- Método de acceso a telecomunicaciones en cola (QTAM) en el programa de control de mensajes (MCP)
- CX
- Grupo de líneas de comunicaciones
- DA
- Método de acceso directo básico (BDAM)
- GS
- Dispositivo gráfico para el método de acceso gráfico (GAM)
- ES
- Método de acceso secuencial indexado (ISAM)
- MQ
- Cola de mensajes QTAM en la aplicación
- correos
- Organización particionada
- PD
- Secuencia física
entre otros. Los conjuntos de datos en cinta solo pueden ser DSORG=PS. La elección de la organización depende de cómo se accederá a los datos y, en particular, cómo se actualizarán.
Los programadores utilizan diversos métodos de acceso (como QSAM o VSAM ) en los programas para leer y escribir conjuntos de datos. El método de acceso depende de la organización del conjunto de datos.
Formato de registro (RECFM)
Independientemente de la organización, la estructura física de cada registro es esencialmente la misma y es uniforme en todo el conjunto de datos. Esto se especifica en el RECFMparámetro DCB. RECFM=Fsignifica que los registros son de longitud fija, especificada a través del LRECLparámetro. RECFM=Vespecifica un registro de longitud variable. Los registros V cuando se almacenan en medios tienen un prefijo de una Palabra Descriptora de Registro (RDW) que contiene la longitud entera del registro en bytes y bits de bandera. Con RECFM=FBy RECFM=VB, varios registros lógicos se agrupan en un solo bloque físico en cinta o DASD. FB y VB son de bloque fijo y de bloque variable , respectivamente. RECFM=U(indefinido) también es de longitud variable, pero la longitud del registro está determinada por la longitud del bloque en lugar de por un campo de control.
El BLKSIZEparámetro especifica la longitud máxima del bloque. RECFM=FBS[ 6 ] también podría especificarse, lo que significa estándar de bloque fijo , lo que significa que todos los bloques excepto el último debían tener la BLKSIZElongitud completa RECFM=VBS, o extendido de bloque variable , lo que significa que un registro lógico podría extenderse a través de dos o más bloques, con indicadores en el RDW que indican si un segmento de registro continúa en el siguiente bloque y/o continuó desde el anterior.
Este mecanismo elimina la necesidad de utilizar bytes delimitadores para separar los registros. De este modo, los datos pueden ser de cualquier tipo, incluyendo enteros binarios, números de coma flotante o caracteres, sin generar una condición de fin de registro falsa. El conjunto de datos es una abstracción de una colección de registros, a diferencia de los archivos, que son flujos de bytes no estructurados.
Conjunto de datos particionado
Un conjunto de datos particionado ( PDS ) [ 7 ] es un conjunto de datos que contiene múltiples miembros , cada uno de los cuales contiene un subconjunto de datos independiente, similar a un directorio en otros tipos de sistemas de archivos . Este tipo de conjunto de datos se usa a menudo para almacenar módulos de carga (programas ejecutables vinculados a formatos antiguos), bibliotecas de programas fuente (especialmente definiciones de macros de ensamblador), definiciones de pantalla ISPF y lenguaje de control de trabajos . Un PDS se puede comparar con un archivo Zip o con el almacenamiento estructurado COM .
Un conjunto de datos particionado solo se puede asignar en un único volumen y tiene un tamaño máximo de 65.535 pistas.
Además de los miembros, un PDS también contiene un directorio. Se puede acceder a cada miembro indirectamente a través de la estructura de directorios. Una vez localizado un miembro, los datos almacenados en él se gestionan de la misma manera que en un conjunto de datos PS (secuencial).
Cuando se elimina un miembro, el espacio que ocupaba queda inutilizable para almacenar otros datos. Del mismo modo, si se reescribe un miembro, se almacena en una nueva ubicación al final del PDS, dejando espacio "muerto" desperdiciado en el medio. La única forma de recuperar este espacio "muerto" es mediante la compresión de archivos. [ 8 ] La compresión, que se realiza con la utilidad IEBCOPY , [ 9 ] mueve todos los miembros al principio del espacio de datos y deja espacio libre utilizable al final. (Cabe señalar que, en la terminología moderna, este tipo de operación podría denominarse desfragmentación o recolección de basura ; la compresión de datos hoy en día se refiere a un concepto diferente y más complejo). Los archivos PDS solo pueden residir en DASD , no en cinta magnética , para poder utilizar la estructura de directorios y acceder a los miembros individuales. Los conjuntos de datos particionados se utilizan con mayor frecuencia para almacenar varios archivos de lenguaje de control de trabajos , instrucciones de control de utilidades y módulos ejecutables.
Una mejora de este esquema es el Conjunto de Datos Particionado Extendido (PDSE o PDS/E, a veces simplemente bibliotecas ), introducido con DFSMSdfp para los sistemas MVS/XA y MVS/ESA . Una biblioteca PDS/E puede almacenar objetos de programa u otros tipos de miembros, pero no ambos. BPAM no puede procesar un PDS/E que contenga objetos de programa.
La estructura PDS/E es similar a la PDS y se utiliza para almacenar los mismos tipos de datos. Sin embargo, los archivos PDS/E tienen una mejor estructura de directorios que no requiere la preasignación de bloques de directorio al definir el PDS/E (y, por lo tanto, no se agotan los bloques de directorio si no se especificaron suficientes). Además, PDS/E almacena automáticamente los miembros de tal manera que no se necesita una operación de compresión para recuperar el espacio "muerto". [ 8 ] Los archivos PDS/E solo pueden residir en DASD para utilizar la estructura de directorios para acceder a los miembros individuales.
Grupo de datos de generación
Un Grupo de Datos de Generación [ 10 ] ( GDG ) [ 11 ] es un grupo de conjuntos de datos no VSAM [ 12 ] que son generaciones sucesivas de datos históricamente relacionados [ 13 ] almacenados en un mainframe de IBM (que ejecuta OS/360 y sus sucesores o DOS/360 y sus sucesores ). [ 14 ]
Un GDG suele estar catalogado. [ 13 ]
Un miembro individual de la colección GDG se denomina " Conjunto de datos de generación ". [ 13 ] [ 15 ] Este último puede identificarse mediante un número absoluto, ACCTG.OURGDG(1234), o un número relativo: (-1)para la generación anterior, (0)para la actual y (+1)para la siguiente. [ 16 ]
Un GDG especifica cuántas generaciones de un conjunto de datos se conservarán y a qué edad se eliminará cada generación. Cada vez que se crea una nueva generación, el sistema comprueba si se deben eliminar una o más generaciones obsoletas.
El propósito de los GDG es automatizar el archivado, utilizando el lenguaje de comandos JCL , el nombre del conjunto de datos dado es genérico. Cuando aparece DSN, el conjunto de datos GDG aparece junto con el número de historial, donde
(0) es la versión más reciente
(-1), (-2), ... son generaciones anteriores
(+1) una nueva generación (ver DD)
Otro uso de los GDG es poder acceder a todas las generaciones simultáneamente dentro de un script JCL sin necesidad de conocer el número de generaciones disponibles. Para ello, basta con omitir los paréntesis y el número de generación en el JCL al especificar el conjunto de datos.
GDG JCL y características
Los grupos de datos de generación se definen utilizando la instrucción BLDG [ 17 ] de la utilidad IEHPROGM o la DEFINE GENERATIONGROUPinstrucción [ 18 ] de la utilidad IDCAMS más reciente , [ 19 ] que permite establecer varios parámetros.
LIMIT(10)limitaría el número de generaciones a 10.SCRATCH FOR (91)retendría a cada miembro, hasta el número limitado de generaciones, durante al menos 91 días.
IDCAMS también puede eliminar (y opcionalmente descatalogar) un GDG. [ 20 ]
Ejemplo
Creación de una guía de buenas prácticas estándar para cinco ámbitos de seguridad, cada uno con una antigüedad mínima de 35 días:
// PASO 1 EXEC PGM = IDCAMS // SYSPRINT DD SYSOUT = * // SYSIN DD * DEFINE GDG (NAME('DB2.FULLCOPY.DSNDB04.TSTEST') LIMIT(5) SCRATCH FOR(35)) /*Eliminar un GDG estándar:
// STEP3 EXEC PGM = IDCAMS // SYSPRINT DD SYSOUT = * // SYSIN DD * DELETE DB2.FULLCOPY.DSNDB04.TSTEST GDG FORCE /*Referencias
- ↑ "¿Qué es un catálogo?" . IBM .
Catalogación de conjuntos de datos en cinta magnética ...
- ↑ "Centro de conocimiento de IBM: el hogar de la documentación de productos de IBM" . publib.boulder.ibm.com .
- ↑ "¿Qué es un conjunto de datos?" . IBM .
conjunto de datos .. un archivo que contiene uno o más registros.
- ↑ "Formatos de registro de conjuntos de datos" . IBM .
Los registros tienen una longitud fija o variable en un conjunto de datos determinado.
- ↑ "Sección IV: La instrucción DD - Parámetro DCB" (PDF) . Sistema operativo IBM System/3S0: Referencia del lenguaje de control de trabajos - Versión 21.7 del sistema operativo (PDF) . Biblioteca de referencia de sistemas IBM. IBM. págs. 138–139 . GC28-6704-4.
- ↑ "Ejemplo: Formato de registro VBS" . IBM .
Variable-length, blocks, spanned (VBS)
- ↑ "Estructura de un PDS", z/OS DFSMS Using Data Sets Versión 2 Release 3 (PDF) , 2 de octubre de 2018, SC23-6855-30
- 1 2 Stephens, David (octubre de 2008). ¿Qué demonios es un mainframe? Lulu.com. pág. 52. ISBN 978-1-4092-2535-5. Consultado el 11 de mayo de 2018 .
- ↑ "Compresión de un conjunto de datos particionado", z/OS DFSMSdfp Utilities Versión 2 Release 3 (PDF) , IBM Corporation, 17 de julio de 2017, SC23-6864-30,
Un conjunto de datos particionado contendrá áreas no utilizadas (a veces llamadas gas) donde residía un miembro eliminado o la versión anterior de un miembro actualizado. Este espacio no utilizado solo se recupera cuando un conjunto de datos particionado se copia a un nuevo conjunto de datos, o después de que una operación de compresión in situ se completa correctamente. No tiene significado para un PDSE y se ignora si se solicita.
- ↑ "Grupos de datos de generación (GDG), una introducción con ejemplos" .
Crear y procesar un grupo de datos de generación o GDG en...
- ↑ "REFERENCIA DEL TUTORIAL JCL - Grupos de datos de generación" .
Grupos de datos de generación (GDG)
- ↑ "¿Qué es un grupo de datos de generación?" . IBM.com .
... no VSAM ...
- 1 2 3 "Conjuntos de datos de generación" . IBM .
sucesivos, históricamente relacionados,
- ↑ "Comandos VSE/VSAM" (PDF) . Archivado del original (PDF) el 31/01/2022 . Consultado el 11/10/2021 .
- ↑ "Un conjunto de datos de generación es uno de...
- ↑ "¿Qué es un GDG?" .
- ↑ "BLDG (Build Generation Index) Statement" (PDF) . Utilidades del sistema operativo (PDF) . Biblioteca de referencia de sistemas IBM (decimosexta edición). IBM . Abril de 1973. pág. 269. GC28-6586-15 . Consultado el 19 de mayo de 2022 .
- ↑ "Definición de un grupo de datos de generación" (PDF) . Servicios de método de acceso de OS/VS (PDF) . Sistemas (Segunda edición). IBM . Mayo de 1974. págs. 107–110 . GC26-3836-1 . Consultado el 19 de mayo de 2022 .
- ↑ "IBM Cómo crear y usar grupos de datos de generación (GDG)" . IBM . 2 de marzo de 2012.
Cree un GDG... IDCAMS lo hará.
- ↑ "IDCAMS – Crear y eliminar base de GDG usando JCL" . Utilice este código . 16 de mayo de 2011.
- Introducción al nuevo mainframe: Fundamentos de z/OS. Archivado el 25 de abril de 2019 en Wayback Machine , Cap. 5, "Trabajo con conjuntos de datos", 29 de marzo de 2011. ISBN 0738435341
- Gestión de datos
- Sistemas operativos para mainframes de IBM
- Sistemas de archivos informáticos
- archivos informáticos