CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
Archivo secuencial indexado
1. UNIVERSIDAD MARIANO
GÁLVEZ DE GUATEMALA
INGENIERÍA EN SISTEMAS DE LA INFORMACIÓN
Programación I
Ing. Cesar Hernández
Alumno: Franklin Leonel López Agustín
Carné: 0907-14-22418
2. ARCHIVO SECUENCIAL INDEXADO
Los registros se organizan en una secuencia basada en un campo clave presentando
dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de
desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al
registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un
archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se
ubiquen siguiendo un puntero desde su registro predecesor.
3. La estructura más simple tiene como índice un archivo secuencial simple, cada
registro del archivo índice tiene dos campos, un campo clave igual al del archivo
principal y un puntero al archivo principal. Para encontrar un campo especifico se
busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede
al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la
posición que indique el puntero.
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. CARACTERÍSTICAS DE UN ARCHIVO INDEXADO
• 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 mas 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.
6. • Permiten utilizar el modo de acceso secuencial y el modo de acceso directo para leer
la información guardada en sus registros.
• 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.
7. PARTES DE UN ARCHIVO SECUENCIAL
INDEXADO
Para que un archivo pueda organizarse en forma secuencial indexada el tipo
de los registros debe contener un campo clave identificador. La clave se asocia con la
dirección (posición) del registro de datos en el archivo principal. Un archivo con
organización secuencial indexada consta de las siguientes partes:
• Área de datos: Contiene los registros de datos en forma secuencial, sin
dejar huecos intercalados.
• Área de índices:Es una tabla que contiene la clave identificativa y la dirección de
almacenamiento. Puede haber índices enlazados.
8. VENTAJAS
1. Permite el acceso secuencial.
2. Permite el acceso directo a los registros.
3. Se pueden actualizar los registros en el mismo fichero, sin necesidad de crear un
fichero nuevo de copia en el proceso de actualización.
9. DESVENTAJAS
1. Ocupa más espacio en el disco que los ficheros secuénciales, debido al uso del
área de índices.
2. 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.
3. Solo se puede utilizar soportes direccionables.
4. Obliga a una inversión económica mayor, por la necesidad de programas y, a
veces, hardware más sofisticado.
10. 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 algún valor de llave, como de acceder los
individualmente. Un archivo secuencial indexado puede tener acceso porque
manejan un archivo secuencial y un archivo relativo o de acceso directo.
11. • 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.
• 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. 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.
13. ÁREAS DEL ARCHIVO SECUENCIAL
INDEXADO
• Área de Datos: Contiene los registros secuencial, esta ordenados alfabéticamente o
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
14. OPERACIONES SOBRE UN ARCHIVO
SECUENCIAL
• Los archivos secuenciales son típicamente utilizados en aplicaciones de proceso de
lotes Y son óptimos para dichas aplicaciones si se procesan todos los registros. La
organización secuencias de archivos es la única que es fácil de usar tanto en disco
como en cinta.
• Para las aplicaciones interactivas que incluyen peticione s o actualizaciones de
registros individuales, los archivos secuenciales ofrecen un rendimiento pobre.
15. • Uno o más atributos se volverán los atributos llave para los registros en los archivos.
el conjunto de valores para los atributos llave generalmente identifica el objeto
descrito por el registro; es decir, el número de placa de un automóvil el nombre de
une persona. Se espera poder identificar los registros en forma única con base en
sus llaves. entonces los registros en el archivo se conservan en el orden de acuerdo
con los atributos llave. Un atributo llave proporcionara la llave primaria de
clasificación de alto orden y si este atributo no identifica en forma única al objeto,
entonces puede identificarse atributos llave secundarios o inferiores hasta que el
orden se determine por completo.
16. ARCHIVOS SECUENCIALES
• Creación de Archivo: En este proceso se pretende solamente crear un archivo nuevo
en disco, con su nombre, tipo y especialidad de almacenamiento de datos
apropiado.
• Apertura de Archivos: En este caso se pretende abrir un archivo ya existente en disco
para procesarlo, ya sea cargar o grabar datos en sus registros, o leer algún registro
en especial para mandarlo a una variable de cualquier tipo.
No confundir creación con apertura, creación es un proceso que solo se ejecuta una
sola vez en la vida de un archivo, mientras que apertura, siempre se está realizando
por los programas especializados en algún proceso.
17. • Cierre de archivos: Es la operación más importante en cualquier programa que
maneje archivos, o se cierra el archivo como última instrucción del programa o se
verá el anuncio ABORT, RETRY, FAIL.
• Altas en archivo: En este proceso se carga una clase en memoria con sus datos
pertinentes y se graba la clase en el archivo en disco.
• Lectura de archivo: En este proceso, se abre el archivo y se manda el registro de
disco, a una clase en memoria para su procesamiento.
• Consulta de archivos: En este proceso se pretende desplegar todos los registros del
archivo en disco a la pantalla, ya sea consola o mejor aún, a una pagina HTML .
18. • Búsqueda en archivos: Una de las operaciones más comunes, consiste en que el
usuario pide toda la información de algún renglón en disco, proporcionando la
información de algún campo, generalmente el campo clave de la clase.
• Filtros: En este proceso el usuario está interesado en algún conjunto de renglones
con características comunes (condición), por ejemplo todos los alumnos de “sisJAVA
TEMA s”, o todos los empleados que ganen más de $500.00 pesos, o todos los
clientes que sean de “Tijuana”, etc.
• Modificaciones de registros o archivos: Problema muy común, donde los datos
originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre
no era “Juan” es “Juana”, o la calificación no es 100 es 20, etc.
• Bajas de registros: también muy común este proceso, por ejemplo el alumno ya
egreso, el cliente huyo, etc.
19. 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.
• 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.
• 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 ultimo asociado al
mismo bloque ya sea que este se encuentre al final del bloque o en el área de
desborde.
20. EJEMPLO DE ARCHIVOS SECUENCIALES
INDEXADOS
• Para buscar el teléfono de una persona en la guía no se busca secuencialmente desde los
nombres cuya inicial es "a" hasta la "z", sino que se abre la guía por la letra inicial del
nombre. Si se desea buscar "zala bastro", se abre la guía por la letra "z" y se busca la
cabecera de página hasta encontrar la página más próxima al nombre, buscando a
continuación nombre a nombre hasta encontrar "zalabastro". La guía 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. Por consiguiente, cada
archivo secuencial indexad o consta de un archivo de índices y un archivo de datos.
21.
22. EJEMPLO DE ARCHIVOS SECUENCIALES
INDEXADOS EN C++
• https://github.com/Tortu/hello-
world/blob/master/Archivo%20secuencial%20indexado