Vous êtes sur la page 1sur 9

METODO INDEXADO DE ARCHIVOS ORIGENES DE LA CREACION DEL METODO Existen el mtodo de organizacin de archivos llamado Archivos Secuencial es la forma

ms simple de almacenar y recuperar registros de un archivo. En un archivo secuencial, se almacenan los registros uno tras otro. El primer registro almacenado se coloca al principio del archivo. El segundo se almacena inmediatamente despus (no existe posicin sin uso), el tercero despus del segundo este orden nunca cambia en la organizacin secuencial. Para eso los registros estn organizados en forma de una lista y recuperarlos y procesarlos uno por uno de principio a fin.

Fig. 1. Grfico de los registros organizados en forma secuencial Pero surge una serie de inconveniente como: muchas consultas hacen referencia slo a una pequea parte de los datos. Por ejemplo: Encontrar todos los empleados del departamento de marketing hace referencia solo a una pequea fraccin de los datos en la tabla empleado. Es muy ineficiente que el sistema deba recorrer todos los registros e ir comprobando el cdigo del departamento de cada empleado antes de dar la respuesta. Lo ideal sera que el sistema pudiera localizar directamente estos registros. Otro inconveniente es el que ocurre a la hora de buscar informacin: Si el archivo no est ordenado el nico mtodo de bsqueda posible es secuencial, lo cual no resulta ni eficiente ni impracticable en muchos casos. Si el archivo est ordenado puede aplicarse una bsqueda binaria, pero en cualquier caso puede resultar costosa, y si el fichero recibe muchas altas y bajas no resulta factible mantenerlo ordenado Y de igual manera para ordenar archivos no resulta eficiente, adems de no ser factible en muchos casos se necesitaran del orden de O (nlogn) accesos a disco. Pasar los datos de disco a memoria para ser ordenados es impracticable si el archivo es excesivamente grande. Para aumentar la eficiencia de acceso se disean estructuras adicionales asociadas a los archivos que mantienen la informacin es as como surge el mtodo indexado

INTRODUCCION INDIZAR, INDICE seria la correcta traduccin la palabra INDEXAR. Las ltimas pginas de un libro suelen contener un ndice, es decir, una tabla que contiene una lista de temas (llaves) y nmeros de pgina en donde pueden encontrarse esos temas (campos de referencia).

Fig. 2. Ejemplo de ndices Un ndice para un archivo del sistema funciona como el ndice de este libro. Si se va a buscar un tema (especificado por una palabra o una frase) en este libro, se puede buscar en el ndice al final del libro, encontrar las pginas en las que aparece y despus leer esas pginas para encontrar la informacin que estamos buscando. Las palabras de ndice estn ordenadas, lo que hace fcil la bsqueda del trmino que se est buscando. Adems, el ndice es mucho ms pequeo que el libro, con lo que se reduce an ms el esfuerzo necesario para encontrar las palabras en cuestin. Por lo tanto para trabajar eficientemente con archivos se hace necesario el manejo de ndices y de esa manera acceder directamente e eficientemente a los datos de un archivo.

CONTENIDO ARCHIVOS INDEXADOS Es la aplicacin de incluir ndices en el almacenamiento de los archivos; de esta forma nos ser ms fcil buscar algn registro sin necesidad de ver todo el archivo. Un ndice en un archivo consiste en un listado de los valores del campo clave que ocurren en el archivo, junto con la posicin de registro correspondiente en el almacenamiento masivo. Los ndices apoyan las aplicaciones que accedan selectivamente registros individuales, en lugar de buscar a travs de toda la coleccin de registros en secuencia. Un campo ( o un grupo de campos) es utilizado como campo de ndice. Por ejemplo, en una aplicacin bancaria, podra existir un archivo de registros que describiesen a las sucursales. Por lo que sera adecuado indexar el archivo en base al nombre de la sucursal, para proporcionar informacin de una sucursal en particular a travs de consulta interactiva. Entonces en el desarrollo del mtodo indexado el acceso a un archivo se lleva a cabo gracias a la creacin y mantenimiento de dos archivos. Archivo de ndice y archivo de datos.

Fig. 3. Archivo de ndices (i.ind) y Archivos de datos (i.txt)

El archivo de ndice es conveniente sea de organizacin secuencial, o por lo menos con sus registros colocados de forma secuencial. Estos registros deben contener los campos clave y direccin el cual debe estar ordenado. El archivo de datos debe tener organizacin directa y sus registros contendrn los datos o informacin de las entidades.

FUNCIONAMIENTO DEL METODO INDEXADO El mtodo de indexado funciona de la siguiente manera 1. Buscar la clave o llave en el archivo de ndices, a travs de una bsqueda binaria reduciendo as la complejidad que la que tena el mtodo secuencial, y encontrar el puntero la posicin de esta llave en el archivo de datos 2. Aplicar un acceso directo al archivo de datos y leer el registro de este archivo y reportar los datos. Ejemplo: dado el archivo de la Fig3. Reportar el puntaje de Bertha. a) Buscamos en el archivos de ndices a Bertha

Fig. 4. Bsqueda de Bertha en el archivo de ndices Nos dice que Bertha se encuentra en registro nmero 2 del archivo de datos b) Accedemos directamente al registro Bertha en el archivo de datos

Fig. 5 Acceso directo al registro de Bertha en el archivo de datos Y automticamente como lemos el registro de Bertha, obtendremos su puntaje y lo reportaremos

* ndice: el dominio del ndice debe ser un conjunto disjuntos, es decir valores nicos (ndice primario). OPERACIONES DE MANTENIMIENTO DE UN ARCHIVO INDEXADO El manejo de ndices en este mtodo permite realizar una serie de aplicaciones y operaciones sobre el por ejemplo: Consultar Bsqueda Insercin Modificar Eliminacin Agregar

Pero el mantenimiento de un archivo con entradas secuenciales acoplado a un ndice requiere el desarrollo de procedimientos para el manejo de varias tareas diferente. Junto con el algoritmo mostrado en la Fig.4 y Fig.5, se usan otros procedimientos, mencionados anteriormente, para encontrar datos por medio del ndice que incluyen bsicamente lo siguiente: 1) Crear los archivos vacos originales de ndices y datos

Fig. 6. Creacin de dos archivos vacos 2) Cargar el archivo de ndices en la memoria antes de usarlo, es decir crear un buffer de memoria y copiar en el buffer de esta manera manejaremos nuestro buffer y tendremos ms efectividad por la velocidad que tiene la memoria RAM

Fig.7. Creacin de Buffer en RAM (con contenido del archivo i.ind)

3) Realizar las modificaciones, eliminaciones, agregaciones del mtodo indexado

Fig. 8. Insercin de registros al archivo de datos y ordenacin del buffer a cada insercin 4) Reescribir el archivo de ndices copiado de la memoria o del buffer creado

Fig. 9. Copiar buffer al archivo de ndices

ALGORTIMO CREACION DE UN INDICE o REINDEXAR Para crear un nuevo ndice seguiremos los siguientes pasos: 1. Recorrer el archivo de datos secuencialmente e ir extrayendo de cada resgitro el campo clave 2. Crear la dupla (clave, direccin) siendo direccin la direccin fsica del archivo donde se encuentra en registro con dicha clave 3. Insertar dicha dupla en el ndice en memoria 4. En este momento es conveniente guardar el ndice en archivo para mantener la integridad del sitema.se hace un recorrido secuencial del ndice y se guarda la dupla (clave, direccin) en el fichero de ndices. ALGORITMO PARA CARGAR INDICE EN MEMORIA Recorrer el archivo de ndices secuencialmente con las duplas (clave, direccin) e insertarlos directamente en el ndice de memoria o tambin buffer.

ALGORITMO PARA GUARDA EL INDICE AL ARCHIVO 1. Salvar el ndice de memoria al archivo de ndices antes de terminar la aplicacin 2. El archivo de datos siempre permanece actualizado pero el fichero de ndices puede estar corrupto si no se ha salvado correctamente debido a una interrupcin inesperada de la aplicacin. Para resolver este problema puede marcarse el archivo ndice con alguna etiqueta cuando este se modifica en memoria. Si el sistema falla y se encuentra dicha marca en el archivo ndice, se sabe que hay que regenerar todo el ndice a partir del archivo de datos o mejor dicho reindexar. ALGORITMO PARA AADIR NUEVO REGISTRO AL ARCHIVO 1. Se extrae la clave del registro a insertar 2. Se busca una posicin vlida para insertar el registro en archivo de datos y se inserta en registro dicha posicin 3. Se inserta la dupla (clave, direccin) en el ndice de memoria o en el buffer ALGORITMO PARA ELIMINAR UN REGISTRO DELL ARCHIVO 1. Se busca la clave del dato a borrar en el ndice, para conocer su localizacin en el archivo de datos 2. Segn sus caractersticas y disposicin de los datos en archivo se utilizara un mtodo de borrado u otro. 3. Se elimina en memoria la dupla (clave, direccin) del ndice.

En sistemas de informacin no se puede reemplazar registros eliminados porque de estar eliminados pierde informacin.

ALGORITMO PARA ACTUALIZAR UN REGISTRO DEL ARCHIVO La actualizacin de registros entra dos categoras La actualizacin cambia el valor del campo de llave o el ndice y puede traer consigo el reacomodo del archivo de ndices, as como del de datos. Se implementa a base de realizar una operacin de borrado o eliminacin, seguida de una operacin de insercin del registro modificado La actualizacin no afecta el campo de llave o ndice y no requiere el reacomodo del archivo de ndices pero si el de datos. Segn el tipo de registros el nuevo registro se ubicara o no en la misma posicin. Dependiendo de esto se realizara una simple modificacin o una operacin de borrado/insertado.

VENTAJAS Bsquedas ms rpidas gracias a la utilizacin de un ndice Se pueden actualizar los registros en el mismo fichero, no hay que crear un fichero nuevo para el proceso de actualizacin. La organizacin indexada es conveniente para archivos con mediana volatilidad, actividad variable y tamao relativamente estable.

DESVENTAJAS Ocupa ms espacio en el disco que los archivos secuenciales, debido al uso del rea de ndices. Aumenta el tiempo de acceso a los registros Solo se puede grabar en soportes direccionales. Inversin econmica mayor debido a su mantenimiento. Los registros deben ser de longitud fija. El archivo debe estar separado por un dispositivo de acceso aleatorio; no se puede utilizar en cintas magnticas.