30
ARCHIVOS SECUENCIALES INDEXADOS

Archivos Secuenciales Indexados

Embed Size (px)

Citation preview

Page 1: Archivos Secuenciales Indexados

ARCHIVOS SECUENCIAL

ES INDEXADOS

Page 2: Archivos Secuenciales Indexados

¿QUE ES UN ARCHIVO SECUENCIAL INDEXADO?

Un archivo secuencial indexado proporciona la combinación de tipos de acceso que manejan un archivo secuencial y un archivo relativo o de acceso directo.

Page 3: Archivos Secuenciales Indexados

Se utiliza este tipo de organización de archivo cuando existe la necesidad tanto de accesar los registros secuencialmente, por algún valor de llave, como de accesarlos individualmente.

Page 4: Archivos Secuenciales Indexados

Estructura lógica de Archivo Secuencial Indexado

En este tipo de organización de archivos se dispone de una tabla en que aparecen ordenados secuencialmente los números de la clave del archivo y asociados a cada uno de ellos da la dirección del registro correspondiente.

Page 5: Archivos Secuenciales Indexados

Un método popular para superar las desventajas de los archivos secuenciales es el del archivo secuencias indexado. 

Page 6: Archivos Secuenciales Indexados

El archivo secuencial indexado mantiene las características básicas de los archivos

secuencialeslos registros están organizados en una

secuencia basada en un campo.

Page 7: Archivos Secuenciales Indexados

Dos Características se añaden:

1)Un Índice Del Archivo Para Soportar Los Accesos Aleatorios

2)Un Archivo De Desbordamiento ( overflow ).

Page 8: Archivos Secuenciales Indexados

El índice: Provee una capacidad de búsqueda para llegar rápidamente a las proximidades de un registro deseado.

El archivo de desbordamiento (overflow): Es similar al archivo de registro usado en un archivo secuencial, pero esta integrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registro precedente.

Page 9: Archivos Secuenciales Indexados

En la estructura secuencial indexada mas simple, se usa un solo nivel de indexación. El índice, en este caso, es un archivo secuencial simple. 

Cada registro del archivo índice tiene dos campos:

Un campo clave, que es el mismo que el campo clave del archivo principal.

Un puntero al archivo principal. 

Page 10: Archivos Secuenciales Indexados

"ESTRUCTURA DE LA ORGANIZACIÒN SECUANCIAL INDEXADO“

Se utiliza este tipo de organización de archivo cuando existe la necesidad tanto de accesar los registros secuencialmente, por algún valor de llave, como de accederlos individualmente.

Un archivo secuencial indexado proporciona la combinación de tipos de acceso que manejan un archivo secuencial y un archivo relativo o de acceso directo.

Page 11: Archivos Secuenciales Indexados

El tipo de sus registros contiene un campo clave identificador. 

Los registros están situados en un soporte direccionable por el orden de los valores

indicados por la clave.

Page 12: Archivos Secuenciales Indexados

Un archivo secuencial indexado consta de un:

Archivo índice

Archivo de datos

Es necesario que los registros contengan un campo clave para identificarlos y que estén almacenados en un soporte direccionable según el orden que indique dicha clave.

Page 13: Archivos Secuenciales Indexados

El Archivo Índice: se utiliza para acelerar la búsqueda dentro del fichero (de hecho actúa como un índice para los datos del fichero).

El Fichero De Datos: se organiza, lógicamente, en bloques o páginas de varios registros.

Page 14: Archivos Secuenciales Indexados

Cada registro del fichero índice almacena:

El Valor Del Campo Clave Del Último Registro De Un Bloque.

Los bloques están constituidos por un numero fijo de registros consecutivos.

La Dirección Del Primer Registro De Dicho Bloque.

Puede haber un área de desbordamiento. Ocupa más espacio en disco pero es más rápido. Puede almacenarse el fichero índice en memoria. Habría que calcularlo al iniciar una sesión de trabajo.

Page 15: Archivos Secuenciales Indexados

"REPRESENTACIÒN DE INDICES“

El índice puede definirse como una entidad que opera con un procedimiento que acepta información acerca de cierto valor de atributo, como entrada, y provee como salida una información que permite la rápida localización del registro se le llama primario al índice que utiliza como entrada la llave primaria y da como salida una información referente a la ubicación física del registro. 

Page 16: Archivos Secuenciales Indexados

Al tener un apuntador fuera de la estructura califica al archivo como índice, en cual básicamente es una colección de pares, llaves-dirección. 

Si este archivo contiene un par llave-dirección para cada registro de la colección de datos se le llama índice denso, de otra manera índice no denso se le llama índice disperso. Índice Datos 

Page 17: Archivos Secuenciales Indexados

Ejemplo:

Una forma sencilla de ver la estructura de un archivo índice es la de un árbol de búsqueda binaria, el cual es usado para cumplir el requerimiento de acceso particular a un registro, esta es una organización no secuencial indexada 

D B G A C E J 1 2 3 Datos no ordenados D 1 B 2 G 3 A 4 C 5 D 6 J 7 Llave Dirección 

Page 18: Archivos Secuenciales Indexados

OPERACIONES BASICAS DE ARCHIVO SECUENCIALES INDEXADOS

Crear zonas de índice y datos como archivos vacíos originales. 

Cargar el archivo índice en memoria antes de utilizarlo.  Rescribir el archivo índice desde memoria después de utilizarlo.

  Actualizar registros al archivo de datos y al índice.  Borrar registros de archivos de datos.  Actualizar registros en el archivo de datos.

Page 19: Archivos Secuenciales Indexados

MANTENIMIENTO DE UN ARCHIVO

El mantenimiento consiste que al momento de transcurrir un determinando tiempo de operación la estructura se satura, por ello se tiene que hacer un reacomodo de datos contenidos en el área de desbordamiento, trasladándolos al archivo principal y modificando el tamaño del bloque y los apuntadores de el índice.

Page 20: Archivos Secuenciales Indexados

Las operaciones que se pueden realizar dentro de la organización mediante un Archivo Secuencial Indexado son:

Creación y Apertura de un Fichero

Consulta de Datos

Cierre de un Fichero

Inserción de Datos

Borrado de un Fichero

Page 21: Archivos Secuenciales Indexados

Estas Operaciones se Describen a continuación (pseucodigo):

***Creación y Apertura de un Fichero****

crea ( <variable fichero > )

Crea el fichero asociado a la variable y lo deja preparado para la inserción de datos en el mismo, con un único elemento: EOF, indicando que está vacío.

Hay que asegurarse que el dispositivo físico esté listo para que no se produzca un error de ejecución.

abre ( < variable fichero > )

Abre un fichero previo para poder acceder a sus registros. Si no existe da error.

Se traslada al buffer el primer grupo de registros. El primer registro pasa a ser el registro activo. Tras crear un fichero, éste queda abierto.

Page 22: Archivos Secuenciales Indexados

***Consulta de Datos***

lee ( <variable fichero> , <variable> ).<variable> es una variable del mismo tipo que los registros del fichero que, después de la lectura, pasa a tener el valor del que era registro activo en ese momento.

•Tras una operación de lectura el apuntador interno del buffer se incrementaautomáticamente y pasa a señalar al registro siguiente. Si es necesario se carga el siguiente bloque en el buffer.

•No se puede sobrepasar el fin de fichero, produciría error. Utilizamos la función:EOF ( < variable fichero > ) : LógicoMientras not (EOF (<variable fichero>))LecturaFin Mientras

Page 23: Archivos Secuenciales Indexados

***Cierre de un Fichero***

El cierre de un fichero consiste en pasar toda la información que contiene el buffer al fichero del disco (la escritura se efectuaba sobre el buffer) y limpiar a continuación el buffer.

cierra ( <variable fichero>)Posicionamiento del Apuntador y Tamaño del Ficheroapunta ( <variable fichero> , <posición> )donde posición es un entero (constante o variable) entre cero y el número total de registros menos uno.

posición ( < variable fichero > ):enterotamaño ( < variable fichero > ): enteroSi hacemosapunta ( <variable fichero> , tamaño (<variable fichero> ) )estaremos colocados sobre la marca EOF. No da error.

Podríamos pasar un fichero a memoria, en un array p.e., pero:

1. Si sabemos el límite del número de registros que contendrá el fichero.

2. Puede no caber en memoria.

Page 24: Archivos Secuenciales Indexados

***Inserción de Datos***

escribe ( <variable fichero> , < variable > )donde <variable> tiene las mismas restricciones que en el caso de la lectura.

Se grabarán los datos, machacando los anteriores. El apuntador se avanzaautomáticamente.

Si el fichero está recién creado, se irán insertando los registros en cada operación de escritura, avanzando el apuntador automáticamente y empujando la marca EOF al final del fichero.

Si el fichero tiene datos, debemos avanzar el apuntador al final antes de insertar nuevos datos si queremos mantener los antiguos.

Page 25: Archivos Secuenciales Indexados

***Borrado de un Fichero***

Elimina definitiva y completamente un fichero en disco.borra ( <variable fichero> )Operaciones Adicionales sobre FicherosA partir de las operaciones primitivas que hemos visto.

Page 26: Archivos Secuenciales Indexados

Modificación de los Datos de un RegistroPasos:

1. Localizar en el fichero el registro que se desea modificar.

•Sabemos su posición. Nos posicionamos

•Conocemos el contenido de algún campo. Secuencialmente lo buscamos.

2. Sobre una variable auxiliar procederemos a modificar los datos.

3. Escribirnos dicha variable auxiliar en la misma posición que se encontraba.apunta(<variable fichero> , posición ( <variable fichero> ) – 1 )escribe (<variable fichero>, <variable auxiliar>)Supresión de RegistrosProblema: aprovechar el espacio ocupado por un registro borrado.

Page 27: Archivos Secuenciales Indexados

MANTENIMIENTO DE UN ARCHIVO SECUENCIAL INDEXADO

Al transcurrir un determinado tiempo de operación la estructura tiende a saturarse, se requiere entonces realizar un reacomodo de los datos contenidos en el área de desborde, trasladándolos hacia el archivo principal, teniendo que ajustar por supuesto el tamaño de los bloques y en consecuencia los apuntadores en el índice.

Page 28: Archivos Secuenciales Indexados

El mantenimiento puede darse por cualquiera de estos criterios:

 Tiempo transcurrido 

Tamaño del área de desborde (entre 25 y 30% del tamaño del archivo principal) 

La eliminación de registros en tiempo de operación se recomienda en forma lógica; es decir, mediante marcas que indiquen si un registro esta activo o no en el proceso de mantenimiento se realizara el reacomodo de los registros suprimiendo así los registros marcados para la eliminación.

Page 29: Archivos Secuenciales Indexados

VentajasPermite procesar el archivo secuencialmente por orden

lógico y también procesarlo al azar. 

La organización secuencial indexada es conveniente para archivos con mediana volatilidad, actividad variable y tamaño relativamente estable. 

Page 30: Archivos Secuenciales Indexados

Desventajas

Los índices requieren espacio extra, se necesita una doble búsqueda; una en el índice y otra en el archivo. 

Los registros deben ser de longitud fija. 

El archivo debe estar separado por un dispositivo de acceso aleatorio; no se puede utilizar en cintas magnéticas.