1. Introducción

En un tutorial anterior explicamos la manera de crear un servidor Apache con PHP y MySQL. Ahora nos toca instalar una herramienta para el diseño de las bases de datos. Si nunca has usado una y manejas bases de datos, te recomiendo leer este tutorial. La aplicación que vamos a instalar se llama DBDesigner, y la instalaremos bajo [X]Ubuntu. Es una herramienta de fácil uso y de una interfaz muy intuitiva. Aquí os dejo un ejemplo de una captura:

DBDesigner_Screenshot

El ejemplo es de un ejercicio que tenía que hacer en la universidad. ¿A qué queda bonito?

Con este programa podemos crear tablas y relaciones entre ellas. El propio programa crea nuevas tablas en caso de necesitarlas, como es en el caso de las relaciones N:M. Podemos decir cuales campos son PRIMARY KEY, FOREIGN KEY, decir cuales son los tipos de datos de cada campo, etc… . Además, podremos conectar el programas a nuestra base de datos MySQL y sincronizar el programa y la base de datos. También podremos hacer ingeniería inversa, es decir, el programa recoge las tablas de nuestra base de datos y nos diseña el modelo automáticamente. El programa también es capaz de conectarse a bases de datos de Oracle, SQLite y ODBC.

2. Instalación

Espero que te haya animado a seguir leyendo, pues ahora empezamos con la instalación en [X]Ubuntu. Hay que decir que es una instalación algo larga, así que vamos a abrir una consola y crear una carpeta donde descarguemos todos los archivos y hagamos todas las operaciones:

cd ~
mkdir tmp-dbd
cd tmp-dbd

Vamos a empezar descargando todo lo necesario para no tener que volver a abrir el navegador. Tendremos que bajarnos cuatro cosas: el programa DBDesigner, librerías de xlibs, librerías de Kylix y el driver para usar MySQL. Todos los archivos los guardamos en la carpeta que habíamos creado (~/tmp-dbd/):

Una vez que tenemos los cuatro archivos en la carpeta ~/tmp-dbd/ empezaremos con la instalación.

2.1. Instalación de xkeyboard-config

sudo aptitude reinstall xkb-data
sudo dpkg -i xkeyboard*.deb

2.2. Instalación de las xlibs

sudo dpkg -i xlibs_*.deb

2.3. Instalación de las librerías de Kylix

sudo dpkg -i kylixlibs3-borqt_*.deb
sudo ln -s /usr/lib/kylix3/libborqt-6.9-qt2.3.so
sudo ldconfig
sudo ln -s /usr/lib/kylix3/libborqt-6.9.0-qt2.3.so /lib/libborqt-6.9-qt2.3.so

2.4. Instalación del programa DBDesigner

sudo aptitude install alien
sudo alien DBDesigner*
sudo rm DBDesigner*.rpm
sudo dpkg -i dbdesigner*

2.5. Instalación del driver para MySQL

sudo tar -zxvf dbxmda.tar.gz
sudo mv DbxMda/libsqlmda.so.3.20 /usr/lib
sudo ldconfig

Con esto hemos instalado los cuatro archivos que nos habíamos bajado. Como apunte opcional, diré que la instrucción dpkg -i sirve para instalar un archivo .deb; que ln -s sirve para crear un enlace hacia un archivo, como si fuera un acceso directo; aptitude sirve para instalar programas que tenemos en los repositorios; alien sirve para convertir un archivo de instalación de Red Hat (rpm) a un archivo de instalación de Debian (deb); y que ldconfig sirve para actualizar las librerías de la dirección /usr/lib/ y /lib/. A veces es mejor comprenderlo, que hacerlo y no saber por qué.

3. Configuración

Bueno, ya tenemos todo listo. Tenemos el programa y todo configurado. Ahora solo nos falta abrir el programa y empezar a usarlo. El programa se encuentra en la dirección /opt/DBDesigner4/DBDesigner4 (en el caso de habernos bajado esa versión 4). Así que podemos crear un enlace en el escritorio con esa dirección o ejecutarlo desde la consola directamente.

Ahora necesitamos saber como conectarnos a la base de datos MySQL desde nuestro programa. Para ello, una vez abierto, creamos un nuevo documento (File -> New) y después pulsamos sobre el menú (Database -> Connect to Database):

DBDesigner_ConnecttoDatabase

Una vez en ese menú, creamos una nueva conexión pulsando New Database Connection.

DBDesigner_NewDatabaseConnection

Ahora nos saldrá una ventana para configurar la nueva conexión MySQL. Os pongo unas capturas para que lo dejéis exactamente igual (menos el hostname, el username, el password y la database que serán vuestros datos de la conexión). Hay que prestar atención a la pestaña Advanced, porque son los datos que sirven para conectar con el driver de MySQL.

DBDesigner_DatabaseConnectionGeneral

En la siguiente captura lo dejáis casi igual, excepto en LibraryName y VendorLib, que deberéis poner: libsqlmda.so.3.20 (no actualizo la imagen porque cada dos por tres actualizan el driver).

DBDesigner_DatabaseConnectionAdvanced

NOTA IMPORTANTE: Fijaos bien en que esta configuración está tal y como se ve aquí, incluyendo las mayúsculas y las minúsculas. A veces al instalar el programa por primera vez, nos pone “MYSQL” todo en mayúsculas, en lugar de “MySQL” como debe ser. Esto provocará que no funcione la conexión con la base de datos.

Ahora sí que sí. Ya tenemos todo preparado. Cada vez que queramos conectar con nuestra base de datos MySQL elegiremos de la lista de All Database Conections nuestra conexión, pondremos el password y pulsaremos el botón Connect. Y listo.

4. Ingeniería inversa

Ahora que he terminado de explicar como instalar y configurar DBDesigner con MySQL en [X]Ubuntu… no me podía ir sin explicar como hacer ingeniería inversa y como subir nuestro diseño a la base de datos MySQL.

4.1. Como hacer ingeniería inversa (de las tablas al diseño)

Si ya teníamos creadas nuestras tablas en la base de datos y ahora queremos tener el diseño, lo único que tenemos que hacer es crear un nuevo documento (File -> New), y después pulsar sobre el menú (Database -> Reverse Engineering).

Ahora nos pedirá que elijamos una de las conexiones MySQL que creamos anteriormente, y la conectamos pulsando Connect.

En la siguiente ventana, nos saldrá una lista de tablas. Elegiremos de las que querramos tener el diseño y pulsaremos el botón Execute. Y… sorpresa! Ya tienes un diseño de tu base de datos!

4.2. Como subir nuestro diseño a la base de datos

Una vez que tengamos un diseño con sus tablas, sus interrelaciones y demás y querramos pasar del diseño a las tablas, pulsaremos el menú (Database -> Database Synchronisation).
Ahora nos pedirá que elijamos una de las conexiones MySQL que creamos anteriormente, y la conectamos pulsando Connect (que fácil es copiar y pegar).

Y en la nueva ventana que nos sale, pulsaremos el botón Execute. Con esto, hemos subido las tablas de nuestro diseño a la base de datos.

Como siempre, espero que os haya servido de ayuda. Os dejo, que tendréis muchas cosas que programar :P .