Presentación inteligencia artificial en la actualidad
Archivos Secuenciales Indexados
1.
2. ¿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.
3. 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.
4.
5. Un método popular para superar las
desventajas de los archivos secuenciales es el
del archivo secuencias indexado.
6. El archivo secuencial indexado mantiene las
características básicas de los archivos
secuenciales
los registros están organizados en una secuencia
basada en un campo.
7. Dos Características se añaden:
1)Un Índice Del Archivo Para Soportar Los Accesos
Aleatorios
2)Un Archivo De Desbordamiento ( overflow ).
8. 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.
9. 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.
10. "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.
11. 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.
12. 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.
13. 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.
14. 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.
15. "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.
16. 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
17. 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
18. 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.
19. 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.
20. 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
21. 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.
22. ***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
incrementa
automá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ógico
Mientras not (EOF (<variable fichero>))
Lectura
Fin Mientras
23. ***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 Fichero
apunta ( <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 > ):entero
tamaño ( < variable fichero > ): entero
Si hacemos
apunta ( <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.
24. ***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 avanza
automá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.
25. ***Borrado de un Fichero***
Elimina definitiva y completamente un fichero en disco.
borra ( <variable fichero> )
Operaciones Adicionales sobre Ficheros
A partir de las operaciones primitivas que hemos visto.
26. Modificación de los Datos de un Registro
Pasos:
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 Registros
Problema: aprovechar el espacio ocupado por un registro borrado.
27. 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.
28. 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.
29. Ventajas
Permite 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.
30. 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.