Un archivo secuencial indexado permite acceso secuencial y aleatorio a registros ordenados por una clave. Contiene un área de datos con registros ordenados, un área de índices con punteros a los registros, y un área de desbordamiento. Requiere mantenimiento periódico para reacomodar registros entre áreas a medida que se llena. Permite crear, consultar, cerrar y insertar registros de manera eficiente.
3. DEFINICION:
Es uno de los varios métodos de accesos existentes, mediante este método el usuario obtiene acceso secuencial a los
usuario obtiene acceso secuencial a los registros clasificados por llaves y también acceso indexado a los mismos
también acceso indexado a los mismos registros.
Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del
presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de
accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llegar
capacidad de búsqueda para llegar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo
archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de
archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero
desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor.
predecesor.
4. Cada registro del archivo principal tiene un campo adicional que es un
puntero al archivo de desbordamiento. Cuando se inserta un nuevo registro al
archivo, también se añade al archivo de desbordamiento. El registro del
archivo principal que precede inmediatamente al nuevo registro según la
secuencia lógica se actualiza con un puntero del registro nuevo en el archivo
de desbordamiento, si el registro inmediatamente anterior está también en el
archivo de desbordamiento se actualizará el puntero en el registro.
Para procesar secuencialmente un archivo completo los registros del archivo
principal se procesarán en secuencia hasta encontrar un puntero al archivo de
desbordamiento, el acceso continúa en el archivo de desbordamiento hasta
que encuentra un puntero nulo, entonces renueva el acceso donde se
abandonó en el archivo principal.
5. Área de Datos:
Contiene los registros secuencial, este
secuencial, este ordenado alfabéticamente o
alfabéticamente o alfanuméricamente y no
alfanuméricamente y no deja espacios.
Área de índice:
Los niveles de índice están contenidos en
una tabla, si existieran varios índices
enlazados se denomina nivel de indexación
Área de Desbordamiento o Excedentes:
Esta área es utilizada para realizar
actualizaciones si ello es necesario
6. ESTRUCTURA DE LA ORGANIZACIÓN SECUENCIAL INDEXADO.
Este tipo de organización se utiliza cuando existe la necesidad tanto de acceder a los registros secuencialmente, por
acceder a los registros secuencialmente, por algún valor de llave, como de acceder los individualmente.
acceder los individualmente.
Un archivo secuencial indexado puede tener acceso porque manejan un archivo secuencial y un archivo relativo o de
archivo secuencial y un archivo relativo o de acceso directo. El tipo de sus registros contiene un campo clave
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.
valores indicados por la clave.
7. Un archivo secuencial indexado contiene un archivo índice y un 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. El archivo índice agilizar la búsqueda dentro
del fichero. El fichero de datos se organiza, lógicamente, en bloques o páginas
de varios registros.
8. Cada registro del fichero índice almacena:
El valor del campo clave del último registro de un bloque. Los bloques están
constituidos por un número 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. 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 de da la dirección del
registro correspondiente.
9. FICHEROS CON ORGANIZACIÓN SECUENCIAL INDEXADA.
Un archivo con organización secuencial indexada está formado por:
Área De Datos: Es el área en la que se escriben los registros cuando el archivo es
Los ficheros con organización secuencial indexada se graban en un soporte de
almacenamiento directo, en secuencia ascendente, de acuerdo con los valores de la
clave y en páginas o bloques de longitud fija.
El Área De Índices: es creada por el sistema al mismo tiempo que se van almacenando
las claves con las direcciones de los registros en el área de datos.
Cada entrada del área de índices está formada por el valor más alto de la clave de
cada grupo de registros y un puntero con la dirección del primer registro del grupo.
10. Área De Excedentes: donde se graban los registros que no tienen sitio en el
área de datos. Los nuevos registros se insertan y quedan enlazados entre sí
mediante punteros conservando el orden lógico que marca la clave o índice
principal.
Del tratamiento de los índices y punteros se encarga el sistema operativo por
lo que no va a crear problemas al usuario cuando maneja este tipo de ficheros.
El usuario sabe lo que sucede cuando solicita una consulta de un registro, pero
no sabe cómo se realiza internamente esa consulta.
11. MANTENIMIENTO DE UN ARCHIVO SECUENCIAL INDEXADO
Al transcurrir un determinado tiempo de operación la estructura tiende a saturarse, se requiere entonces realizar un
saturarse, se requiere entonces realizar un reacomodo de los datos contenidos en el área de desborde, trasladándolos
en el área de desborde, trasladándolos hacia el archivo principal, teniendo que ajustar por supuesto el tamaño de los
ajustar por supuesto el tamaño de los bloques y en consecuencia los apuntadores en el índice.
apuntadores en el índice.
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)
principal)
12. 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 está activo o no
en el proceso de mantenimiento se realizara el reacomodo de los registros
suprimiendo así los registros marcados para la eliminación.
Cuando es relevante el orden de llegada de los registros en cada bloque puede
tomarse el criterio de sustituir a un registro eliminado por el último asociado
al mismo bloque ya sea que este se encuentre al final del bloque o en el área
de desborde.
13. MANTENIMIENTO DE UN ARCHIVO
El mantenimiento consiste que al momento de transcurrir un determinando tiempo de operación la estructura se satura,
tiempo de operación la estructura se satura, por ello se tiene que hacer un reacomodo de datos contenidos en el área de
reacomodo de datos contenidos en el área de desbordamiento, trasladándolos al archivo principal y modificando el
al archivo principal y modificando el tamaño del bloque y los apuntadores del índice.
índice.
El mantenimiento consiste en aplicar cualquiera de estos dos criterios los cuales son el tiempo transcurrido y el tamaño
cuales son el tiempo transcurrido y el tamaño del área de desbordamiento.
La eliminación de los registros se recomienda de forma lógica, mediante una marca que indique si el archivo está
marca que indique si el archivo está activo o no, se realiza el reacomodo de los registros eliminando así los registros
registros eliminando así los registros marcados para la eliminación.
14. Es relevante el orden de llegada de los registros en cada bloque puede
tomarse la decisión de sustituir un registro eliminado por el ultimo asociado
al mismo bloque. Las operaciones que se pueden realizar dentro de la
organización mediante un Archivo Secuencial Indexando son:
Creación y Apertura de un Fichero
Consulta de Datos
Cierre de un Fichero
Inserción de Datos
Borrado de un Fichero
Estas Operaciones se Describen a continuación (pseucodigo):
15. ***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.
16. ***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 nota (EOF (<variable fichero>))
Lectura
Fin Mientras
17. ***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.
18. ***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.
19. Las características más relevantes de un archivo indexado, son las siguientes:
a) El diseño del registro tiene que tener un campo, o combinación de campos,
que permita identificar cada registro de forma única, es decir, que no pueda
haber dos registros que tengan la misma información en él. A este campo se le
llama 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 le llama clave primaria. A las restantes se les llama claves
alternativas.
b) Permiten utilizar el modo de acceso secuencial y el modo de acceso directo
para leer la información guardada en sus registros.
20. El modo de acceso directo se hace conociendo el contenido del campo clave
del registro que queremos localizar. Con esa información el sistema operativo
puede consultar el índice y conocer la posición del registro dentro del fichero.
En el modo de acceso secuencial los registros son leídos ordenados por el
contenido del campo clave, independientemente del orden en que se fueron
grabando (El orden lógico no es igual al orden físico), debido a que el acceso a
los datos se hace a través del índice, que para hacer más fácil la búsqueda de
los registros permanece siempre ordenado por el campo clave.
c) Solamente se puede grabar en un soporte direccionable. Ej.: disco
magnético. Si esto no fuera así no podría emplear el acceso directo.
21. VENTAJAS Y DESVENTAJAS
VENTAJAS:
Permite el acceso secuencial.
Permite el acceso directo a 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.
22. DESVENTAJAS:
Ocupa más espacio en el disco que los ficheros secuénciales, 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, ya que aumenta el área de overflow.
Solo se puede utilizar soportes direccionables.
Obliga a una inversión económica mayor, por la necesidad de programas y, a
veces, hardware más sofisticado.
23. Este es un ejemplo el cual crea un bloc de notas con el
nombre que le colocamos en nuestro código y almacena el
msj que se ha escrito en el.
24.
25. El bloc de notas se crea donde tengamos
almacenado nuestro programa, en este
caso se creo en los archivos de la
carpeta de DEV C++.
Con el nombre que habíamos declarado
anteriormente.
26. Al abrir el bloc
de notas se
muestra este
mensaje