sql >> Base de Datos >  >> RDS >> Oracle

Ingeniería inversa de un modelo de datos con Oracle SQL Developer

Introducción

Este tutorial presenta las herramientas del modelo de datos de Oracle SQL Developer que se pueden usar para aplicar ingeniería inversa a un esquema de base de datos existente en un modelo relacional y lógico. Considere un proceso de desarrollo de base de datos típico que comienza con los requisitos del usuario comercial que se modelan como un Modelo de Relación de Entidad que consiste en Entidades, Atributos, Identificadores y Relaciones. Este modelo E-R luego se transforma en un modelo relacional que consta de relaciones, atributos, claves y claves externas. El modelo relacional puede implementarse en una base de datos relacional como un conjunto de tablas, columnas y restricciones, incluidas restricciones únicas, de clave principal y de clave externa.

Es posible que nos encontremos con situaciones en las que tenemos un esquema de base de datos relacional ya implementado, pero carecemos del modelo relacional original o el modelo de relación de entidad que se utilizó para diseñar la base de datos. En estas situaciones, es posible que podamos recrear el modelo E-R mediante ingeniería inversa el modelo del esquema de la base de datos. Para lograr esto, debemos seguir los siguientes pasos:

  1. Conecte el esquema de la base de datos e identifique todas las tablas existentes, sus columnas y sus restricciones de clave primaria y externa.
  2. Construya el modelo relacional que corresponda al conjunto existente de tablas y restricciones.
  3. Infiere el modelo E-R a partir del modelo relacional.

Terminología del modelo de datos

Oracle SQL Developer usa términos que son ligeramente diferentes a los que se usan normalmente en los cursos académicos de bases de datos. El modelo físico (con claves, relaciones de claves externas e índices) que se extrae del esquema de la base de datos se denomina "Modelo relacional" por Oracle SQL Developer. El conjunto de entidades con líneas de relación se denomina "Modelo lógico" por Oracle SQL Developer.

Requisitos

Antes de comenzar este tutorial, asegúrese de estar trabajando con Oracle SQL Developer versión 4.x o posterior. Desafortunadamente, es posible que Oracle 12c aún se envíe con la versión 3.x de SQL Developer, que carece de las herramientas de modificación de datos.

Si necesita obtener e instalar SQL Developer, o desea algunos consejos sobre cómo comenzar con SQL Developer, consulte el tutorial.

También necesitará las credenciales (nombre de host, puerto, nombre de servicio, nombre de usuario y contraseña) para el esquema de muestra "HR" (u otro) que se incluye con Oracle 11g y Oracle 12c.

Los siguientes pasos se llevaron a cabo utilizando SQL Developer 4.1 en Windows 7 conectado al esquema de ejemplo 'HR' en una base de datos Oracle 12c.

Ingeniería inversa del modelo relacional a partir de un esquema de base de datos

  1. Ejecute Oracle SQL Developer y cree una conexión al esquema de base de datos con el que trabajará. En este ejemplo, creamos una conexión con el esquema "HR", que es la base de datos de ejemplo de recursos humanos que viene con Oracle 11g y Oracle 12c.
  2. Despliegue el menú Archivo, seleccione Modelador de datos y luego el submenú Importar. Haga clic en la selección Diccionario de datos del menú desplegable como se muestra a continuación. Esto iniciará el asistente de importación del diccionario de datos:
  3. Seleccione la conexión con la que desea trabajar. También puede hacer clic en el botón Agregar para agregar una nueva conexión. Una vez que haya resaltado su conexión, haga clic en el botón Siguiente> para continuar.
  4. El siguiente paso es seleccionar el Esquema para importar. Para este ejemplo, marcamos la casilla del esquema 'HR' como se muestra a continuación. Tenga en cuenta que la selección "Importar a:" muestra Nuevo modelo relacional y el tipo de base de datos es Oracle 12c. Haga clic en el botón Siguiente> para continuar:

El siguiente conjunto de pasos en la página siguiente cubre la selección de los objetos de la base de datos para importar al modelo.

  1. El siguiente paso es seleccionar qué objetos de la base de datos importar. Para este ejercicio, seleccionaremos todas las tablas que se van a importar. Tenga en cuenta que hay otros objetos de la base de datos, como vistas, secuencias, funciones, procedimientos almacenados, etc., que también podrían importarse potencialmente. Para este ejercicio, lo mantendremos simple y solo miraremos las tablas. Después de seleccionar las tablas, haga clic en el botón Siguiente> para continuar.
  2. El último paso del asistente de importación es revisar los objetos de la base de datos que se van a importar. Si todo se ve bien, haga clic en el botón Finalizar para iniciar la importación.
  3. En este punto, según la cantidad de tablas que esté importando, es posible que vea una barra de progreso como:
  4. Cuando se complete, aparecerá una ventana de registro de resumen:

    Si hay declaraciones fallidas, guarde este registro para ayudar con la depuración.

  5. Suponiendo que el proceso de importación se completó sin errores, aparecerá un nuevo modelo relacional en la ventana. Es posible que desee moverse alrededor de las mesas para hacer un buen arreglo. El modelo utiliza la notación "Pata de gallo" donde la "pata de gallo" representa el lado "Muchos" de la relación. Entonces, por ejemplo, una "región" tiene muchos "países". Un "País" tiene muchas "Ubicaciones", y así sucesivamente.
  6. Puede cambiar el nivel de detalles que se muestran en el modelo relacional haciendo clic con el botón derecho en el lienzo y seleccionando el elemento de menú Ver detalles.

Como recordatorio, la mayoría de los profesionales normalmente lo llamarían "modelo de base de datos física", ya que incluye los tipos de datos, claves, claves externas e índices que se implementan en el esquema de la base de datos.

Los pasos para guardar el modelo se presentan en la página siguiente.

  1. En este punto, el modelo recibe un nombre temporal como Sin título_1. Para ver este modelo en el "Navegador", despliegue el menú Ver, seleccione Modelador de datos y luego Navegador. Abra el diseño Untitled_1 y luego abra los Modelos relacionales y, finalmente, el modelo con el nombre de su conexión, como se muestra a continuación:
  2. Haga clic derecho en el diseño Untitled_1 y haga clic en el elemento de menú Guardar diseño. Navegue a una carpeta adecuada para guardar su trabajo y asigne un nombre de archivo al diseño. Haz clic en el botón Guardar una vez que esté listo:

En este punto ahora tenemos (lo que Oracle llama) un modelo relacional que es esencialmente un espejo del esquema de la base de datos relacional que acabamos de importar. De hecho, SQL Developer mantiene estos dos sincronizados de modo que si el esquema de la base de datos cambia, esto se reflejará en el modelo relacional, y si se realizan cambios en el modelo relacional, se pueden insertar (implementar) en el esquema de la base de datos.

Este modelo mostrará todas las tablas (relaciones), claves, claves externas, restricciones de verificación e índices que pueden o no imponer la unicidad. Por ejemplo, la siguiente relación EMPLEADOS tiene una clave principal ID_EMPLEADO, tres claves externas (ID_TRABAJO, ID_GERENTE y ID_DEPARTAMENTO) y una restricción única en la columna CORREO ELECTRÓNICO:

El siguiente conjunto de pasos en la página siguiente cubre cómo continuar el proceso de ingeniería inversa para producir un modelo lógico.

Ingeniería inversa del modelo de relación de entidad

En este punto, hemos realizado ingeniería inversa de un esquema de base de datos en un modelo relacional, que es un proceso bastante sencillo. El último paso es continuar con la ingeniería inversa para producir el modelo de relación de entidad. Tenga en cuenta que Oracle llama a esto el "modelo lógico".

  1. Volviendo al Explorador de modelos de datos, abra las carpetas de Modelos relacionales y Modelo lógico como se muestra a continuación:
  2. Haga clic con el botón derecho en el modelo relacional (el nuestro se llama sfscdb_pdb2_hr) y seleccione Ingeniería para modelo lógico en el menú emergente, como se muestra a continuación:
  3. El diseño del modelo lógico El cuadro de diálogo debe aparecer como se muestra a continuación. Cada una de las Tablas y Referencias debe ser revisada. Cada tabla se asignará a una entidad y cada referencia de clave externa se debe asignar a una relación entre entidades. Una vez seleccionados todos los elementos apropiados de la ventana de la izquierda, haga clic en el botón Ingeniero para crear el modelo lógico (ER).
  4. El nuevo modelo de relación de entidad debería aparecer como se muestra a continuación. De forma predeterminada, se utiliza la notación "Pata de gallo" o de Barker.

Los detalles de las relaciones (que Oracle llama confusamente "relaciones") se pueden ver haciendo doble clic en la línea de relación. En el siguiente ejemplo, la relación entre las entidades Empleados y Trabajos está abierta. Al especificar frases verbales para los campos "Nombre en el origen" y "Nombre en el destino", cada relación se puede especificar por completo con un gran nivel de detalle.

La siguiente figura muestra la relación completamente definida que diría:

One JOB may be a job performed by One or More EMPLOYEES
One EMPLOYEE must be performing One and Only One JOB

La notación predeterminada para el modelo ER es la notación Crow's Foot o Barker. Para cambiar la notación a notación de Bachman o Ingeniería de la Información, haga clic con el botón derecho en cualquier parte del diagrama y resalte el elemento de menú Notación. Seleccione cualquiera de las notaciones disponibles de la lista que aparece.

Puede agregar un título y otros detalles al modelo ER con la herramienta Nueva nota