Un archivo es una coleccin de registros lgicamente relacionados. Un registro es una
coleccin finita y ordenada de elementos, posiblemente heterogneos, que se tratan como una unidad. Los elementos componentes de un registro pueden tener diferentes estructuras de datos. Los elementos de un registro son comnmente llamados campos. Un campo es un rea especfica de un registro utilizada para una clase particular de informacin. Existen buenas razones para estructurar una coleccin de datos como un archivo. La principal razn es la de almacenar datos independientemente de la ejecucin de un programa ya que un archivo proporciona un medio de almacenamiento permanente. La segunda razn es que en un archivo se pueden almacenar grandes volmenes de informacin que no podran almacenarse en la memoria principal. La ltima razn es que pueden ser guardados y posteriormente recuperados para ser accesados por los programas y usuarios que lo demanden.
Organizacin de archivos. El termino organizacin de archivos se refiere al mtodo usado en la organizacin de los datos para su almacenamiento, recuperacin y procesamiento. Hay varias formas en que un mtodo de acceso puede ordenar los datos en un dispositivo de almacenamiento. Sin embargo el mtodo de acceso debe establecer trayectorias de datos para su recuperacin posterior. Para proporcionar trayectorias adecuadas para la recuperacin eficaz, los datos se organizan en forma de una estructura lgica tal como una lista, tabla, rbol o red. La estructura de datos, tal y como es percibida por el usuario, se mapea sobre un dispositivo de almacenamiento fsico por medio de los mtodos bsicos de acceso. Las organizaciones de archivos se clasifican frecuentemente de acuerdo con las tcnicas de direccionamiento utilizadas. Los tipos principales de organizacin de archivos proporcionados por los mtodos bsicos de acceso son: Secuencial. Aleatorio. Secuencial indexado. Indexado.
Organizacin secuencial de archivos. La organizacin secuencial es la forma ms simple de almacenar y recuperar registros en un archivo. En un archivo secuencial, se almacenan los registros uno tras otro sin importar el valor real de los datos en los registros, es decir, que todos los registros se almacenan por posicin: primer registro, segundo registro, etc. No existen direcciones ni asignaciones de lugar en un archivo secuencial. Para leer un archivo secuencial y buscar un registro, el sistema siempre comienza al principio del archivo y lee un registro a la vez hasta llegar al registro deseado. Por ejemplo, si ocurre que un registro particular es el decimo en un archivo, el sistema comienza en el primer registro y lee hacia adelante un registro a la vez hasta llegar al decimo. No se puede ir directamente al decimo registro en un archivo secuencial sin partir del principio. Un registro nuevo no se puede insertar directamente en un archivo permanente secuencial, ya que se debe mantener la secuencia fsica, de acuerdo con el orden lgico del archivo. En vez de ello, se debe crear un nuevo archivo permanente cuando se efectu cualquier operacin de insercin o de borrado. La limitacin mas importante en el tipo de organizacin secuencial, consiste en que se puede tener acceso a un registro en particular solo si se busca en el archivo desde el principio hasta encontrarlo. Esto puede consumir mucho tiempo, especialmente para archivos grandes. No vale la pena examinar la mitad del archivo para localizar solamente un registro; la computadora gastara la mayor parte del tiempo procesando improductivamente, la mayora de los registros que no se desean.
Organizacin aleatoria de archivos. Los archivos organizados aleatoriamente se guardan en discos, donde los registros se agrupan en bloques llamados buckets, con uno o mas buckets completos por pista de disco .Definiremos los buckets como la unidad de entrada y salida del disco, esto es, la porcin de espacio de disco que puede recuperarse (o escribirse) por el sistema operativo. En lugar de utilizar ndices, el numero de bucket (o direccin) de un registro en un archivo aleatorio se encuentran por calculo a partir de una clave de registro utilizando un algoritmo de generacin de direccin (AGA).Esta frmula es suministrada por el usuario en sus programas .Una vez que se conoce la direccin, se accede directamente al bucket correspondiente .El sistema produce entonces el registro deseado entre los del bucket seleccionado, comparando con el valor clave. Por lo cual el acceso es mucho ms rpido, pues se evita la bsqueda a travs de un ndice. Sin embargo es ms difcil disear el algoritmo AGA (de transformacin) que cuide eficientemente todas las futuras inserciones y desbordamientos. Por ejemplo para guardar informacin en orden sobre clientes cada uno en su respectivo nmero de cuenta entonces debes introducir la informacin en orden para que se almacene tambin en orden. Los archivos de acceso aleatorio te permiten almacenar o recuperar informacin en orden aleatorio , es decir que si deseas guardad cierta informacin en la cuanta 53 entonces puedes desplazarte libremente a dicha cuenta y escribir sobre ella ,no se requiere que ordenes los datos, nicamente te ubicas en la posicin que deseas y lees o escribes informacin a tu gusto. Algunos factores que afectan la eficiencia de un archivo aleatorio: Tamao del bucket: Ya que los pequeos buckets tienden a incrementar los gastos extra de almacenamiento, porque necesitan muchos desbordamientos por encima, y los grandes segmentos conducen a desbordamientos por debajo y a largos tiempos de bsqueda (para encontrar el registro conveniente del bucket). Tcnica de generacin de direcciones y se analizan a continuacin. La generacin de la direccin implica la generacin de la direccin del bucket a partir de un valor clave, y esto se realiza en tres pasos: 1.-Todos los caracteres no numricos de la clave se convierten a forma numrica, siendo un mtodo apropiado reemplazar las letras de la A a la Z por los nmeros del 10 al 36. 2.-Los valores de clave numrico obtenidos en el paso 1 se transforman en otro conjunto de nmeros que se distribuyen uniformemente sobre el rango especificado. 3.-El conjunto transformado de los valores clave se normaliza para ajustar el rango de las direcciones del bucket.
Organizacin indexada de archivos. La caracterstica esencial de esta organizacin es una tabla de ndices, que contiene una lista de las claves y de las direcciones de los correspondientes registros en disco. Los ndices pueden se de tres tipos: implcita, bsica y limite. En la lista implcita, se mantiene una lista de todas las claves posibles generando una lista muy larga e ineficiente; un ndice bsico conduce a un archivo indexado aleatorio o secuencial y un ndice limite a un archivo secuencial indexado. N fila Clave Direccin de registro Cadena(fila) 1 1 6 5 2 3 26 0 3 4 15 0 4 5 25 6 5 2 40 2
Una cadena contienen el numero de filas da la tabla para la siguiente clave mayor. Mientras se realizan modificaciones, se borran registros o se insertan nuevos registros fuera de secuencia, las cadenas se actualizan saltndose por el encadenamiento un registro borrado. Para encontrar directamente un registro se examina la tabla de ndices por la clave para la direccin del registro utilizando alguna tcnica como la secuencial. El uso de ndices ahorra tiempo de bsqueda. Solo hay que leer registros de ndice, y registros de datos antes de hallar el registro deseado.
Organizacin secuencial indexada de archivos. El ndice lmite, es el usado en este tipo de archivos. Los archivos se agrupan en bloques, teniendo cada bloque un rango particular de claves, representado por la clave mxima. N bloque Clave Rango representado 1 6 1-6 2 12 7-12 3 24 19-24 4 18 13-18
El archivo maestro almacena bloques individuales de registros en orden secuencial, pero en diferencia, este ordena secuencialmente bloques separados, llenos o parcialmente llenos. Puesto que cada bloque en este tipo de organizacin esta siempre en orden secuencial, ya no es necesario un ndice para cada registro. En vez de esto, solo se necesitan los valores mximo o mnimo de todos los registros de un bloque, por lo que solo se necesita un ndice para cada bloque. Bsqueda de registros Debido a su organizacin, el programa accesa el ndice, empezando con el registro del principio. Compara la llave del ndice con la llave de bsqueda, si no encuentra el registro buscado, continua al siguiente bloque de la misma manera asta que coincida el numero de registro de bsqueda con en bloque, entonces el programa le dice al sistema que comience a leer los registros en la direccin y compara las llaves con la bsqueda asta encontrarla. Cuando se aade un registro a un bloque que ya esta lleno, el ltimo registro en el bloque ya no tiene lugar. Para manejar estas situaciones, se mantiene aparte un rea de overflow. Lo que nos indica que cuando un bloque esta desbordado o lleno, en archivo tiene bloques reservados vacios para estos registros nuevos, conservando el bloque en el cual debe ir ese registro. La principal desventaja es el uso de espacio adicional para el ndice, el rea de almacenamiento asignada pero no utilizada dentro de un bloque, y el tiempo adicional para hallar un registro especfico. Una de sus ventajas es su flexibilidad para procesar el archivo en cualquier forma, secuencia o aleatorio de acuerdo a las necesidades indicadas. Ejemplo de acomodamiento de datos usando el espacio overflow: ndice
Llave de registro Direccin de comienzo de bloque 1115 1345 1315 1349 1429 1346 1725 1350
1345 1011 1013 X 1015 1080 1115
1316 1317 1322 1324 1414 1427 1428
1349 1117 1121 1220 X 1290 1315
1350 1510 1521 1617 X 1724 1725
Bloque overflow 1429
Bibliografa: James A. Seen, Anlisis y diseo de sistemas de informacin. Mc Graw-Hill. Tsai H. Alice Y., Sistemas de base de datos: administracin y uso. Prentice-Hall Hispanoamericana. Loomis Mary E., Estructura de datos y organizacin de archivos. Prentice-Hall Hispanoamericana.