<< Chapter < Page Chapter >> Page >
Breve explicación de los distintos tipos de técnicas de la Ingeniería Inversa de Datos.

La ingeniería inversa de datos se aplica sobre algún código de bases de datos (aplicación, código SQL, etc.) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relación. Hay que tener en cuenta que la ingeniería inversa se puede dar entre distintos productos del ciclo de vida de una aplicación.

Existen muchas técnicas para hacer ingeniería inversa de base de datos, algunos de los cuales se pueden ver resumidos en la siguiente tabla:

  • Baltín et al (1992):
    • Suposiciones: 3FN. Consistencia en el nombrado de los atributos. Sin homónimos. Clave principal y clave candidata.
    • Entradas: Dependencias. Esquemas de relación.
    • Salidas: Entidades. Relaciones binarias. Categorías. Generalizaciones.
    • Basado en el método de Navathe de Awongs.
  • Chiang et al (1994,1996):
    • Suposiciones: 3FN. Consistencia en el nombrado de los atributos. Sin errores en los atributos claves.
    • Entradas: Esquema de relación. Instancia de datos. Dependencias.
    • Salidas: Entidades. Relaciones binarias. Generalizaciones. Agregaciones.
    • Características: Requiere el conocimiento acerca del nombre de los atributos. Propone un marco de trabajo para la evaluación de los métodos de ingeniería inversa. Identifica claramente los casos en los que las entradas de los humanos son necesarias.
  • Davids&Arora (1987):
    • Suposiciones: 3FN. Sin homónimos ni sinónimos.
    • Entradas: Esquemas de relación. Restricciones de claves ajenas.
    • Salidas: Conjunto de entidades. Relaciones binarias. Relaciones n-aria.
    • Características: Apunta a una transformación reversible desde el esquema relacional al esquema conceptual.
  • Johannessin (1994):
    • Suposiciones: 3FN. Consultas de dominio independientes.
    • Entradas: Dependencias funcionales y de inclusión. Esquemas de relación.
    • Salidas: Generalizaciones. Entidades. Relaciones binarias.
    • Características: Basado en los conceptos establecidos de las teoría de bases de datos relacionales. Proceso de mapeo simple y automático.
  • Markowitz&Makowsky (1990):
    • Suposiciones: FN Boycce-Codd.
    • Entradas: Esquemas de relación. Dependencias de claves. Dependencias de integridad referencial.
    • Salidas: Entidades. Relaciones binarias. Generalizaciones y agregaciones.
    • Características: Requiere todas las dependencias de clave.
  • Navathe&Among (1987):
    • Suposiciones: 3FN y algunos 2FN. Consistencia en el nombrado de atributos. Sin ambigüedades de clave ajena. Claves candidatas específicas.
    • Entradas: Esquemas de relación.
    • Salidas: Entidades. Relaciones binarias. Categorías. Cardinalidades.
    • Características. Es vulnerable a la ambigüedad en el reconocimiento de claves ajenas.
  • Petit et al (1996):
    • Suposiciones: 1FN. Atributos únicos.
    • Entradas: Esquemas de relación. Instancia de datos y código.
    • Salidas: Entidades. Relaciones. Generalizaciones.
    • Características: Analiza las consultas en los programas de aplicación. No pone restricciones en el nombre de los atributos.
  • Permerlani&Blaha (1993,1994):
    • Suposiciones: Sin F3N. Comprensión semántica de aplicación.
    • Entradas: Esquemas de relación. Observaciones de patrones de datos.
    • Salidas: Clases. Asociaciones. Generalizaciones. Multiplicidad. Agregación.
    • Características: Requiere un alto nivel de entrada de los humanos. Enfatiza en el análisis de las claves.
  • Sotou (1997,1998):
    • Suposiciones: Sin nombres únicos de atributos. Dependencias desconocidas.
    • Entradas: Esquema de datos. Instancia de datos. Diccionario de datos.
    • Salidas: Cardinalidad de las restricciones de relaciones n-arias.
    • Características: Proceso automatizado completamente para SQL.

Entre las distintas técnicas de Ingeniería Inversa de datos, se propone el método de Hainaut et al () para explicarla.

El método pasa por dos fases. En la 1ª fase se realiza la extracción de estructuras y en la 2ª la conceptualización de las mismas:

  • FASE I: Extracción de estructuras
    • Considerar cada fichero una posible tabla.
    • Considerar cada campo del fichero como un posible campo de la tabla.
    • Identificar las claves primarias.
    • Identificar claves ajenas.
    • “Filtrar” las tablas (por ejemplo, despreciar aquellos ficheros sin clave principal).
    • Detección de campos obligatorios.
    • Detección de asociaciones entre tablas
  • FASE II: Conceptuación de las estructuras
    • Sustitución de constructores propios del sistema real por constructores independientes (ej: una tabla que es un elemento físico es sustituida por el concepto de entidad que es un elemento lógico).
    • Detección y eliminación de los constructores no semánticos del esquema lógico, paso inverso a la optimización del esquema (ej: deshacer la normalización de un SGBD relacional).
    • Normalización conceptual para obtener estructuras de alto nivel.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Técnicas de mantenimiento de software. OpenStax CNX. Jan 09, 2009 Download for free at http://cnx.org/content/col10571/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Técnicas de mantenimiento de software' conversation and receive update notifications?

Ask