Esta tcnica de organizacin de archivos es un tanto similar a la organizacin Multilista con modificaciones que la hacen ms eficiente. La organizacin invertida es una de las estructuras fundamentales de muchos sistemas manejadores de Base de Dalos. El sistema TDMS (Time-Shared Data Management System) de la System Development Corporation fue el primer sistema comercial generalizado para manejo de datos a finales de los sesenta. La estructura bsica es la siguiente: Un archivo maestro. el cual ya no contiene campos apuntadores para cada campo considerado para realizar consultas; como en la organizacin multilista. Un ndice llamado diccionario invertido que contiene valores de los campos considerados para realizar consultas (caractersticas), cada uno de estos valores se denomina llave Invertida. Cada. una de las llaves invertidas lleva asociada una lista de direcciones relativas, que son las direcciones de los registros caracterizados precisamente por tal valor de la llave invertida. A tal lista se le denomina lista de acceso. Adicionalmente, con la intencin de facilitar la operaciones sobre archivos con tal tipo de organizacin, puede asociarse a cada llave invertida el atribulo al que le corresponde. Si la llave invertida fuera Informtica, posiblemente el atributo es ESCUELA. Nota: Los trminos atributo y caracterstica, ya han sido estudiados en la seccin anterior Veamos un ejemplo esquemtico:
a. Grado de Inversin: EI grado de inversin mide el nivel en que los campos referentes al archivo hayan sido invertidos. Por ejemplo, si un archivo considera para cada registro 6 campos, y si se han considerado como atributos en el directorio invertido los seis campos se dice que hay una inversin del 100% (mximo grado de inversin), 0% de inversin es simplemente las tcnicas que consideran una nica llave de indexacin (un nico campo, generalmente, la llave primaria). b. Ventajas: Una de las grandes ventajas de las organizaciones invertidas sobre otras organizaciones es la
habilidad para satisfacer varios tipos de consultas que involucran a los valores de los campos invertidos, sin tener que recuperar los registros mismos. Consultas como las que se ilustran a continuacin: Cuntos alumnos pertenecen a la escuela de Informtica? Listar los alumnos de Matemtica del V ciclo Cules son los alumnos de Informtica o Matemtica?
Estas consultas pueden ser efectuadas fcilmente accediendo a la lista de acceso referente a la llave invertida que es el valor correspondiente al campo invertido por el que se esta haciendo consultas. Con referente a la segunda consulta recuperaramos la lista de acceso de la llave invertida Matemtica y luego la lista de acceso de la llave invertida IV ciclo. Finalmente aplicamos una operacin AND a las dos listas. El resultado ser {5}. Lo nico que nos queda es acceder a los registros con las direcciones relativas obtenidas despus de la operacin AND. Para la tercera consulta deberamos aplicar la operacin OR. c. Desventajas: Una de las desventajas podra ser dificultad en el manejo de la lista de acceso. Pero esta dificultad puede mitigarse con la implementacin de mtodos apropiados para manejar listas (leer, insertar, ordenar, etc.) d. Operaciones: Insercin: Se almacena el registro secuencialmente y luego se toma en cuenta en el directorio invertido cada valor de campo del nuevo registro que corresponda a un campo invertido. Si el valor del campo ya existe como llave invertida, entonces la direccin relativa correspondiente al nuevo registro podra: 1. Agregarse al final de la lista de acceso asociada a tal llave invertida 2. Insertarse en una ubicacin adecuada de la lista de apuntadores, para mantener un orden y facilitar las operaciones AND y OR Si el valor de un campo invertido, no se encuentra como llave invertida, entonces se agrega tal llave al directorio invertido y se inicia su lista de acceso. Eliminacin:
Primeramente debe localizarse el o los registros que van a eliminare segn sea cualquier criterio. Por ejemplo: Eliminar lodos los alumnos donde Escuela = INFORMATICA o dicho en trminos de SQL: DELETE Alumnos WHERE Escuela = INFORMATICA En este caso cada apuntador a esos registros debe eliminarse de las listas donde aparece. Realmente este es un trabajo que tomara cierto tiempo. Una alternativa podra ser utilizar el eliminado 1gico, pero debemos trabajarlo con cuidado para no procesar registros 1ogicamente eliminados. Cuando eliminamos un registro, lo que hacemos es eliminar la direccin relativa de las listas de acceso correspondientes, es decir perdemos la referencia al registro. Sin embargo, los datos reales aun se mantienen en el archivo maestro, lo que trae como desventaja ocupar espacio innecesario. Por lo tanto, para mitigar este problema; las direcciones de los registros eliminados podran reutilizarse por nuevos registros. EI alumno debera analizar esta situacin y crear su algoritmo de reutilizacin. Modificacin: Al igual que en el caso anterior, deberamos acceder primero a los registro a actualizar, luego procedemos a modificarlos, y posteriormente debemos modificar la lista de acceso, si es que las modificaciones afectaron campos invertidos. Por ejemplo: Modificar Ciclo=IV de todos los alumnos del III ciclo de la Escuela de MATEMATICA o en SOL: UPDATE Alumnos SET Cicio = IV WHERE Escuela = INFORMATICA AND Ciclo = III En primer lugar deberamos conocer la direccin relativa de cada uno de los registros a modificar, en este caso de los alumnos del III ciclo de MATEMATICA. Estas son: {4, 9} Como el ciclo de ellos antes era III y ahora debera ser IV, entonces la lista de acceso asociada a la llave invertida III en el directorio invertido deber ser modificada, de modo que 4 y 9 desaparezcan de all y aparezcan ahora en la lista de acceso de la llave invertida VI. As el directorio invertido quedara como:
a. Ventaja: Mayor eficiencia en realizar consultas, al poder acceder a cada llave invertida con mayor facilidad. Por ejemplo con la siguiente consulta:
SELECT * FROM Alumnos WHERE ESCUELA = ESTADISTICA Para resolver este problema, debemos acceder en primer lugar al ndice que mantiene los nombres de los campos invertidos (atributos), y buscar el nombre correspondiente a ESCUELA. Luego de ubicar el nombre del campo correspondiente, obtenemos la direccin relativa que apunta al comienzo del bloque de sus correspondientes llaves invertidas, en el segundo ndice. As, en el segundo ndice buscaramos el valor ESTADISTICA, para obtener la direccin relativa, que har referencia a su lista de acceso, en el tercer ndice. Finalmente con esa lista de acceso accedemos a leer la informacin de cada registro respectiva en el archivo maestro. b. Desventajas: Las operaciones de eliminacin y mantenimiento se toman ms complejas.
a. Estimacin del uso del Sistema : Los beneficios que pueden obtenerse con el sistema, la efectividad con la cual se obtengan, y el costo de operaciones sobre los datos estn relacionados con la carga colocada sobre el sistema. La carga consiste en las demandas de almacenamiento de datos y en las operaciones solicitadas por las transacciones. A continuacin veremos algunos factores relacionados con el uso del sistema: Volumen de Datos La estimacin de la carga colocada en el sistema de archivos, en trminos de volumen, se controla de acuerdo con el nmero de registros n, nmero total de campos t, y el tamao de cada campo v. Carga de Recuperacin de Informacin: La recuperacin de datos es uno de los objetivos centrales del sistema de archivos. La recuperacin de datos se refiere al obtener informacin en base a nuestros datos almacenados por medio de reportes o consultas. Una transaccin puede solicitar datos provenientes de ms de un archivo. EI objetivo principal de las bases de datos es la sntesis de datos y por lo tanto la creacin de informacin. Antes de decidirnos por una organizacin de archivos en particular es importante hacer un estudio de la carga de peticiones y del tipo de estas. Es decir debemos conocer que peticiones se harn al sistema y cuantas peticiones pueden darse como mximo en un periodo especfico (da, semana, mes) . A este tipo de carga se denomina carga operativa. La recuperacin de la informacin es un punto crtico o esencial que tenemos que considerar, y esta relacionado con: Solicitud de localizacin Solicitud de registro siguiente Bsqueda exhaustiva
Carga de Actualizacin Tambin es importante conocer la frecuencia de actualizaciones que afectar a nuestro sistema. En este punto es recomendable descomponer las frecuencias de actualizaciones de acuerdo con los tipos de tareas que representan : Adicin de un nuevo registro Cambio de un campo en un registro Eliminacin de un registro
b. Anlisis de los beneficios del sistema: Los beneficios de tener datos surgen del uso de estos. La disponibilidad de los datos almacenados es un prerrequisito para el uso de un sistema En la mayora de los casos el beneficio del uso de un sistema tiene un valor financiero. Es decir cuanto, en trminos econmicos, estoy ahorrando con el uso del sistema. En muchos casos tambin el beneficio se espera a mediano o largo plazo, es decir talvez no podamos notar los beneficios en unos pocos das, pero el sistema ayudar a cumplir con los objetivos trazados en un periodo mayor. El sistema es parte de una estrategia de negocio. Los beneficios tambin estn relacionados con el tiempo de respuesta del sistema, si este tiempo se dilata, entonces el sistema no provocara los efectos esperados. Ejemplo: Imagnense, una pequea entidad de ventas, que necesita un implementar un sistema, de forma que pueda atender a la mayor cantidad de clientes. Si el tiempo de actualizaciones es lento, entonces el sistema ser un arma contra la propia institucin, es posible que el cliente diga: "Antes de usar este sistema, el negocio de ventas andaba mejor" Utilizacin del sistema EI esfuerzo del operador, necesario para usar el sistema disminuye sus beneficios. Un sistema lento o torpe aumentar el costa bsico de transaccin Las medidas directas de tiempo del esfuerzo para utilizar el sistema incluyen : EI tiempo necesario para plantear consultas EI tiempo necesario para introducir en el sistema parmetros de bsqueda EI tiempo necesario para el procesamiento real de la solicitud. EI tiempo para visualizar la infamacin solicitada. Costo de Personal EI efecto de un sistema en los costos de personal es una parte importante del diseo adecuado de sistemas. Si un sistema no responde con rapidez se desperdiciar tiempo del operador. Si los retrasos son significativos, se da un pretexto al operador para descuidar sus labores (salir a comprar) mientras el sistema procesa la informacin. Costo de Captacin de Datos En la evaluacin de los costos de captacin de datos no es posible considerar solo cuanto cuesta introducir o captar un elemento (dato). Lo correcto es determinar cuanto cuesta introducir en forma correcta un elemento (dato). EI costo de detecci y correccin de un elemento introducido
en forma incorrecta, as como el costo de los daos que el valor equivocado podra haber ocasionado mientras fue parte de la base de datos, deben agregarse al costo de captacin de datos. Es imprescindible que apliquemos diversa tcnicas y mtodos para mitigar la captura de datos incorrectos. Por ejemplo. Cada vez que eliminemos un registro presentar la informacin del registro que se eliminar para confirmar la accin Eliminar. Mientras el error se detecte ms prximo a su origen el costo ser mucho menor, que si lo detectamos luego de mucho tiempo. Ejemplo: Que pasara si en un sistema que almacena datos de los pacientes de un medico, ingresamos o eliminamos cierta informacin errnea, involuntariamente. Posiblemente, el mdico en base a la informacin almacenada (supuestamente fidedigna) podra prescribir medicamentos inadecuados, ya que la informacin de sus pacientes podran haberse alterado. En este caso los costos pueden ser muy altos. Otra forma de mitigar estos problemas es realizar un reporte constante de la informacin almacenada en nuestro sistema, de tal forma que podamos encontrar errores o inconsistencia en forma temprana.