You are on page 1of 6

INSTITUTO TECNOLGICO DE LEN

Licenciatura en Informtica

Organizacin de datos

Grupo A

Conceptos sobre archivos indexados

Christian Fernando Rangel Montes

Len, Gto. A Lunes 9 de Marzo del 2009

ARCHIVOS INDEXADOS Son aquellos que tienen asociados un ndice para mejorar la operacin de bsqueda. ndice: Es una coleccin de entradas una por cada registro de datos, que contiene un atributo clave de ese registro. Caractersticas: Ocupa menos espacio que el archivo de datos y siempre se mantiene ordenado. Cada entrada del ndice contiene la clave y el apuntador al registro de datos. ndice denso: si contiene una pareja de valores de clave y direccin para cada registro de la coleccin. Otro tipo de ndice es llamado disperso. ESTRUCTURA DE UN ARCHIVO SECUENCIAL INDEXADO En la estructura de un archivo secuencial inedexado suelen utilizar dos tipos de ndices. ndice exhaustivo: contiene una entrada par cada registro del archivo principal. ndice parcial: contendr entradas a los registros donde est el campo de inters. Los archivos indexados son muy utilizados en aplicaciones donde es critica la oportunidad de la informacin y donde los datos son rara vez procesados de forma exhaustiva. Un archivo con organizacin secuencial indexado est formado por: AREA DE DATOS: Es el rea en la que se escriben los registros cuando el archivo es creado el fichero. Los registros con organizacin secuencial indexada se graban en un soporte de almacenamiento directo, en secuencia ascendente, de acuerdo con los valores de la clave y en pginas o bloques de longitud fija. El AREA DE INDICES es creada por el sistema cuando se van almacenando los

datos, contiene una tabla que asocia las claves con las direcciones de los registros en el rea de datos. AREA DE EXCEDENTES (o de overflow) donde se graban los registros que no tienen sitio en el rea de datos, los nuevos se insertan y quedan enlazados entre s mediante punteros conservando el orden lgico que marca la clave o ndice 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 organizacin secuencial de archivos es la nica que es fcil 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 organizacin fsica del archivo en una cinta o disco se corresponde exactamente con la ubicacin lgica 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. Peridicamente, se realiza una actualizacin 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: Creacin: Escritura de todos sus registros. Es la primera operacin que sufrir el archivo de datos. Implica la eleccin de un entorno descriptivo que permita un gil, rpido 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 creacin exige organizacin, estructura, localizacin 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 clculo o ambas cosas a la vez. Consulta: Lectura de todos sus registros. Es la operacin que permite al usuario acceder al archivo de datos para conocer el contenido de uno, varios o todos los registros.

Actualizacin: Insercin supresin o modificacin de algunos de sus registros. Es la operacin que permite tener actualizado (puesto al da) el archivo, de tal modo que sea posible realizar las siguientes operaciones con sus registros: Consulta del contenido de un registro. Insercin de un registro nuevo en el archivo. Supresin de un registro existente. Modificacin de un registro. Clasificacin: Reubicacin de los registros de tal forma que queden ordenados segn determinados criterios. Una operacin muy importante en un archivo es la clasificacin u ordenacin. Esta clasificacin se realizar de acuerdo con el valor de un campo especfico, pudiendo ser ascendente (creciente) o descendente (decreciente): alfabtica o numrica. Borrado: Eliminando total del archivo, dejando libre el espacio del soporte que ocupaba. Es la operacin inversa a la creacin de un archivo (kill, en ingls). 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. Reorganizacin de un archivo: Las operaciones sobre archivos modifican la estructura inicial o la ptima de un archivo. Los ndices, enlaces (punteros), zonas de sinnimos, zonas de desbordamiento, etc., se modifican con el paso del tiempo, lo que hace a la operacin de acceso al registro cada vez ms lenta. La reorganizacin suele consistir en la copia de un nuevo archivo a partir del archivo modificado, a fin de obtener una nueva estructura lo ms ptima posible. Estallido de un archivo: Es la operacin de obtener varios archivos a partir de un mismo archivo inicial. Cdigo de Creacin del Archivo Secuencial Indexado Se desea indexar el archivo directo de almacn. Para ello se debe leer secuencialmente el archivo de organizacin directa e incluir el cdigo de producto y la posicin de todas las ranuras ocupadas en un array de ndices. Al acabar el proceso se debe ordenar el array y almacenarlo de forma temporal en un archivo secuencial para las siguientes ocasiones en que se desee gestionar el ndice. //Creacin del archivo indexado a partir del archivo de productos Algoritmo CreacinIndexado const

MaxReg = 120 //El ndice slo tiene 100 posiciones ya que slo hay 100 productos distintos numElemIndice = 100 tipos registro = rProducto entero : cdigo,codProv cadena: desc entero : stock entero : estado fin_registro archivo_d de rProducto = aProducto registro = RIndice entero : clave entero : NRR fin_registro array[0..numElemIndice] de RIndice = vIndice var aProducto : A rProducto : R vIndice : Ind entero : n, NRR inicio abrir(A,'PRODUCTOS.DAT',lectura/escritura) n.0 NRR . 0 leer(A,R) mientras no fda(A) hacer NRR . NRR + 1 si R.estado = 1 entonces n.n+1 ind[n].clave . R.cdigo ind[n].NRR . NRR fin_si leer(A,R) fin_mientras cerrar(A) Ordenar(Ind,n) GuardarIndice(Ind,n) fin //Para no perder el array de ndices, el procedimiento GuardarIndice //lo vuelca en un archivo secuencial procedimiento GuardarIndice(valor vIndice : v; valor entero : n) var archivo_s de RIndice : A entero : i

inicio crear('CODIGO.IDX') abrir(A,'CODIGO.IDX',escritura) desde i . 1 hasta n hacer escribir(A,v[i]) fin_si cerrar(A) fin_procedimiento