lunes, 28 de noviembre de 2016

¿Tipos de Archivos Secuenciales? Bah!

¡¡Hola coboleros!! Ya vimos en un artículo anterior la diferencia entre los archivos secuenciales y VSAM, pero en este artículo nos ocuparemos de distinguir los distintos tipos de organización de estos archivos secuenciales.
Primero debemos de indicar qué entendemos por “organización del archivo”. Esto indica como los registros se organizan en un archivo, y cuya finalidad es aumentar su eficiencia de acceso a los registros.

Se muestra a continuación los tipos de “organización” que existen:

  • Organización del archivo secuencial
  • Organización del archivo secuencial indexado
  • Organización de archivo relativa

Empezando…. Organización del Archivo Secuencial…


Un archivo secuencial consta de registros almacenados en el archivo y cuyo acceso a ellos es meramente secuencial. Esto quiere decir que el primero que entra es el último en salir y que no se puede acceder a un registro que está en medio del archivo, si no se recorre esa primera mitad del archivo.
Muchas de las características que se requieren saber sobre los archivos secuenciales se mencionaron en el artículo Ficheros Secuenciales vs Ficheros VSAM ¿Cuál es el mejor?”, sin embargo vamos a rememorar algunas de las principales características que se tienen de los archivos secuenciales.

·         Se pueden leer los archivos en orden secuencial, esto quiere decir que si tienes un registro en medio del archivo, tienes que leer los archivos anteriores a este para que puedas leer el registro que te interesa.
·        Los registros se escriben en orden secuencial, el último registro en ser insertado, es el primer registro en ser leído.
·        Después de insertar un registro en un archivo secuencial, no es posible eliminar, reducir o alargar un registro.
·        Orden de los registros, una vez insertados, no se puede cambiar.
·        Actualización de registro es posible. El registro se puede sobrescribir, si la nueva longitud de registro es el mismo que el de longitud de registro.


Dentro del programa siempre se podrá especificar la sintaxis de la organización del archivo secuencial:
       FILE-CONTROL                                           
       SELECT ENTRADA ASSIGN TO ENTRADA                
                       ORGANIZATION IS SEQUENTIAL       
                       ACCESS MODE  IS SEQUENTIAL       
                       FILE STATUS IS WS-FS-ENTRADA.
  

Donde

ASSIGN TO: Asigna el archivo de entrada “ENTRADA” al nombre de la tarjeta del sistema también llamado “ENTRADA”
ORGANIZATION: Se especifica que su organización es secuencial
ACCESS MODE: Tipo de acceso, el cual se especifica que es secuencial
FILE STATUS: El estatus del archivo el cual deberá de comenzar con 00.

Mientras que en el JCL nosotros podemos encontrarlo como se muestra en el ejemplo de a continuación:

//ENTRADA  DD  DSN=MOVDELL.R08.I1OUP10.SORTINYU,
//             DISP=(OLD,KEEP,KEEP)                

ENTRADA: Archivo que se va a mandar a llamar para entrada del proceso.


Organización del archivo secuencial indexado


Un archivo secuencial indexado consiste de registros que pueden tener acceso a los datos de forma secuencial. Consta de dos partes:

  • Archivo de Datos contiene registros en orden secuencial.
  • Archivo de índice contiene la clave principal y su dirección en el archivo de datos.

Por Archivo de datos nos referimos a los registros escritos en orden secuencial, del tamaño que requiera la información, y también de la estructura que requiera la información.

Por Archivo de Índice nos referimos a la clave principal que rige a cada uno de los registros, y su dirección pero de memoria dentro del archivo de datos. Esta dirección de memoria por lo general suele ser hexadecimal.

A continuación se muestran las ventajas y desventajas más importantes que tienen estos archivos:

Ventaja:

·         Es rápida si se cuenta con los datos llave con los que se quiere encontrar un dato.
·         Permite el acceso secuencial
·         Permite el acceso directo de los registros
·         Se pueden actualizar los registros en el mismo fichero sin necesidad de crear un fichero nuevo de copia en el proceso de actualización

Desventaja:

·         Requiere implementar índices que ocupan recursos como espacio en disco y algoritmos diversos para optimizar búsquedas (aunque de eso ya se ocupan los manejadores de bases de datos)
·         Ocupa más espacio en el disco que los ficheros secuenciales, debido al uso del área de índices
·         Tiene tendencia a que aumente el tiempo medio de acceso a los registros, cuando se producen muchas altas nuevas con claves que hay que intercalar entre las existentes.

Se mencionan algunas de las principales características que tienen este tipo de archivos:

·         El índice nos proporciona una capacidad de búsqueda para llegar rápidamente al registro deseado
·         El “archivo de datos”  es similar al archivo secuencial, pero está integrado de forma que los registros se ubiquen siguiendo un puntero o dirección de memoria desde su registro predecesor.
·         Cuando se añade un nuevo registro, al archivo principal que sigue al nuevo registro y  según la secuencia lógica, se actualiza con el puntero del registro nuevo en el archivo de datos.
·         El diseño del registro tiene que tener un campo o combinación de campos, que permita identificar cada registro de forma única. Este campo que hará esa distinción será campo clave, y es el que va a servir de índice.
·          Un mismo fichero puede tener más de un campo clave, pero al menos uno de ellos no admitirá valores duplicados y se les llama clave primaria.
·        Se pueden leer los registros en orden secuencial, como en organización de archivos secuenciales.
·        Los registros se pueden acceder aleatoriamente si la clave principal es conocida.
·        El archivo índice se utiliza para obtener la dirección de un registro (hexadecimal) y, a continuación, se obtiene el registro del archivo de datos, ya con la dirección de memoria.


Sintaxis

FILE-CONTROL.                                                 
    SELECT ARCH-VSAMDIR   ASSIGN TO VSAMDIR                   
                          ORGANIZATION IS INDEXED             
                          ACCESS IS DYNAMIC                   
                          RECORD KEY IS KEY-VSAMDIR           
                          FILE STATUS IS FS-VSAMDIR.          
Donde

ASSIGN TO: Se le asigna ARCH-VSAMDIR a VSAMDIR
ORGANIZACIÓN IS De tipo indexada
ACCESS IS El acceso es dinámico
RECORD KEY IS El archivo se está recorriendo por la llave KEY-VSAMDIR
FILE STATUS IS El estatus del archivo, al inicio el cual deberá de ser 00.

Espero que el articulo te haya gustado y te haya sido de utilidad. :-)


1 comentario: