You are on page 1of 38

GESTION DE ARCHIVOS

DIFERENCIA ENTRE AMBOS TIPOS DE


FICHEROS
Secuencial
Para acceder a un determinado registro hay que pasar por
los n-1 anteriores
Los ficheros de texto son un caso particular de fichero
secuencial que slo contienen caracteres
Directo
Podemos acceder directamente a cualquier registro
GESTIN DE ARCHIVOS
Las operaciones sobre los archivos se
realizan mediante programas y el primer
paso para poner gestionar un archivo
mediante un programa es declarar un
identificador lgico que se asocie al
nombre externo del archivo para permitir
su manipulacin.

La declaracin se realizar con una serie de
instrucciones como las que se muestran a
continuacin, cuya asociacin permite
establecer la organuizacin del archivo y
estructura de sus registros lgicos.
FLUJOS
Existen lenguajes d eprogramacin que
realizan operaciones en archivos a
travs de flujos, manipulados por clases,
que conectan con el medio de
almacenamiento.
De esta forma, para crear y abrir un
archivo, se requiere utilizar una clase
definida la funcionalidad del flijo.

FLUJOS
Los flujos determinan la sentido de la
comunicacin (lectura, escritura o
lectura/escritura), la posibilidad de
posicionamineto directo o no en
determinado registro y la forma de leer
o escribir en el archivo.
Cerrar un archivo implica cerra el flujo.
PROCESAMIENTO DE ARCHIVOS
SECUENCIALES (ALGORITMOS)
Los archivos secuenciales terminan con
una marca final de archivo (FDA o EOF).
Cuando se tenga que aadir registros a
un archivo secuencial se aadir al
final, inmediatamente pordelante de las
marcas fin de archivos.
Es caracterstico de este tipo de archivos
el no poder ser abiertos para
operaciones de lectyra/escritura
simultneamente
ARCHIVOS DE TEXTO
Los archivos de texto son un caso particular de
archivos de organizacin secuencial. Un
archivo de texto es una serie contnua de
caraceres que se pueden leer uno tras otro.

Un archivo de texto es un archivo en el que
cada registro es del tipo de cadena de
caracteres.

El tratamiento de archivos de texto es elemental
y en el caso de lenguajes como Pascal es
posible detectar lectura de caracteres
especiales como fin de lnea o fin de archivo.
PROCESAMIENTO DE ARCHIVOS
DIRECTOS (ALGORITMOS)
Se dice que un archivo es aleatorio o directo
cuando cualquier registro es directamente
accesible mediante la especificacin de
un ndice, que da la posicin del registro
respectoal origen del fichero.

Los archivos aleatorios o directos tienen una
gran rapidez para el acceso comparados
con los secuenciales; los registros son fciles
de refernciar nmero de orden del
registro- , lo que representa una gran
facilidad de mantenimiento.
PROCESAMIENTO DE ARCHIVOS
SECUENCIALES INDEXADOS
Los archivos de organizacin secuencial
indexada contienen tres reas:
un rea de datos que agrupa a los
registros, un rea ndice que contiene
los niveles de ndice y una zona de
desbordamiento o excedentes para el
caso de actualizaciones con adicin de
nuevos registros.
PROCESAMIENTO DE ARCHIVOS
SECUENCIALES INDEXADOS
Los registros han de ser grabados
obligatoriamnete en orden secuencial
ascendente por el contenido del
campo clave y, simultneamente a la
grabacin de los registros, el sistema
crea los ndices.
En este tipo de organizacin se puede
usar claves compuestas por una
primaria y una o varias secundarias.
MANTENIMIENTO DE
ARCHIVOS
MANTENIMIENTOS DE ARCHIVOS
La operacin de mantenimiento de un
archivo incluye todas las opraciones
que sufre un archivo durante su vida y
desde su creacin hasta su eliminacin
o borrado.

El mantenimiento de un archivo consta
de dos operaciones diferentes:
Actualizacin
Consulta
MANTENIMIENTOS DE ARCHIVOS
La actualizacin es la operacin de
eliminar o modificar los datos ya
existentes, o bien introducir nuevos
datos. En esencia, es la puesta al da de
los datos del archivo.

Las operaciones de actualizacin son:
Altas
Bajas
Modificaciones
Se deben considerar los tipos de cambios que puede
tener un archivo.
Si es muy volatil ( inserciones o eliminaciones frecuentes) y esta en un
ambiente de tiempo real, se deben facilitar cambios rpidos.
Ejemplo: sistema de reservaciones ereas.
Si es un archivo fuera de linea, tiene pocos cambios, no necesita
mantenerse actualizado, puede actualizarse en procesamiento por lotes y
no requiere estructuras adicionales para facilitar los cambios rpidos.

Ejemplo: Lista de correos.
El mantenimiento es importante debido a que el
desempeo se deteriora conforme a los cambios.
Ejemplo, se modifica un registro de longitud
variable, de tal forma que el nuevo registro resulta
ser mayor qu se hace con los datos adicionales?

Se podran agregar al final del archivo y
colocar un apuntador desde el espacio
original del registro hasta la ampliacin
del registro.
Se podra reescribir el registro hasta el
final del archivo dejando un hueco en la
localidad original del registro.

Las modificaciones pueden ser:
Agregar un registro
Actualizar un registro
Eliminar un registro
La actualizacin de registros puede ser considerada
como una eliminacin de registro seguida por la
insercin de otro.
Cuando se elimina un registro se debe reutilizar el
espacio
Compactacin del Almacenamiento
Una estrategia de eliminacin de registros debe proporcionar alguna forma de
reconocer los registros que se han eliminado.
Un enfoque sencillo y que normalmente funciona es colocar una marca especial en
cada registro eliminado.
Compactacin del Almacenamiento
Como reutilizar el espacio del registro eliminado?
No se hace nada de inmediato, se dejan los registros
eliminados por un lapso.

Los programas que usan el archivo usan la lgica
para que se ignoren los registros que estn
eliminados.

Se puede anular la eliminacin del registro. Se puede
guardar la marca de eliminacin en un campo
especial.


El espacio de todos los registros eliminados se recupera
despues de algn tiempo.
Despues de algun lapso, se emplea un programa especial de
compactacin que reconstruye el archivo ya sin los archivos
eliminados.
La forma ms simple es mediante un programa de copia de
archivos que ignora los registros eliminados.

Compactacin del Almacenamiento
La decisin respecto a la frecuencia con que se
ejecuta el programa de compactacin puede basarse
en el nmero de registros eliminados o en el
calendario.
Hay situaciones en las que por la volatilidad se
requiere recuperar el espacio de manera inmediata.


Eliminacin de registros de longitud fija para la recuperacin dinamica de
espacio
Para proporcionar un mecanismo de eliminacin de
registros con la subsecuente reutilizacin del espacio
liberado se requiere:
Que los registros eliminados se marquen de una
manera especial
Que se pueda encontrar el espacio que los registros
eliminados ocupaban, para reutilizarlo cuando se
agreguen registros.

Cuando el programa puede distinguir un registro eliminado,
la reutilizacin del espacio puede darse en forma de busqueda
en el archivo, registro por registro, hasta que se encuentre un
registro eliminado.
Si el programa llega al final del archivo sin encontrar un
registro eliminado, entonces el registro puede agregarse ah,
al final.


Eliminacin de registros de longitud fija para la recuperacin dinamica de
espacio
Esto es un proceso lento, para que se realice ms rpido se necesita:
Una forma de saber de inmediato si hay lugares vacos en el archivo
Una forma de saltar directamente a uno de esos lugares, en caso de existir.
El uso de una lista ligada para unir todos los registros disponibles puede
cubrir esas necesidades.
Si se tiene una referencia inicial al primer nodo de la lista, est puede
recorrerse examinando cada nodo y luego el campo apuntador del nodo, de
manera que se sepa donde est el siguiente.


Eliminacin de registros de longitud fija para la recuperacin dinamica de
espacio
Una lista compuesta de registros eliminados que se han convertido en espacio
disponible se llama lista de disponibles.
Al insertar un registro nuevo en un archivo de registros de longitud fija, cualquier
registro es bueno.
El modo ms sencillo de manejar una lista es como si fuera una pila.

Ahora se pueden aplicar los dos criterios para acceso rpido al espacio reutilizable.
Eliminacin de registros de longitud fija para la recuperacin dinamica de
espacio
Dond se guarda la pila?
El apilamiento y ligamiento se realiza organizando y reorganizando las ligas
usadas, de manera que un registro de espacio disponible apunte al siguiente.
El sealamiento no se realiza con variables tipo apuntador sino a travs de
nmeros realtivos de registro (NRR)


Eliminacin de registros de longitud fija para la recuperacin dinamica de
espacio
Eliminacin de Registros de Longitud Variable
Para reutilizar los registros mediante una lista de disponibles se require:
Una forma de ligar los registros en una lista
Un algoritmo para agregar nuevos registros eliminados a la lista de disponibles
Un algoritmo para encontrar y eliminar registros de la lista de disponibles cuando
estn listos para usarse.


Lista de disponibles de Registros de Longitud Variable
Se utilizar una estructura de archivo donde se define la longitud de cada registro,
colocando un contador de bytes del contenido del registro al inicio de cada uno.
Se puede colocar un asterisco en el primer campo, seguido por un campo binario
deliga que apunte al siguiente registro eliminado en la lista de disponibles.
No se peden utilizar los NRR para la ligas. No se puede calcular la distancia en
bytes, las ligas deben contenerla.
Agregar y Eliminar registros
No se puede utilizar una pila, debido a que los registros en la lista de disponibles
difieren en tamao.
Se require que:
El registro haya sido eliminado.
El registro debe tener el tamao correcto. Para este efecto, tamao correcto es
suficientemente grande.
Todos los registros de la lista de disponibles cumplen con la primera condicin,
pero no todos cumplen con la segunda.
Se requiere buscar en la lista de disponibles un registro del tamao correcto.

Agregar y Eliminar registros
Ejemplo, agregar registro de tamao 55

Si se llega al final de la lista de disponibles sin encontrar un registro lo
suficientemente grande, se habra tenido que agregar el nuevo registro al final del
archivo.
Fragmentacin del almacenamiento
Los puntos al final de los registros representan caracteres que se usan como relleno
entre el ltimo campo y el final del registro.
El relleno es espacio desperdiciado, es parte del costo que implica usar registros de
longitud fija.
El espacio desperdiciado dentro de un registro se llama fragmentacin interna.

Fragmentacin del almacenamiento
Es deseable minimizar la fragmentacin interna.
Con archivos de longitud fija, se busca minimizar eligiendo una longitud que sea lo
ms aproximada posible a la que se necesita para cada registro.
Los registros de longitud variable minimizan el espacio desperdiciado al eliminar
la fragmentacin interna cuando se escribe el archivo la primera vez.

Que sucede en un archivo de registros de longitud variable despus de que se
elimina un registro y se remplaza por otro ms corto?
Si el registro ocupa menos espacio que el original ocurre fragmentacin interna

Fragmentacin del almacenamiento
En el archivo anterior se elimina el segundo registro y se agrega el siguiente

Fragmentacin del almacenamiento
En lugar de guardar intacto todo el espacio, se puede dividir en dos partes, uno
para guardar el nuevo registro y otro para colocar el resto en la lista de disponibles.
Agreguemos otro registro
Fragmentacin del almacenamiento
Agreguemos otro registro
Cual es la probabilidad de encontrar un registros de 8 bytes?
Este es un caso de fragmentacin externa.
El espacio est en la lista de disponibles, no dentro de un registro, pero esta
demasiado fragmentado para utilizarse.

Fragmentacin del almacenamiento
La fragmentacin externa puede combatirse con la compactacin del espacio. Si la
fragmentacin es intolerable se regenera el archivo.
Otro enfoque seria, cuando es posible, combinar fragmentos pequeos para crea
fragmentos ms grandes y utiles.
Si el programa detecta que dos entradas de la lista son disponibles son adyacentes,
puede combinarlas para hacer una entrada mayor. Esto se llama unir los huecos en
el espacio de almacenamiento.
Tambin se podria intentar minimizar la fragmentacin antes de que suceda,
adoptando una estrategia de colocacin que el programa pueda utilizar cuando
selecciona una entrada de la lista de disponibles.
Estrategias de colocacin
Primer ajuste
Se busca desde el inicio de la lista hasta encontrar uno suficientemente grande
Minima cantidad de trabajo
No se preocupa por la exactitud
Mejor ajuste
Se ordena ascendente
El primer registro encontrado del tamao suficiente seria el que menos desperdicia
Desventaja se busca al agregar y al eliminar
Peor ajuste
Se ordena descendente
Se toma el primero, el ms grande

You might also like