INFORMÁTICA Y SISTEMAS
UNIVERSIDAD MAYOR DE SAN SIMÓN
UMSS Informática y Sistemas

AGENTE INTELIGENTE PARA LA INGENIERIA INVERSA DE BASES DE DATOS - Perfil

Autor(es): Montoya Burgos Marcela Patricia
Area(s): Base de Datos
Ingeniería de Software
SubArea(s): Reingeniería
Gestión de Inicio: 1/2005
Modalidad: Proyecto de Grado
Carrera: Licenciatura en Ingenieria de Sistemas
Tutor: Lic. Yony Richard Montoya Burgos
Formulario: Descargar Realizá un click para empezar la descarga del Formulario de esta tesis.

Descripción :

La ingeniería inversa es una alternativa para la industria del software, ya que se trata de un proceso que permite incrementar la facilidad de mantenimiento, reutilización y evolución de las bases de datos. Pero que sucede cuando de repente nos toca darle mantenimiento a un sistema cuya base de datos es un caos, sufrimos en carne propia no solo el darle mantenimiento a la base de datos, sino también a los programas que leen y escriben en ella.
Pero aun se complica más el darle mantenimiento a una base de datos si existe poca o ninguna documentación sobre su diseño. Que en algunos casos es política de las empresas de desarrollo de software por la paranoia con la piratería.
Al momento de tratar de recuperar un esquema de datos completo nos encontramos con estructuras pobres e incluso erróneas, redundantes o simplemente poco legibles al tener nombres los campos poco clarificadores. No todas las bases de datos son perfectas aunque funcionen correctamente. Si bien existen herramientas que nos colaboran con la ingeniería inversa de base de datos, estas herramientas solo traducen el código para así extraer estructuras explicitas. Pero es posible que ciertas reglas de la base de datos no puedan obtenerse directamente sino mediante un análisis previo.
También sabemos que existen estándares de diseño tanto para el modelo lógico como para el modelo físico, el buen diseño requiere de gran destreza y experiencia por parte del diseñador. Y por supuesto diferentes personas solucionaran un mismo problema de maneras diferentes, cada uno le dará un toque individual y planteara la solución de forma diferente.
Puede suceder también que el diseñador al momento de implementar la base de datos haya hecho ajustes de ultima hora, relaciones ambiguas entre entidades, además de aumentar atributos y entidades que no figuran en el diseño o satisfacer nuevos requerimientos del usuario. Ya sea por poco conocimiento o por proporcionar seguridad de plagio a su trabajo.
Puede que algunas estructuras no hayan sido declaradas en el momento de su diseño de forma explicita en la especificación de las definiciones de las tablas sino que para completar la semántica de la base de datos se hayan utilizado disparadores, procedimientos, verificaciones. Por lo que para encontrar características como la integridad no basta con observar las definiciones de las tablas.
Sistemas medianos o muy grandes casi siempre optimizan su base de datos para mejorar sus tiempos de respuesta desnormalizando, aumentando redundancias, atributos multivaluados. El rol que juegan los atributos en las tablas es de vital importancia, encontrar llaves principales no es un problema mayor, por el contrario identificar llaves extranjeras, entidades intermedias es decir localizar grandes grupos de claves ajenas (llaves principales formadas por llaves ajenas) requiere de un gran análisis y mas si estas llaves no son explicitas es decir no son del mismo tipo, nombre que sus correspondientes en la tabla principal.
Por lo tanto reconstruir diagramas necesita de mucho estudio y análisis. Las herramientas que se encuentran disponibles no pueden interpretar como lo haría un analista y concluyen en un diagrama incompleto. De esta forma nuestro trabajo se ve alargado o detenido.