A menudo las aplicaciones necesitan almacenar información de forma persistente, de manera que pueda ser capturada más adelante. Cada vez son más las aplicaciones de escritorio que lo utilizan, al igual que aplicaciones web, donde los RDBMS más populares son Microsoft SQL Server y MySQL.Este últmo, es sin duda el sistema de bases de datos rey de Internet. Sin embargo, no sé si os pasará como a mí, que trabajar día a día con él a veces me resulta una tarea desorganizada y costosa. Para mejorar eso surge MySQL Workbench.

¿Pero para qué sirve este programa? Es una herramienta visual de diseño, modelado, creación y mantenimiento de bases de datos.

Hasta ahora yo venía funcionando con herramientas con las que, en conjunto, lograba un resultado similar. Para el modelado entidad relación utilizaba Dia, la aplicación de Gnome para la creación de diagramas, o Umbrello, la solución basada en KDE para modelar diagramas UML. Nunca me acabó de convencer ninguna de estas herramientas, aunque lograban su cometido (A veces veía casi más efectivo dibujar las cajitas directamente con un software de diseño vectorial). Posteriormente, bien de forma automática, bien a mano, generaba el código SQL que definía la base de datos. Finalmente, para el mantenimiento del día a día, empleaba mayormente phpmyadmin.

Muchas aplicaciones, muchos cambios de contexto, y mucha semántica que se pierde al pasar de una herramienta a otra. Mmmm eso no mola. Buscando, encuentro una aplicación que hace tiempo que había visto, pero que había olvidado por completo. Efectivamente, me refiero a MySQL Workbench :) Surge como evolución natural de DBDesigner, de FabForce, pues el equipo de desarrollo está liderado por el fundador de DBDesigner, Michael G. Zinner.

Cosas chulas que podemos hacer desde MySQL Workbench:

  1. Ingeniería inversa de DDL de MySQL. A partir del código SQL, sin mediar el servidor de bases de datos, podemos visualizar toda la información en forma de tablas y diagramas generados automáticamente.
  2. Forward engineer, que lógicamente nos permite crear el nuevo código SQL.
  3. Conexión directa con el SGBDR. Podemos incluso sincronizar modelos.
  4. Soporta triggers y procedimientos almacenados.
  5. Diagramas bonitos y personalizables (Por ejemplo, que los únicos campos mostrados sean las claves).

A continuación, pongo un ejemplo de diagrama generado utilizando la base de datos de ejemplo sakila.

esquema de sakila

¿Dónde consigo esta maravilla? Te estarás preguntando. Sígueme… ¿Y dónde funciona? En Windows, Mac OS X y por supuesto Linux. Por cierto, una pega que le veo: Utiliza GTK++ ;-)

Aviso para usuarios de Ubuntu: Existen paquetes .deb de la versión 5.1 Beta disponibles listos para instalar en Ubuntu. Yo estoy ejecutando Kubuntu 9.04 y me han dado problemas de tipo Segmentation Fault en libglade. He probado a compilar e instalar la versión 5.2 Alpha y por el momento todos los errores han desaparecido.