You are on page 1of 15

Ministerio de Educación y Cultura

Centro Regional de Educación


Saturio Ríos

Algorítmica III
Archivo Secuencial Indexado

Integrantes:
Guillermo Martínez
Gustavo Lublín
Roque Vera
Oscar Arias

San Lorenzo | Paraguay


Año 2008
Introducción
En el siguiente trabajo explicamos las la definición de archivo
secuencial cuyas características básicas son las mismas que las de los
archivos secuenciales normales, los registros se organizan en
secuencia basada en un campo clave pero se agregan dos
características: un índice del archivo para soportar los accesos
aleatorios y un archivo de desbordamiento, explicamos en qué
consisten estos archivos aparte de las operaciones consulta, altas,
bajas y modificaciones que se pueden realizar con dichos archivos,
con varios ejemplos de aplicación en pseudocódigo.
Archivo Secuencial Indexado
Conceptos. Definición.
Estos archivos mantienen las características básicas de los archivos
secuenciales: los registros se organizan en secuencia basada en un
campo clave pero se agregan dos características: un índice del
archivo para soportar los accesos aleatorios y un archivo de
desbordamiento (ovarlo).

El índice proporciona una capacidad de búsqueda para llegar


rápidamente a las proximidades de un registro deseado. El archivo de
desbordamiento se ubica en la dirección de un puntero desde su
registro precedente.

La estructura secuencial indexada más simple utiliza un único nivel


de indexación. El archivo de índices es un archivo secuencial simple.
Cada registro de este archivo consta de dos campos: un campo clave
y un puntero al archivo principal. Para buscar un registro específico se
busca por el campo clave en el archivo de índices hasta encontrar el
mayor valor de clave que sea igual o menor al valor buscado. La
búsqueda continúa en el archivo principal a partir de la posición
indicada por el puntero.

Supongamos un archivo secuencial con 1.000.000 de registros. La


búsqueda de un registro particular implicará, en promedio, 500.000
accesos a registros. Si se cuenta con un archivo de índices con 1000
registros, con las claves distribuidas de manera uniforme. Para
encontrar el registro se necesitarán, en promedio, 500 accesos al
archivo de índices y otros 500 accesos al archivo principal. Es decir
que pasamos de 500.000 accesos a 1.000.

Para agregar registros al archivo se utiliza el archivo de


desbordamiento. Cada registro del archivo principal tiene un campo
adicional, no visible para la aplicación, que es un puntero al archivo
de desbordamiento. Cada cierto tiempo el archivo de desbordamiento
se combina con el principal.

Cuando se realiza una búsqueda se procesan los registros del archivo


principal en secuencia. Cuando se encuentra un puntero hacia el
archivo de desbordamiento la búsqueda continúa en el mismo hasta
encontrar un puntero nulo, momento en que se reanuda el acceso
donde se abandonó en el archivo principal.

Pueden utilizarse múltiples niveles de indexación, con lo cual se


logrará 1reducir aún más la cantidad de accesos.
2

Archivo
n Archivo de
Desbordamiento

Principal
Operaciones De Archivos Secuenciales
Indexados
Los archivos secuenciales son utilizados en aplicaciones de proceso
de lotes y son óptimos para dichas aplicaciones si se procesan todos
los registros. La organización secuencial de archivos es la única que
es fácil de usar tanto en disco como en cinta. Para las aplicaciones
interactivas que incluyen peticiones o actualizaciones de registros
individuales, los archivos secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en un
orden secuencial simple de los registros. La organización física del
archivo en una cinta o disco se corresponde exactamente con la
ubicación lógica del archivo. En este caso, el procedimiento para
ubicar los nuevos registros en un archivo de pila separado, llamado
archivo de registro o archivo de transacciones. Periódicamente, se
realiza una actualización por lotes que mezcla el archivo de registro
con el archivo maestro para producir un nuevo archivo en secuencia
correcta de claves. Las operaciones que se realizan son:

Creación: Escritura de todos sus registros. Es la primera operación


que sufrirá el archivo de datos. Implica la elección de un entorno
descriptivo que permita un ágil, rápido y eficaz tratamiento del
archivo. Para utilizar un archivo, éste tiene que existir, es decir, las
informaciones de este archivo tienen que haber sido almacenadas
sobre un soporte y ser utilizables. La creación exige organización,
estructura, localización o reserva de espacio en el soporte de
almacenamiento, transferencia del archivo del soporte antiguo al
nuevo.

Un archivo puede ser creado por primera vez en un soporte, proceder


de otro previamente existente en el mismo o diferente soporte, ser el
resultado de un cálculo o ambas cosas a la vez.

Consulta: Lectura de todos sus registros. Es la operación que


permite al usuario acceder al archivo de datos para conocer el
contenido de uno, varios o todos los registros.

Actualización: Inserción supresión o modificación de algunos de


sus registros. Es la operación que permite tener actualizado (puesto
al día) el archivo, de tal modo que sea posible realizar las siguientes
operaciones con sus registros: Consulta del contenido de un registro.
Inserción de un registro nuevo en el archivo. Supresión de un registro
existente. Modificación de un registro.

Clasificación: Reubicación de los registros de tal forma que


queden ordenados según determinados criterios. Una operación muy
importante en un archivo es la clasificación u ordenación. Esta
clasificación se realizará de acuerdo con el valor de un campo
específico, pudiendo ser ascendente (creciente) o descendente
(decreciente): alfabética o numérica.
Borrado: Eliminado total del archivo, dejando libre el espacio del
soporte que ocupaba. Es la operación inversa a la creación de un
archivo (kill, en inglés). Cuando se destruye (anula o borra) un
archivo, éste ya no se puede utilizar y, por consiguiente, no se podrá
acceder a ninguno de sus registros.

Reorganización de un archivo: Las operaciones sobre


archivos modifican la estructura inicial o la óptima de un archivo. Los
índices, enlaces (punteros), zonas de sinónimos, zonas de
desbordamiento, etc., se modifican con el paso del tiempo, lo que
hace a la operación de acceso al registro cada vez más lenta. La
reorganización suele consistir en la copia de un nuevo archivo a partir
del archivo modificado, a fin de obtener una nueva estructura lo más
óptima posible.

Estallido de un archivo: Es la operación de obtener varios


archivos a partir de un mismo archivo inicial.
Características de los Archivos Secuenciales
Indexados.
Estos archivos mantienen las características básicas de los archivos
secuenciales que son: los registros se organizan en secuencia basada
en un campo clave pero se agregan dos características, un índice del
archivo para soportar los accesos aleatorios y un archivo de
desbordamiento.

El diccionario es un ejemplo típico de archivo secuencial indexado con


dos niveles de índices, el nivel superior para las letras iniciales y el
nivel menor para las cabeceras de página. En una organización de
computadora, las letras y las cabeceras de páginas se guardaran en
un archivo de índice independiente de las entradas del diccionario
(archivo de datos). Por consiguiente, cada archivo secuencial
indexado consta de un archivo índice y un archivo de datos.

Un archivo está organizado en forma secuencial indexada si:

- El tipo de sus registros contiene un campo clave identificador.

- Los registros están situados en un soporte direccionable por el


orden de la posición y el valor de la clave; En esencia, el índice
contiene la calve del último registro y la dirección de acceso al
primer registro del bloque.

Un archivo en organización secuencial indexada consta de las


siguientes partes:

- Área de datos o primaria: contiene los registros en forma


secuencial y está organizada en secuencia de claves sin dejar
huecos intercalados.

- Área de índices: es una tabla que contiene los niveles de


índices, la existencia de varios índices enlazados se denomina
nivel de indexación.

- Área de desbordamiento: utilizada, si fuese necesario, para las


actualizaciones.

El área de índices es equivalente, en su función, al índice de un libro.


En ella se refleja el valor de la clave identificadora más alta de cada
grupo de registros del archivo y la dirección de almacenamiento del
grupo.

Ventajas de los archivos secuenciales


indexados
- Rápido acceso.
- El sistema de gestión de archivos se encarga de relacionar la
posición de cada registro con su contenido mediante la tabla de
índices.

Desventajas
- Desaprovechamiento del espacio por quedar huecos intermedio
cada vez que se actualiza el archivo.

- Se necesita espacio adicional para el área de índices.

Los soportes que se utilizan para esta organización son los que
permiten el acceso directo, los discos magnéticos. Los soportes de
acceso secuencial no pueden utilizarse, ya que no dispone de
direcciones para sus posiciones de almacenamiento.
Ejemplos de utilización en pseudocódigos
Consulta
Tenemos un fichero DATOS.DAT que está indexado por el campo DNI
y tiene la siguiente estructura: CI, NOMBRE, APELLIDOS, DIRECCIÓN,
CIUDAD.
Crear un programa que nos permita consultar un registro siempre que
queramos.

Variables
num= introducir el CI a buscar
res= para buscar más datos

Pseudocódigo
res="S"
abrir DATOS asociado a CI
mientras res="S"
num=0
cls
en 8,20 imprime "C.I. a buscar: "
en 8,38 introduce num
buscar num
si found ()
en 10,12 imprime "Nombre: ", nombre
en 12,28 imprime "Apellidos: ", apellidos
en 14,55 imprime "Dirección: ", direccion
en 16,69 imprime "Ciudad: ", ciudad
else
en 12,20 imprime "No está"
en 16,20 imprime "Pulse RETURN para continuar"
detener-listado
fin si
res=espacios(1)
hacer mas
fin mientras
cerrar DATOS
cerrar índices
fin del programa

Observación: para buscar un dato en un archivo secuencial


indexado basta con “buscar nom_variable”, se buscará el valor de esa
variable en la columna asociada al archivo, en este caso CI, que está
asociado a DATOS y función “found ()” que devuelve un valor True o
False de acuerdo a si encontró o no el dato en la columna del archivo.
Altas
Hacer un programa que nos permita dar altas en el fichero
DATOS.DAT, que está indexado por los campos CI, APELLIDOS y
CIUDAD, controlando las altas duplicadas.

Variables
num=para introducir el ci del nuevo registro.
res=para seguir introduciendo más registros.

Pseudocódigo
res="S"
abrir DATOS asociado a CI, APELLIDOS, CIUDAD
hacer mientras res="S"
CLS
en 5,10 introduce "C.I.: ", num
buscar num
si found()
en 10,10 imprime "Alta duplicada"
en 15,10 imprime "Pulse ENTER para continuar"
detener-listado
else
en 7,5 introduce "Nombre: ", nombre
en 9,5 introduce "Apellidos: ", apellidos
en 11,5 introduce "Dirección: ", direccion
en 13,5 introduce "Ciudad: ", ciudad
ci=num
posicionarse al final del fichero de datos
escribir registro
fin si
res= ""
hacer MAS
fin mientras
cerrar fichero de DATOS
cerrar fichero de indices
fin
Bajas
Hacer un programa que nos permita dar bajas en el fichero DATOS.DAT, que
está indexado por los campos CI,APELLIDOS y CIUDAD, controlando las
bajas inexistentes.

Variables
num=para introducir el ci a dar de baja
res=para seguir introduciendo más registros

Pseudocódogo
res="S"
abrir DATOS asociado a CI, APELLIDOS, CIUDAD
mientras res="S"
cls
en 5,10 imprime "C.I.: "
en 5,15 introduce num
buscar num
si found()
en 7,5 introduce "Nombre: ", nombre
en 9,5 introduce "Apellidos:", apellidos
en 11,5 introduce "Dirección: ", direccion
en 13,5 introduce "Ciudad: ", ciudad
res=""
mientras res <> "S" and res <> "N"
res=""
en 20,44 introduce "Deseas borrarlo (S/N): ", res
fin mientras
si res="S" or res="s"
borrar registro
fin si
else
en 12,10 imprime "Baja inexistente"
en 16,10 imprime "Pulse ENTER para continuar"
detener-listado
fin si
res=""
hacer MAS
fin mientras
cerrar fichero de DATOS
cerrar fichero de indices
fin
Listado
Tenemos el fichero DATOS.DAT, que está indexado por el campo
APELLIDOS, cuyos campos son:

CI, NOMBRE, APELLIDOS, DIRECCION, CIUDAD

Hacer un programa que nos permita listar, por pantalla, todos los registros
del fichero, controlado el salto de página cuando llegue a la línea 20
(veinte).

Variables
fi=controlador de las filas

Pseudocódigo
Abrir DATOS asociado a APELLIDOS
fi=22
hacer mientras no sea EOF()
si fi=22
hacer CABECERA
fin del if
en fi,2 imprime ci
en fi,12 imprime nombre
en fi,28 imprime apellidos
en fi,55 imprime direccion
en fi,69 imprime ciudad
fi=fi+1
si fi=20
en 22,20 imprime "Pulse ENTER para continuar"
detener-listado
fi=22
fin si
leer siguiente registro
fin mientras
cerrar DATOs
cerrar indices
fin
Conclusión
Este trabajo nos ha sido de mucha utilidad ya que durante su realización
comprendimos la enorme ventaja de los archivos secuenciales indexados y
como utilizarlos. Ya que con estos conocimientos podremos seguir
avanzando en el largo camino de la programación.

Esperamos que este trabajo que fue realizado con mucho esfuerzo y esmero
por parte de los integrantes del grupo sea del agrado y provecho de todo
aquel que guste de leerlo.
Bibliografía
Metodología de la Programación a través de Pseudocódigo. M. Angel
Rodríguez Almeida. Editorial McGraw-Hill.

www.geocities.com

www.itnuevolaredo.edu.mx

Algoritmos y Estructuras de Datos, Mariella Gutiérrez Valenzuela.

You might also like