La ingeniería inversa en BBDD es el proceso mediante el cual se tratan de comprender y redocumentar archivos o bases de datos a partir de modelos lógicos. Esto quiere decir que, como su nombre indica, la ingeniería inversa en BBDD se encarga de revertir algunos de los procesos ya ejecutados para encontrar la solución a determinados problemas.
Ingeniería inversa en BBDD
Imagina la ingeniería inversa en BBDD como un método deductivo mediante el que vamos de lo general a lo particular y a partir de situaciones que ya conocemos vamos a ir develando otras que necesitamos saber.
La ingeniería inversa en BBDD se compone de diferentes acciones a realizar:
- La primera es la extracción de la estructura de datos.
- La segunda es la conceptualización de la estructura de datos.
Proceso de extracción
Este proceso permite obtener la estructura física de la base de datos existente.
En esta fase se hace una recuperación de esquemas del data management system, lo cual incluye estructuras explícitas, implícitas y sus diferentes restricciones.
Si bien lo que se obtiene puede no ser un esquema muy refinado y puede faltar información esencial, este sí brinda un punto de partida para el análisis de otras estructuras del sistema.
Principales procesos de extracción de estructuras de datos
Los principales procesos de extracción de estructuras de datos que se pueden usar para el proceso de ingeniería inversa en BBDD son:
- DMS-DDL de análisis de texto: aquí se produce la primera modificación al esquema lógico.
- Esquema de perfeccionamiento: incluye el programa de análisis y el análisis de datos.
- Esquema de integración: incluye construcciones optimizadas del DMS.
Proceso de conceptualización
En este proceso se hace una interpretación conceptual del esquema DMS.
Esta etapa, a su vez, intenta obtener, después de aplicar la ingeniería inversa, la semántica de las estructuras físicas de datos.
Se compone de dos subprocesos:
- Conceptualización básica: en este subproceso se busca extraer todos los conceptos semánticos importantes, fundamentalmente los incluidos en el esquema lógico. Aquí se incluyen algunos aspectos como:
- Preparación del esquema.
- Esquema de untranslation.
- Esquela de la optimización.
- Normalización conceptual: consiste en reestructurar el esquema conceptual base para poder moldearlo con las características necesarias que debe tener un esquema conceptual final.
Problemas en la ingeniería inversa de una base de datos
Adhesión al modelo de influencia
Sucede que, muchas veces, las bases de datos en realidad no son de la tipología que dicen ser. Esto se debe a que algunos de los diseñadores y administradores de bases de datos suelen hacer uso de sus apegos culturales para la fabricación de las BBDD, lo cual se traduce en, por ejemplo, bases de datos relacionales que son simplemente una modificación de bases de datos IMS o inclusive de archivos de Excel.
Construcciones obsoletas
Puede pasar que algunas bases de datos sean de construcción obsoleta y por tanto los programas actuales no lean los datos correctamente.
Diseño inadecuado
También puede suceder que las bases de datos las construyan personas con los suficientes conocimientos y destrezas. Esto se debe a muchas razones, entre ellas lo enumerado en el primer ítem, ya que pueden existir estructuras que no se adapten correctamente al nuevo tipo de base de datos. Además, en ocasiones las BBDD las diseñan desarrolladores inexpertos que tienen fundamentos teóricos, pero les faltan bases metodológicas y prácticas.
Estructuras implícitas
Son construcciones que no han sido declaradas de manera específica en las sentencias DDL (permiten crear únicamente condiciones básicas: Create, Alter, Drop, Truncate, Rename). En ocasiones, estas construcciones pueden recuperarse a través de análisis de procedimientos.
Estructuras optimizadas
Existen ocasiones en las que, por cuestiones de optimización del espacio y del tiempo, las bases de datos están diseñadas por medio de estructuras no semánticas. Las bases de datos semánticas buscan evitar estructuras redundantes y normalizadas que mejoren tiempos de respuestas; de ahí la importancia de implementar estructuras semánticas en las BBDD.
Extracción de estructuras de datos
Entre algunos de los aspectos puntuales en la ingeniería inversa de una base de datos se encuentra la extracción, un proceso que consiste en obtener la estructura física de una base de datos existente.
La extracción cuenta con varios subprocesos:
DMS-DDL de análisis de datos
En este proceso se hace un análisis de las estructuras de datos y sentencias de declaración específicas en el DDL, en los que se incluyen scripts de esquema y programas de aplicación.
Esquema de perfeccionamiento
Este es uno de los aspectos puntuales en la ingeniería inversa de una base de datos más complicado, ya que consiste en analizar las fuentes no declarativas de la información con el objetivo de obtener construcciones implícitas y restricciones.
Esquema de integración
Los esquemas de integración se producen cuando una fuente de información ha sido procesada y se entrega al administrador de bases de datos un esquema refinado. El esquema lógico final, producto de todas las integraciones de esquemas, debe estar completo.
Conceptualización de estructuras de datos
Este proceso tiene como finalidad aplicar la semántica de las estructuras físicas de datos.
Aborda subprocesos como:
Conceptualización básica
Consiste en extraer todo el concepto semántico de importancia de las estructuras de datos, principalmente el esquema lógico. Incluye tres aspectos:
Preparación del esquema
A pesar de que el esquema puede contener construcciones como archivos y claves de acceso, estas pueden ser perfectamente desechadas.
Antes de hacer cualquier tipo de interpretación en esta fase, es importante hacer una traducción de nombres y reestructurar algunas partes del esquema.
Esquema de untranslation
En esta etapa, el analista identifica los indicios de la traducción técnica de las construcciones semánticas al esquema lógico.
Esquema de la optimización
Se busca el esquema lógico para encontrar indicios de estructuras de optimización, entre ellas: desnormalización, estructura redundante y reestructuración.
Normalización conceptual
Este subproceso consiste en reestructurar el esquema conceptual base para darle las cualidades solicitadas en los requerimientos.
En este artículos hemos conocido algunos aspectos puntuales en la ingeniería inversa de una base de datos. Si quieres seguir aprendiendo sobre todas estas temáticas, te invitamos a que te inscribas en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, en donde tendrás a los mejores profesionales a tu disposición para seguir alcanzando tus metas. ¡Solicita información y atrévete a cambiar tu vida!