domingo, 17 de abril de 2011

PowerDesigner free alternatives... or something close (for PostgreSQL minimum)

Herramientas de modelado de datos gratuitas (para PostgreSQL)


Las herramientas de modelado de datos son muy útiles a la hora de realizar un diseño de datos nuevo o acercarnos a la comprensión y estudio de un modelo existente (en aquellas con características de ingeniería inversa). La capacidad de realizar un diseño de modelo visualizándolo de forma gráfica, a través de los Diagramas E-R, o de obtener un diagrama y documentación de una base de datos existente aumenta enormemente la eficiencia de nuestro trabajo reduciendo drásticamente el tiempo necesario con respecto a una realización manual de dichas tareas de diseño, análisis y estudio.

La mejor y más completa herramienta de modelado que conozco es PowerDesigner©. No es objeto de este artículo describir la enorme cantidad de características que tiene, ni lo perfectamente resuelto que están en ella las tareas de modelado e ingeniería directa e inversa, pero te aseguro que es casi perfecta, contemplando todo el ciclo de modelado (lógico y físico, con multitud de bases de datos) de datos, además de otras tareas de modelado como el de objetos (con generación de código), esquemas xml, etc...

PowerDesigner tiene, empero, un (grave) inconveniente: sólo está disponible para Windows, y en Sybase/SAP no se han preocupado (al contrario que otras compañías, como por ejemplo Spotify) de que pueda ejecutarse con Wine perfectamente.

Vale. Así que tenemos Linux (por ejemplo) y no podemos ejecutar PowerDesigner pero necesitamos una herramienta que nos ayude en nuestro trabajo. ¿Qué alternativas hay?. He buscado en internet "herramientas de modelado de datos", "data modelling tools", "PowerDesigner alternatives"... con resultados decepcionantes: apenas listas de herramientas poco comentadas o algún comentario en foros... Así que me puse manos a la obra a buscar por mi cuenta y compartirlo con la comunidad.

Lo primero que hay que tener en cuenta es que no existe ninguna herramienta gratuita alternativa comparable a PowerDesigner, ni por calidad ni cantidad de características. Pero existen herramientas bastante decentes (para ser gratuitas) que nos pueden servir para la mayor parte de nuestras necesidades. De hecho, hay una lista publicada con una cantidad enorme de herramientas diferentes de modelado que me llevaría muchos días probar. Así que, como en otras ocasiones, fijé una serie de características y condicionantes necesarios para mi, con lo que el número de herramientas candidatas se redujo considerablemente. Mi lista de características y condiciones ha sido la siguiente:
  • Debe estar disponible para Linux, como mínimo.
  • Debe tener características de modelado de datos (no basta con una herramienta de diagramas o que sea sólo para UML)
  • Debe tener características de ingeniería directa e inversa.
  • Debe soportar (para la ingeniería directa e inversa) como mínimo, PostgreSQL. Adicionalmente se valorará otras bases de datos como MySQL, Oracle, SQL Server, DB2, Derby, etc...
  • Debe tener características de documentación: generar diagramas E-R, y documentación de la base de datos.
  • Por supuesto, debe ser gratuita y, preferentemente, libre.
A continuación, os detallo las herramientas analizadas

Open System Architect 4.0.0

Es Open Source. Frecuencia de actualización: desconocida.
De todas las herramientas, analizadas es la que más se parece (dicho esto con todas las cautelas y salvando mucho, mucho las diferencias) a PowerDesigner, y es la que más características y posibilidades incorpora. Por ejemplo, es la única de las analizadas que integra el modelado lógico. Tiene la mejor organización de proyectos y menús y es rápida. Me han gustado muchos aspectos que aparentemente la podrían convertir en la más completa...sin embargo, también es la que más me ha decepcionado en el resultado final. El acceso a las bases de datos es vía ODBC (es la única de las analizadas que no está hecha en Java), lo cual me ha resultado un poco arcaico y engorroso de configurar, aunque al final ese no ha sido el inconveniente, sino la falta de acabados finales que hacían perder la lucidez de las funcionalidades:
  • Diagramas
    • los diagramas generados son feos (si bien este inconveniente es generalizado en todas las herramientas analizadas)
    • faltan opciones de presentación gráficas, de reordenado y de diseño de las tablas y sus relaciones
  • Ingeniería inversa:
    • La importación de tablas no es cómoda y no se sabe muy bien de qué esquemas estás importando. No puedes agregar tablas referenciadas relacionadas (hijas) o que la relacionen (padres) automáticamente.
  • Documentación:
    • No encontré las características de documentación mínimas que buscaba.
En definitiva, debería ser la mejor... pero al final no me ha gustado. Es como si te montas en un Mercedes, que hace ruido, no tiene aire acondicionado y la dirección y el cambio son muy duros. No me ha resultado cómoda y no la voy a usar. Estaré atento a futuras versiones si es que se producen.


SQL Power Architect 1.0.6


Aunque es un producto comercial, la versión community es Open Source y gratuíta.Frecuencia de actualización: alta.

La versión community gratuita es suficiente para un trabajo de modelado básico. Soporta ingeniería directa e  inversa de forma cómoda (se pueden agregar fácilmente las tablas hijas) con bastantes opciones gráficas de presentación. Es rápido, amigable y con él se puede generar una documentación mínima decente. De todos los analizados es el que menos opciones de modelado y documentación tiene, aunque cumple su cometido muy dignamente.


SQuirreL SQL 3.2.1

Open Source. Alta actualización. Esta herramienta es en realidad un cliente SQL multi-bases-de-datos (bastante bueno, la verdad) con capacidades de modelado e ingeniería directa e inversa.

SQuirrel no destaca por sus capacidades gráficas de diagramas E-R. La organización de las tablas en una importación vía ingeniería inversa deja bastante que desear (como se puede observar) aunque salvando el detalle de tener que organizar y posicionar las tablas a mano, tenemos suficientes opciones para añadir tablas referenciadas o elegir la presentación de las tablas. Sin embargo, como he comentado, SQuirrel es un cliente multipropósito y multibase bastante completo, con muchos plugins y potentes editores de datos, SQL, DML y esquemas. Este es probablemente el más completo multi-propósito de todos los analizados.


Druid III (3.11)

Open Source. Frecuencia actualización: Alta

Druid es fundamentalmente una herramienta pensada para crear bases de datos de forma gráfica y documentarlas. Su capacidad de documentación de bases de datos supera a todas las del análisis: es capaz de generar documentación tipo javadoc de una base de datos con los diagramas E-R y sus tablas de forma detallada, como se puede comprobar en la siguiente ilustración.

La interfaz es un poco "extraña" (por llamarla de alguna manera) y muy poco intuitiva (probablemente la peor interfaz de todas). Sin embargo, si quieres documentar una base de datos, ésta es tu heramienta. Permite documentar una base de datos existente vía ingeniería inversa, realizando diagramas temáticos y realizando documentación adicional, de forma muy sencilla, añadiendo tablas relacionadas, y presentando la información que deseemos. En todo caso, a pesar de que le faltan opciones gráficas de zooming y layout y de tener una interfaz difícil, para documentar una base de datos vía ingeniería inversa, es la que más me ha gustado.


Resumen:

  • Todos tienen carencias en la presentación de los diagramas E-R: faltan opciones de "layout" y los diagramas son poco vistosos.
  • Todos son multiplataforma (todos salvo Open Systems Architect están hechos en Java).
  • Todas las herramientas son válidas. Y deberías probarlas todas. Ahora bien, cada una tiene un punto fuerte
    • Documentación: Druid
    • Algo para empezar, sencillo: SQL Power Architect.
    • Cliente completo, todo en uno: SQuirrel
    • OSA no me ha gustado, a pesar de ser la única que incorpora modelado lógico de forma explícita.
Todo esto, como siempre, es cuestión de gustos y de necesidades concretas. Así que, como en otras ocasiones, recomiendo probar y sacar conclusiones... y si las compartes conmigo comentando, te lo agradezco.

¿Conoces alguna otra herramienta que cumpla las condiciones iniciales?


Referencias y más información:

7 comentarios :

  1. Para la ingenieria inversa de bases de datos encontre http://schemaspy.sourceforge.net/ y la verdad es que esta muy bien.

    ResponderEliminar
  2. Cierto. Para documentar una base de datos existente de forma rápida no está nada mal. Mucho mejor que postgresql_autodoc.Gracias por tu aportación.

    ResponderEliminar
  3. Os recomiendo que probéis Moskitt. Os cuento, trabajo de DBA en la Conselleria de Infraestructuras, Territorio y Medio Ambiente. Tenemos un proyecto de migración a software libre, en mi caso, migrando de Oracle a PostgreSQL (podéis ver información del proyecto en http://www.gvpontis.gva.es/val/inicio-gvpontis/).

    Dentro del proyecto, veréis que hay uno, Moskitt (http://www.moskitt.org), que es una herramienta CASE que soporta ingeniería inversa y generación DDL de PostgreSQL, asi como Oracle y MySQL. Os recomiendo que la probéis. En la web veréis que no solo se limita al trabajo con bases de datos, en una completa herramienta CASE.

    ResponderEliminar
  4. Por cierto, por si os sirve, la herramienta anterior que gastábamos, era PowerDesigner v12, con lo que hemos migrado de PowerDesigner a Moskitt.

    ResponderEliminar
  5. Gracias Jose. La probaré para mi próximo proyecto. Nada mejor que una prueba "real" para modelar y sincronizar con el modelo de datos. Recuerdo que el PD tenía un problema con PostgreSQL: los datos. Si sincronizabas el modelo con las tablas y tenías datos de prueba en ellos, los perdías... veremos cómo se comporta Moskitt. Muy agradecido por el aporte.

    ResponderEliminar
  6. recomendar buscando una herramienta gratuita Valentina Studio http://www.valentina-db.com/en/valentina-studio-overview

    ResponderEliminar
  7. Si buscas las herramientas de modelado de datos, probar la nueva Vertabelo - Design your database online. Este es uno de los pocos programas para modelado de datos que funcionan sólo en Internet. Porque Vertabelo es disponible para Linux, Windows y Mac OS. Este tiene características de modelado de datos y de ingeniería directa e inversa. Soporta PostgreSQL, MySQL, Oracle, MS SQL Server, IBM DB2, SQLite y HSQLDB. Vertabelo es gratuito para los pequeños y medianos proyectos.

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...
cookieassistant.com