Generar modelo físico (ER) con PowerDesigner mediante ingeniería inversa

En este artículo se verán los pasos para generar el modelo físico de un diagrama de entidad-relación a partir de una base de datos ya existente.

Para generar dicha información se hace uso de la funcionalidad de ingeniería inversa de la herramienta PowerDesigner, una de las mejores de su tipo, cuyos pasos y descripción gráfica se detallarán a continuación.

  1. Como más adelante utilizaremos JDBC para conectarnos a los motores de bases de datos para generar el diagrama, es importante aclarar que vamos a necesitar de librerías JDBC externas para cada motor de base de datos. Dependiendo de la versión de PowerDesigner, tenemos que descargar los conectores JDBC para cada DBMS de los siguientes sitios:


    Estas librerías las tenemos que copiar al directorio de instalación de la herramienta PowerDesigner:
    C:\Archivos de programa\Sybase\PowerDesigner XX
  2. El siguiente paso consiste en ejecutar PowerDesigner y dirigirnos al menú File --> Reverse Engineer --> Database....


  3. En la ventana que aparece especificamos el nombre del modelo físico y luego seleccionamos el DBMS para el cual deseamos generar el diagrama.


  4. Al presionarle el botón Aceptar nos aparecerá otra ventana en la que cual en la sección inferior Using a data source debemos hacer clic en el botón icónico de la derecha Connect to a Data Source.


  5. Una nueva ventana denominada Connect to a Data Source se abrirá, en la cual hacemos clic en el botón Configure que desplegará una nueva ventana llamada Configure Data Connections.


  6. En la ventana Configure Data Connections nos dirigimos a la pestaña Connection Profiles y hacemos clic en el botón Add Data Source de la barra.


  7. En la nueva ventana que aparece a continuación necesitamos especificar como mínimo los siguientes campos para establecer la conexión a la base de datos deseada:

    - Connection profile name
    - Connection type
    - DBMS type
    - User name
    - Password
    - JDBC driver class
    - JDBC connection URL
    - JDBC driver jar files

    A modo de referencia, abajo se presentan algunas capturas de pantalla para ejemplificar como quedaría la configuración para las bases de datos PostgreSQL, MySQL y Oracle.



    En la misma ventana probamos la conexión con el botón Test Connection..., y si la conexión fue exitosa presionando el botón OK de la ventana Connection Profile Definition para continuar.

    OBS: Es posible que a veces PowerDesigner no logre cargar las librerías JDBC lanzando un error similar al siguiente: "Non SQL Error : Could not load class com.mysql.jdbc.Driver". Si se le presenta este caso, puede probar guardar la configuración, cerrar la herramienta para luego volver a abrirla y probar la configuración antes guardada.
  8. Luego, en la ventana Configure Data Connections del paso seis presionamos el botón Aceptar.


  9. En la ventana Connect to a Data Source seleccionamos la opción superior Connection profile y elegimos en el campo seleccionable la opción recientemente registrada conexion_pg.dcp, verificamos que el User ID y Password sean los correctos y luego presionamos el botón Connect.


  10. Con los pasos anteriores habremos vuelto a la ventana inicial que ya debería tener cargado nuestro data source (conexion_pg.dcp) en el campo inferior, luego presionamos el botón Aceptar para continuar.


  11. La siguiente ventana que aparecerá nos presentará todos los elementos seleccionables del esquema de nuestra base de datos, como ser tablas, vistas, sinónimos, disparadores, procedimientos, funciones, etc. Para finalizar presionamos el botón OK para dar inicio al proceso que generará el modelo físico de aquellos elementos seleccionados.


  12. Para culminar este artículo, les dejo a continuación con una captura del modelo físico generado a partir de los elementos seleccionados en el paso anterior:



Enlaces externos

Comentarios

  1. gracias muy buen aporte!! :)

    ResponderEliminar
  2. hola q tal quisiera saber cual es el usuario que se debe reguistrar para la prueba de conexion

    ResponderEliminar
    Respuestas
    1. Hola Javier, disculpa la molestia, para conectarte vas a necesitar introducir un usuario (y su respectiva contraseña) que existe en la base de datos. Normalmente podés utilizar los usuarios administradores de PostgreSQL y MySQL que son postgres y root respectivamente.

      Saludos..

      Eliminar
  3. Hola disculpa me he perdido en el paso 7 no puedo pasar de ahí estoy intentando conectarme con una base de datos oracle (10g Release 2)
    en la consola me sale error excepción de E/S : Invalid port number (jdbc:oracle:thin:@::)
    pero cambio de puerto (jdbc:oracle:oci:@::)y me sale otro error "Fatal Error unable to initialize Database MetaData class"

    Si me pudieses ayudar con este error que ya no se que mas hacer
    Gracias

    DisableBind=0,Driver='oracle.jdbc.OracleDriver',MapDateToDateTime=1,TrimSpaces=0,URL='jdbc:oracle:oci:@::'

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, en que puerto estás intentando conectarte al motor de base de datos de Oracle? Por defecto suele ser el puerto 1521..

      Por cierto, te fijaste en ésta captura? ahí están los datos y el orden en que deben ir para la cadena de conexión..

      Saludos.

      Eliminar
  4. Hola, me gustaria contactarte, tengo el OraClient11g_home1 y en panel de control en
    origenes de datos ODBC en la lista no me aparece Oracle, por lo tanto no puedo realizar la conexion, si puedes ayudarme te lo agradeceria mucho.

    de antemano gracias

    ResponderEliminar
    Respuestas
    1. Hola, la verdad yo te recomendaría establecer la conexión con JDBC, no estoy muy familiarizado con el ODBC. Saludos!

      Eliminar
  5. Hola..me gustaria saber a que podria deberse que al estirar las tablas me las traiga pero sin las relaciones?..
    Desde ya muchas gracias :)

    ResponderEliminar
    Respuestas
    1. Hola Erika, deberías verificar que en la ventana del paso 11 tengas marcada la opción Foreign Keys, o también puede ser que tu base de datos no tiene relaciones (puede parecer sorprendente pero ya me ha pasado xD). Saludos!

      Eliminar
  6. HOLA, QUERIA SABER COMO TRAERME LAS TABLAS, SUS PERMISOS Y SUS INDICES. ADEMAS DE LOS USUARIOS/GRUPOS QUE TIENEN PERMISOS SOBRE ESAS TABLAS.
    SAP Power Designer 16.1

    GRACIAS

    ResponderEliminar
    Respuestas
    1. Hola, desde que motor de base de datos estás intentando obtener dicha información? Las instrucciones para MySQL, PostgreSQL y Oracle están en el artículo! Saludos...

      Eliminar
  7. Hola no me funciona con Postgres 9.4 en el Power Designer 16, por favor podrias orientarme

    ResponderEliminar
    Respuestas
    1. Hola jc, a primeras no debería haber problemas pero bueno, en que paso tuviste problemas? tu Postgres corre en la misma máquina? saludos..

      Eliminar
  8. Hola:( no me resulta, me sale un error donde dice "Unable to list the triggers. sQLTATE=42703" :'(

    ResponderEliminar
    Respuestas
    1. Hola, a que motor de base de datos te has conectado para realizar la ingeniería inversa?

      Eliminar
    2. Uff, debería funcionar, pero la verdad que hace tanto que no lo pruebo que no te lo podría asegurar. Por cierto, en el paso 11 estás utilizando el usuario public? fíjate en este artículo: http://www.progtown.com/topic743245-from-postgresql-90-in-powerdesigner-16.html

      Eliminar

Publicar un comentario