En el contexto de las computadoras mainframe de IBM en la línea S / 360 , un conjunto de datos (preferido por IBM) o conjunto de datos es un archivo de computadora que tiene una organización de registro . El uso de este término comenzó, por ejemplo, con DOS / 360 , OS / 360 , y todavía lo utilizan sus sucesores, incluido el actual z / OS . Históricamente, la documentación para estos sistemas prefería este término en lugar de archivo .
Un conjunto de datos generalmente se almacena en un dispositivo de almacenamiento de acceso directo (DASD) o cinta magnética , [1] sin embargo, los dispositivos de grabación de unidades, como lectores de tarjetas perforadas, perforadoras de tarjetas e impresoras de línea pueden proporcionar entrada / salida (E / S) para un conjunto de datos (archivo). [2]
Los conjuntos de datos no son flujos de bytes no estructurados , sino que están organizados en varios registros lógicos [3] y estructuras de 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 declaraciones de lenguaje de control de trabajos DD
. Dentro de un programa en ejecución, se almacenan en el bloque de control de datos (DCB), que es una estructura de datos que se utiliza para acceder a conjuntos de datos, por ejemplo, mediante métodos de acceso .
Los registros de un conjunto de datos pueden tener una longitud fija, variable o "indefinida". [4]
Organización del conjunto de datos
Para OS / 360, el DSORG
parámetro DCB especifica cómo se organiza el conjunto de datos. Puede ser físicamente secuencial ("PS"), indexado secuencial ("IS"), particionado ("PO") o acceso directo ("DA"). 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, de cómo se actualizarán.
Los programadores utilizan varios métodos de acceso (como QSAM o VSAM ) en programas para leer y escribir conjuntos de datos. El método de acceso depende de la organización del conjunto de datos dado.
Formato de grabación (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 RECFM
parámetro DCB . RECFM=F
significa que los registros tienen una longitud fija, especificada mediante el LRECL
parámetro. RECFM=V
especifica un registro de longitud variable. Los registros V, cuando se almacenan en medios, tienen como prefijo una palabra descriptiva de registro (RDW) que contiene la longitud entera del registro en bytes y bits de bandera. Con RECFM=FB
y RECFM=VB
, varios registros lógicos se agrupan en un solo bloque físico en cinta o DASD. FB y VB son fixed-blocked
y variable-blocked
, 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 BLKSIZE
parámetro especifica la longitud máxima del bloque. RECFM=FBS
[5] también podría especificarse, lo que fixed-blocked standard
significa que todos los bloques, excepto el último, debían tener la BLKSIZE
longitud completa . RECFM=VBS
, o variable-blocked spanned
, significa que un registro lógico podría extenderse a través de dos o más bloques, con banderas en el RDW que indican si un segmento de registro continúa en el siguiente bloque y / o continúa desde el anterior.
Este mecanismo elimina la necesidad de utilizar cualquier valor de byte "delimitador" para separar registros. Por lo tanto, los datos pueden ser de cualquier tipo, incluidos enteros binarios, punto flotante o caracteres, sin introducir una condición falsa de fin de registro. El conjunto de datos es una abstracción de una colección de registros, en contraste con los archivos como flujos de bytes no estructurados.
Conjunto de datos particionados
Un conjunto de datos particionados ( PDS ) [6] es un conjunto de datos que contiene varios miembros , cada uno de los cuales contiene un subconjunto de datos separado, similar a un directorio en otros tipos de sistemas de archivos . Este tipo de conjunto de datos se usa a menudo para contener módulos de carga (programas ejecutables enlazados con formato antiguo), bibliotecas de programas de origen (especialmente definiciones de macros de ensamblador) y lenguaje de control de trabajos . Un PDS se puede comparar con un archivo Zip o un almacenamiento estructurado COM .
Un conjunto de datos particionados solo se puede asignar a 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 del directorio. Una vez que se encuentra un miembro, los datos almacenados en ese miembro se manejan de la misma manera que un conjunto de datos PS (secuenciales).
Siempre que se elimina un miembro, el espacio que ocupaba no se puede utilizar para almacenar otros datos. Asimismo, si se reescribe un miembro, se almacena en un nuevo lugar en la parte posterior del PDS y deja un espacio “muerto” desperdiciado en el medio. La única forma de recuperar el espacio "muerto" es realizar una compresión de archivos frecuente. [7] La compresión, que se realiza mediante la utilidad IEBCOPY , [8] mueve todos los miembros al frente del espacio de datos y deja espacio libre utilizable en la parte posterior. (Tenga en cuenta que, en el lenguaje moderno, este tipo de operación podría llamarse 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 complicado). Los archivos PDS solo pueden residir en DASD , no en cinta magnética , para usar el estructura de directorio para acceder a miembros individuales. Los conjuntos de datos particionados se utilizan con mayor frecuencia para almacenar varios archivos de lenguaje de control de trabajos , declaraciones de control de utilidades y módulos ejecutables.
Una mejora de este esquema es un conjunto de datos particionado extendido (PDSE o PDS / E, a veces solo bibliotecas ) introducido con DFSMSdfp para 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 de PDS / E es similar a PDS y se utiliza para almacenar los mismos tipos de datos. Sin embargo, los archivos PDS / E tienen una mejor estructura de directorio que no requiere la asignación previa de bloques de directorio cuando se define el PDS / E (y por lo tanto no se queda sin bloques de directorio si no se especificaron suficientes). Además, PDS / E almacena automáticamente los miembros de tal manera que la operación de compresión no es necesaria para recuperar el espacio "muerto". [7] Los archivos PDS / E solo pueden residir en DASD para usar la estructura de directorio para acceder a miembros individuales.
Grupo de datos de generación
Un grupo de datos de generación [9] ( GDG ) [10] es un grupo de conjuntos de datos no VSAM [11] que son generaciones sucesivas de datos históricamente relacionados [12] almacenados en un mainframe IBM (con SO o DOS / VSE ) . [13]
Un GDG suele estar catalogado. [12]
Un miembro individual de la colección GDG se denomina " Conjunto de datos de generación ". [12] [14] Este último puede identificarse con un número absoluto, ACCTG.OURGDG (1234), o un número relativo: (-1) para la generación anterior, (0) para la actual y (+1) la próxima generación. [15]
GDG JCL y características
Los Grupos de Generación de Datos se definen usando la utilidad IDCAMS , [16] que permite configurar varios parámetros.
- LIMIT (10) limitaría el límite de número de generaciones a 10.
- SCRATCH FOR (91) retendría a cada miembro, hasta el número limitado de generaciones, al menos 91 días.
IDCAMS también puede eliminar (y, opcionalmente, descatalogar) un GDG. [17]
Referencias
- ^ "¿Qué es un catálogo?" .
Catalogación de conjuntos de datos en cinta magnética ...
- ^ "IBM Knowledge Center - Inicio de la documentación del producto IBM" . publib.boulder.ibm.com .
- ^ "¿Qué es un conjunto de datos?" .
conjunto de datos .. un archivo que contiene uno o más registros.
- ^ "Formatos de registro de conjuntos de datos" .
Los registros son de longitud fija o variable en un conjunto de datos dado.
- ^ "Ejemplo: formato de registro VBS" .
Longitud variable, bloqueado, extendido (VBS)
- ^ "Estructura de un PDS", z / OS DFSMS con conjuntos de datos, versión 2, versión 3 (PDF) , 2 de octubre de 2018, SC23-6855-30
- ^ a b Stephens, David (octubre de 2008). ¿Qué demonios es un mainframe? . Lulu.com. pag. 52. ISBN 978-1-4092-2535-5. Consultado el 11 de mayo de 2018 .
- ^ "Compressing a Partitioned Data Set", z / OS DFSMSdfp Utilities Version 2 Release 3 (PDF) , IBM Corporation, 17 de julio de 2017, SC23-6864-30,
Un conjunto de datos particionados contendrá áreas no utilizadas (a veces llamadas gas) donde un miembro eliminado o la versión anterior de un miembro actualizado una vez que residió. 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 en el lugar se completa con éxito. No tiene ningún significado para un PDSE y se ignora si se solicita.
- ^ "Generación de grupos de datos (GDG's), una introducción con ejemplos" .
crear y procesar un Generation Data Group o GDG en ...
- ^ "REFERENCIA TUTORIAL JCL - Generación de grupos de datos" .
Grupos de datos de generación (GDG)
- ^ "¿Qué es un grupo de datos de generación?" . IBM.com .
... no VSAM ...
- ^ a b c "Conjuntos de datos de generación" .
sucesivas, históricamente relacionadas,
- ^ "Comandos VSE / VSAM" (PDF) .
- ^ "Un conjunto de datos de generación es uno de ...
- ^ "¿Qué es un GDG?" .
- ^ "IBM Cómo crear y utilizar Generation Data Groups (GDG)" .
Crea un GDG ... IDCAMS lo hará
- ^ "IDCAMS - Crear y eliminar base GDG usando JCL" .
- Introducción al nuevo mainframe: conceptos básicos de z / OS , cap. 5, "Trabajar con conjuntos de datos", 29 de marzo de 2011. ISBN 0738435341