Creación y Mantenimiento de Bases de Datos

Exportación SQL Tradicional

Como cualquier otra herramienta de modelado de bases de datos DBDesigner 4 puede exportar el modelo como un script SQL que puede ser ejecutado en cualquier herramienta de mantenimiento de bases de datos, como la línea de comandos de MySql.

Todos los comandos SQL CREATE TABLE y los Insert Estándar pueden exportarse como en cualquier otra herramienta de modelado de bases de datos a un fichero de script SQL que puede ser ejecutado por cualquier herramienta de mantenimiento de bases de datos, como por ejemplo la herramienta de linea de comandos de MySQL.


También es posible generar todos los comandos SQL DROP TABLE.

¿Qué es la Sincronización de Bases de Datos?

Con DBDesigner 4 puedes simplificar la tarea de crear y mantener tu base de datos. DBDesigner 4 ofrece la posibilidad de conectarte a un servidor MySQL y crear y sincronizar una base de datos con el modelo de diseñado.

Con sincronización queremos decir que DBDesigner 4 busca todas las tablas en la base de datos existente y comprueba las diferencias. Si la tabla existe en el modelo pero no en la base de datos,se ejecuta el comando SQL CREATE TABLE necesario.
Si la tabla no existe en el modelo pero sí en la base de datos puede ser borrada dependiendo de las opciones del usuario.
Si la tabla existe en el modelo y en la base de datos también, se comparan todos los campos y si hay una diferencia, se ejecuta el comando SQL ALTER TABLE apropiado.

¿Qué es Ingeniería Inversa?

Realizar la ingeniería inversa en una base de datos significa conectarse al servidor de bases de datos, elegir una base de datos existente y construir automáticamente un modelo basado en la meta información en la base de datos.

En DBDesigner 4 toda la información de las tablas se extrae de la meta información y las relaciones entre tablas se extraen de nombres de tablas y campos. Las tablas se colocan en el modelo en orden alfabético siguiendo un esquema de cuadrícula definido por el usuario.
El proceso de ingeniería inversa es posible en MySQL, Oracle y cualquier otra base de datos accesible mediante ODBC.

La extracción de toda la información de las tablas es solamente posible usando una base de datos MySQL. Las demás bases de datos están limitadas por las limitaciones del ODBC.

Exportar Creates SQL

Para exportar el script create SQL en tu modelo actual de base de datos selecciona Fichero-Exportar-Script Create SQL ... Aparecerá el diálogo de Exportación SQL.


Exportar SQL Creación
Diálogo de exportación de Creates SQL


Para exportar los Creates SQL a un fichero, pulsa el botón [Guardar en Fichero]. Se preguntará el nombre del fichero y el destino. Pulsa [Guardar] para escribir el script en el disco.

Cuando un shell SQL se abre, puede ser útil copiar el script al porta papeles y ejecutar directamente el shell SQL. Para copiar el script SQL al porta papeles pulsa el botón [Copiar al Porta Papeles].

Opciones Create SQL

La salida puede ser personalizada usando las siguientes Opciones Generales y las Opciones de Create SQL.

Exportar sólo tablas seleccionadas

Marca esta opción para exportar sólo las tablas seleccionadas. Las demás demás tablas no serán creadas en el fichero de script.

Ordenar Tablas por Clave Foránea

Usa esta opción para cambiar el orden de creación. Por defecto las tablas se crean en orden alfabético. Cuando usas las claves foráneas es necesario cambiar el orden en que se crean las tablas.

Las tablas sin relaciones que apunten a ellas han de ser creadas primero. Las demás tablas se crearán solo cuando existan todas las tablas de origen.

Si hay una colección de relaciones cíclica, las tablas no pueden ser creadas. Se mostrará un mensaje de error. Aún así puedes exportar las tablas en orden alfabético.

Definir Claves Foráneas

Activa esta opción si quieres activar la creación de claves primarias.

Crear Índices

Activa esta opción si quieres activar la creación de índices. No incluye las claves primarias. Activa la opción Definir Claves Foráneas para crear claves primarias.

Definir Referencia de Claves Foráneas

Usa esta opción para habilitar las referencias en las claves foráneas en los comandos SQL CREATE TABLE. Ten en cuenta que tendrás que activar la opción Ordenar Tablas por Claves Foráneas para hacer funcionar el script SQL.

Opciones de Generación de Tabla

Usa esta opción para habilitar las opciones de tabla en los comandos SQL CREATE TABLE. Es necesario solo si has especificado las Opciones de las Tablas para la tabla en el modelo.

Generar Inserts Estándar

Usa esta opción para exportar los Insert Estándar en el script SQL de creación. Es necesario solo si has especificado Inserts Estándar para la tabla en el modelo.

Exportar Drops SQL

Para exportar un script Drop SQL basado en el modelo de base de datos actual selecciona Archivo-Exportar-Script Drop SQL ... Aparece el diálogo de Exportación de Scripts SQL


Exportar SQL Eliminación
Diálogo de Exportación SQL de Drops


Para exportar los Drops SQL a un fichero, pulsa el botón [Guardar en Fichero]. Se preguntará el nombre del fichero y el destino. Pulsa [Guardar] para escribir el script en el disco.

Cuando un shell SQL se abre, puede ser útil copiar el script al porta papeles y ejecutar directamente el shell SQL. Para copiar el script SQL al porta papeles pulsa el botón [Copiar al Porta Papeles].

Opciones del Drop SQL

La salida puede personalizarse usando las siguientes Opciones Generales y las Opciones de Drop SQL

Exportar solo tablas seleccionadas

Marca esta opción para exportar sólo las tablas seleccionadas. Las demás demás tablas no serán borradas en el fichero de script Drop.

Ordenar Tablas por Clave Foránea

Usa esta opción para cambiar el orden de creación. Por defecto las tablas se crean en orden alfabético. Cuando usas las claves foráneas es necesario cambiar el orden en que se eliminan las tablas.

Las tablas se borrarán en orden inverso a como fueron creadas.
Si hay una colección de relaciones cíclicas, las tablas no pueden ser borradas. Se mostrará un mensaje de error. Ten en cuenta que aún así puedes exportar las tablas en orden alfabético.

Conexiones a la Base de Datos

Varias funciones en DBDesigner 4 usan conexiones a Bases de Datos. Se usan para establecer una conexión a una base de datos al seleccionar el servidor y base de datos apropiados.

Crear una nueva Conexión de Base de Datos

Una nueva Conexión de Base de Datos se crea en el Diálogo de Conexiones de Bases de Datos.

Para crea una nueva Conexión a Base de Datos, pulsa sobre el botón de Nueva Conexión a Base de Datos. Se mostrará el Diálogo de Parámetros de Conexión. Especifica toda la información necesaria y pulsa OK para añadir la conexión a la lista de conexiones.

Conectar a una Base de Datos

Para conectar a una base de datos se usa el Diálogo de Conexión a Bases de Datos, igual que al crear una nueva Conexión de Bases de Datos.

Selecciona la conexión apropiada de la lista de conexiones. Entra un nombre de usuario y un password y pulsa el botón Conectar para establecer la conexión

A tener en cuenta

Para hacer cambios a la meta información en una base de datos es necesario conectar como un usuario con los derechos correctos. En MySQL el administrador de base de datos se llama root. Tiene todos los privilegios y puede crear una nueva base de datos o hacer cambios a cualquiera que ya exista. Los demás usuarios Los demás usuarios tienen permiso para modificar solamente las tablas para las que se le han especificado privilegios.

Para evitar problemas mientras se realiza la sincronización o se consulta una base de datos asegúrate que el usuario que usas para conectarte tienes suficientes privilegios.

El Diálogo de Conexión a Bases de Datos


Diálogo de Conexión a la BD
Diálogo de Conexión a Bases de Datos


El Diálogo de Conexión a Bases de Datos tiene tres áreas, el Árbol de Servidores de Red, La Lista de Conexiones y la sección de Usuario/Password.

Árbol de Servidores de Red

El Árbol de Servidores de Red muestra todos los servidores y sus bases de datos. Se usa como filtro para mostrar conexiones y para crear nuevas conexión a servidores de bases de datos.


Cuando el primer nodo, llamado [Todas las Conexiones] está seleccionado, todas las conexiones introducidas se mostrarán en la Lista de Conexiones.

Para mostrar todas las conexiones al servidor local de MySQL selecciona [MySQL]-[Localhost]

Para mostrar todas las conexiones a servidores MySQL en la red selecciona [MySQL]-[Network Hosts]

Para mostrar todas las conexiones a un servidor MySQL  específico de una red selecciona el nombre del servidor en el nodo [MySQL]-[Network Hosts]


Las conexiones a Oracle o ODBC pueden filtrarse de la misma manera.

Mostrar bases de Datos del Servidor

Para mostrar las bases de datos de un servidor dado pulsa en el icono [+] a la izquierda del nombre del servidor. DBDesigner 4 preguntará por el nombre de usuario y password que se utilizarán para validarse. Ten en cuenta que el usuario especificado debe tener los permisos adecuados para ejecutar un comando SQL SHOW DATABASES.

Entrar un nuevo Servidor

Después de la instalación de DBDesigner 4 es posible conectar únicamente al servidor local de MySQL. Para añadir un nuevo servidor de red haz lo  siguiente.

Para entrar un nuevo servidor, pulsa en [...] nodo listado bajo el [Network Hosts] en el nodo del tipo de base de datos deseado. Se mostrará el diálogo de Añadir nuevo Host.


Añadir nuevo Host
Diálogo de Añadir nuevo Servidor


Entrar el nombre del nodo seguido por una barra y su dirección IP. En lugar de la dirección IP el nombre de red del servidor puede especificarse, p.e. webserver o www.theserver.com.

Pulsa enter para crear en nuevo servidor en el Árbol de Servidores de Red

Cambiar los parámetros del Servidor

Para cambiar el nombre o la dirección IP de un servidor pulsa con el botón derecho en un Servidor. Se mostrará el menú popup de servidores.


Popup de Host
Menú popup de servidores


Selecciona la función que quieras del menú.

Eliminar un Servidor

Para eliminar un Servidor selecciona [Eliminar Host] del menú popup.

Crear una nueva base de datos

Es posible crear una nueva base de datos desde el Diálogo de Conexión a Base de Datos. Para crear una nueva base de datos muestra todos los servidores de bases de datos como ya se ha explicado. Pulsa el último nodo bajo el nodo del Servidor que tiene el texto [...]. Aparecerá el Diálogo de Nueva Base de Datos. Introduce el nombre de la base de datos y pulsa enter. Se creará la base de datos.

Eliminar base de datos

Es posible eliminar una base de datos desde el Diálogo de Conexión a Base de Datos. Para eliminar una base de datos muestra los servidores de bases de datos como ya se ha explicado. Pulsa sobre el nodo de base de datos con el botón derecho para mostrar el menú popup. Selecciona [Eliminar Base de Datos].


Ten en cuenta que una vez la base de datos ha sido eliminada no puede ser restaurada. Para recuperarla necesitarás una copia de seguridad.

Lista de Conexiones

La Lista de Conexiones muestra las conexiones seleccionadas en el Árbol de Servidores de Red. Pulsa en la conexión deseada para poner la conexión en la Sección de Usuario.

Creando una nueva conexión

Para crear una nueva conexión selecciona el Servidor la que conectar del Árbol de Servidores de Red. Visualiza los Servidores de base de datos. Ahora arrastra la base de datos a la que quieres conectar en la Lista de Conexiones. Se creará una nueva conexión.

En lugar de arrastrar la base de datos puedes seleccionar la base de datos con el botón izquierdo y pulsar el botón [Nueva Conexión a la Base de Datos seleccionada].

La lista de columnas

La lista tiene seis columnas. El nombre de la conexión muestra el nombre de la conexión. Haz una doble pulsación para cambiarlo.

Tipo muestra el tipo de base de datos a la que se refiere la conexión. Haz una doble pulsación sobre el tipo para cambiarlo.


Pulsa en el botón [...] para mostrar los parámetros de conexión.

La sección de Usuario

Cuando se selecciona una conexión a base de datos en la Lista de Conexiones se muestra el nombre de la conexión en la Sección de Usuario y DBDesigner 4 pregunta por el password de usuario. El password nunca se guarda en la conexión de base de datos por motivos de seguridad.

Pulsa return o el botón [Connect] para establecer la conexión con la base de datos. Si se realiza correctamente la conexión el diálogo de cierra. Si ocurre un error, p.e. ep password es erroneo, se muestra el error

Diálogo de Parámetros de Conexión

El Diálogo de Parámetros de Conexión se usa para cambiar la conexión.


Diálogo de Parámetros de Conexión
Diálogo de Parámetros de Conexión


Nombre de la Conexión

Cada Conexión de Base de Datos está definido por un nombre único.

IP de Host

Entra la dirección IP del servidor o su nombre de red. Es sólo necesario para conexiones con MySQL.

Nombre de la base de datos

Entra el nombre de la base de datos. Cuando uses el Driver de MySQL este es el nombre que se usará en el comando CREATE DATABASE SQL.

Cuando está seleccionado el Driver ODBC entra el Nombre de Origen de Datos ODBC (DNS).

Cuando uses el Driver Oracle entra el nombre de la conexión

Driver

Selecciona un driver de base de datos de la lista desplegable. Cuando se selecciona un nuevo driver todos los valores se restablecen a su valor inicial.

Nombre de Usuario

Especifica el nombre de usuario usado para conectar a la base de datos.

Password

Especifica el password a usar para conectar a la base de datos.

Descripción

Entra una descripción con algo de información acerca de la conexión a la base de datos.

Pestaña Avanzado

Atención. Modifica los parámetros de conexión avanzada únicamente si sabes lo que estás haciendo. El botón [Reiniciar por defecto] puede usarse para reiniciar los parámetros de conexión a su valor por defecto. Para añadir o borrar un parámetro usa los correspondientes botones.

Los parámetros por defecto pueden modificarse editando el fichero DBDesigner4_DBDefaultSettings.ini en el directorio de datos de DBDesigner 4.

La columna del servidor muestra la IP o el nombre del servidor entrado. Haz una doble pulsación en la IP/nombre de servidor para cambiarlo.

La columna base de datos muestra la conexión a base de datos. Haz una doble pulsación para cambiar el valor.

La columna de descripción muestra información adicional acerca de la conexión. Puede cambiarse haciendo una doble pulsación.

Sincronización de la Base de Datos

Para sincronizar el modelo con una base de datos selecciona [Base de datos]->[Sincronización con la Base de Datos] del menú principal. La sincronización también puede llamarse pulsando el botón [Sync] en la paleta de Herramientas. Ten en cuenta que un modelo vacío no puede sincronizarse.

Se mostrará el Diálogo de Conexión  a Base de Datos. Selecciona la conexión a la base de datos con la que se va a hacer la sincronización. Entra el password de usuario y pulsa [Conectar] para establecer la conexión.

Sincronizar con una nueva base de datos

La función de sincronización puede ejecutarse contra una base de datos vacía. Todas las tablas se crearán y se realizarán las inserciones de los Insert Estándar en las tablas.


Para sincronizar el modelo con la nueva base de datos llama al Sincronizador de Base de Datos. Se mostrará el Diálogo de Conexión de Base de Datos. Para crear una nueva base de datos muestra los Servidores de bases de datos y pulsa el nodo etiquetado como [...] tal y como se explica arriba. Pon nombre a la base de datos y crea una nueva conexión arrastrando el nodo de la base de datos a la Lista de Conexiones. Ahora, conecta a la nueva Base de Datos.


Sincronización de Base de Datos
Database Syncronisation

Opciones de Sincronización

Cuando se establezca la conexión a la base de datos de forma correcta se mostrará el Diálogo de Sincronización con Bases de Datos.

Conexión a la Base de Datos

El nombre de la conexión de la base de datos se mostrará en la parte de arriba. Para conectar a una base de datos diferente pulsa el botón derecho en el nombre de conexión. El Diálogo de Conexión a la Base de Datos se volverá a mostrar y podrá seleccionarse una nueva conexión.

Aplicar cambios a la Base de Datos

Esta opción está seleccionada por defecto. La base de datos se modificará para reflejar los cambios hechos en el modelo. El modelo no se modificará al ejecutar la sincronización.

Aplicar cambios al Modelo

Para modificar el modelo en lugar de la base de datos selecciona esta opción. La base de datos no se modificará al ejecutar la función de sincronización.

Esta función será activada en futuras versiones de DBDesigner 4. En estos momentos usa las funciones de Ingeniería Inversa en su lugar.

No eliminar Tablas existentes

Selecciona esta opción para mantener las tablas en la base de datos que no están presentes en el modelo. Si esta opción no está seleccionada esas tablas serán borradas.

Ejecuta Inserts Estándar cuando se Crean Nuevas Tablas

Si se activa esta opción los Inserts Estándar se insertarán en el nuevo crear tabla. Esta opción está seleccionada por defecto.

Sincronizar Inserts Estándar

Activa esta opción cuando cuando se han hecho cambios a los Inserts Standard. Las filas se compararán usando los campos de clave primaria. Si una fila en la base de datos coincide con una fila en los Inserts Standard se compararán el resto de valores del Insert Standard. Los valores que no figuren en el Insert Standard será ignorado. Se realizarán los cambios apropiados a las filas a la base de datos.

Las filas de la base de datos con un valor en la clave primaria que no coinciden con ninguna clave primaria en los Insert Standard se mantendrán sin cambios. Por ello esas filas introducidas manualmente se quedarán en la tabla aún cuando esta opción (Sincronizar Inserts Standard) esté seleccionada. Si un Insert Standard se borra en el modelo tendrá que ser borrado de la fila de la tabla de la base de datos manualmente.

Ejecutando la sincronización

La sincronización no puede deshacerse. Antes de ejecutarla comprueba todas las opciones seleccionadas. Verifica la Lista de Progreso que muestra la información de la conexión y el número de tablas en la base de datos y el modelo. La información de la conexión se mostrará [usuario@basededatos], p.e. [root@webshop].

Para ejecutar la sincronización pulsa el botón [Ejecutar] al final del diálogo.


La ejecución puede vigilarse a través de la Lista de Progreso. Se listarán todas las comprobaciones y cambios.

Ingeniería Inversa

Para llamar la función de Ingeniería Inversa selecciona [Base de Datos]->[Ingeniería Inversa] desde menú principal. La función también puede llamarse pulsando el botón [Rev.] en la Paleta de Herramientas.

Normalmente la función de Ingeniería Inversa se llamará con un modelo vacío. También es posible añadir las tablas a un modelo existente. Si las tablas deben crearse en un nuevo modelo seleciona [Archivo]->[Nuevo] desde el menú principal antes de llamar la función.

El Diálogo de la Base de Datos se mostrará. Selecciona o crea una conexión a la base de datos sobre la que se debe hacer la ingeniería inversa y establezca la conexión.


Diálogo de Ingenieria Inversa
Diálogo de Ingeniería Inversa


Cuando la conexión a la base de datos se establece correctamente se muetra el Diálogo de Ingeniería Inversa.

Conexión a Base de Datos

El nombre de la conexión a la base de datos se muestra en la parte superior. Para conectar a una base de datos diferentes pula el botón a la derecha del nombre de la conexión. Se mostrará de nuevo el Diálogo de Conexión a la Base de Datos y podrá seleccionarse una base de datos diferente.

Tablas

Selecciona todas las tablas de la base de datos que deben ser creadas en el modelo. Todas las tablas están seleccionadas por defecto. Para seleccionar todas las tablas cuando algunas de ellas han sido deseleccionadas pulsa el botón [Selecciona todas las Tablas]. Para deseleccionar todas las tablas pulsa el botón [Deseleccionar todas las Tablas].

Cuando se selecciona una Base de Datos de MS Access las tablas del sistema de MS Access se deseleccionan automáticamente.

Opciones Generales

Usa funciones específicas de MySQL

Selecciona esta opción cuando realices la ingenieria inversa en una base de datos MySQL. Las funciones específicas de MySQL como DESCRIBE TABLE se usarán para generar una copia más exacta de la estructura de la tabla. No usar esta opción con ninguna otra base de datos.

Usa funciones generales

Usa esta opción al realizar una ingenieria inversa de una base de datos que no sea MySQL.

Número de tablas en una fila

Al hacer la ingeniería inversa en una base de datos todas las bases de datos seleccionadas se colocan en filas y columnas en el lienzo de modelos. Esta opción especifica en número de tablas en una fila.

Construir Relaciones

Usa esta opción para permitir a DBDesigner 4 crear las relaciones entre las tablas de forma automática. Debe tenerse en cuenta que pueden cometerse errores. Así que simpre se debe comprobar las relaciones después de hacer la ingeniería inversa de la base de datos.

Crear Relaciones basadas en Claves Primarias

Selecciona está opción para crear relaciones entre tablas del modelo de forma automática. La relación se creará entre los campos de sus claves primarias. Cando los campos de claves primarias de una tabla están presentes en la otra se creará una relación 1:n.

Crear Relaciones basadas en nombre de Tablas

Selecciona esta opción para crear relaciones entre tablas del modelo de forma automática. La relación se creará entre las tablas y los nombres de las claves primarias. Se utilizará la siguiente convención para los nombres.  La clave primaria de la table se llamará ID + Nombre de la Tabla. Si el nombre de la clave primaria ya existe en otra tabla se creará una relación 1:n.

Usa substitución de Tipos de Datos

Selecciona esta opción si quieres que cambie algunos nombres de tipos de datos. Esta opción puede usarse para mapear diferentes tipos de datos para diferentes motores de bases de datos.

Por defecto estará seleccionada la Substitución de Tipos de Datos [MySQL Standard]. Esta substitución reemplazará las abreviaciones [int] y [dec] con los tipos[INTEGER] y [DECIMAL].

Para cambiar el nombre de un tipo de dato selecciona esta opción, cambia la Substitución de Tipos de Datos a [Definido por Usuario] y añade una linea a la Lista de Substituciones de Tipos de Datos. Usa el siguiente formato:
[AntiguoNombreDeTipo=NuevoNombreDeTipo], p.e. [int=INTEGER] reemplazará todos los tipos de datos [int] por tipos [INTEGER].

Ejecución de la función

Para ejecutar la función pulsa [Ejecutar] al final del diálogo.