Creación visual de bases de datos con MySQL Workbench

En el tutorial de hoy, aprenderá cómo usar una utilidad de modelado de base de datos visual para dibujar un diagrama de base de datos y generar automáticamente SQL. Específicamente, revisaremos cómo usar MySQL Workbench, una herramienta de diseño de base de datos visual y multiplataforma..

¿Qué es MySQL Workbench??

MySQL Workbench es una poderosa herramienta desarrollada por MySQL con tres áreas principales de funcionalidad:

  • Desarrollo de SQL: Reemplaza el buscador de consultas MySQL. Permite al usuario conectarse a una base de datos existente y editar y ejecutar consultas SQL.
  • Modelado de datos: Diseño de bases de datos visuales completas y modelado..
  • Administración de base de datos: Sustituye al administrador de MySQL. Interfaz gráfica para iniciar / detener servidores, crear cuentas de usuario, editar archivos de configuración, etc..

En este tutorial, nos centraremos en el Modelado de datos Aspecto para crear una base de datos desde cero, y luego echar un vistazo rápido al editor de SQL para ejecutar nuestro script SQL generado y crear la base de datos dentro de MySQL.

MySQL Workbench está disponible para Windows, Linux y Mac OSX. Hay dos ediciones diferentes: la Community OSS Edition y el comercial edición estándar. La edición comunitaria es Open Source y GPL con licencia, como es de esperar. Es totalmente funcional y es el que usaremos en este artículo. La edición comercial agrega algunas funcionalidades adicionales, como la validación de modelos y esquemas o la generación de documentación..

Nota: este tutorial se basa en Community OSS Edition versión 5.2 (5.2.16), actualmente en versión beta en el momento de la redacción (abril de 2010).

Planificación de nuestra base de datos

Para aprender a usar MySQL Workbench, usaremos una base de datos muy simple para clases en línea como ejemplo. Supongamos que un grupo de profesores quiere ofrecer clases en línea para varias materias, utilizando Skype o cualquier otro software de videoconferencia. Para nuestro pequeño proyecto, hemos decidido que necesitamos almacenar la siguiente información:

Al dibujar nuestro diagrama, también necesitaremos conocer las relaciones entre estos grupos de datos; así que mejor pensemos en eso ahora!

  • Un profesor puede enseñar muchas materias.
  • Una asignatura puede ser enseñada por muchos profesores.
  • Cada clase tiene un solo profesor.
  • Un profesor puede enseñar muchas clases.
  • Un alumno puede asistir a muchas clases.
  • Una clase tiene muchos estudiantes
  • Una clase puede tener varias horas (en una semana)
  • En un día y una hora en particular, puede haber varias clases
  • Una clase es sobre un tema
  • Una materia puede enseñarse en muchas clases.

En este punto, tenemos toda la información que necesitamos para conocer a la estrella de este espectáculo ...

Enviar en MySQL Workbench

Es hora de lanzar Workbench. En la parte de modelado de datos de la pantalla de inicio, hacemos clic en 'Crear nuevo modelo EER', y aparece la siguiente pantalla:

Cuando creamos un nuevo modelo de base de datos, contiene el esquema mydb predeterminado. Podemos renombrarlo y usarlo como nuestro esquema de base de datos. Un modelo de base de datos puede tener varios esquemas diferentes.

El catálogo de la derecha mostrará todos los elementos de nuestro esquema y nos permitirá arrastrar y soltar elementos a los diagramas, si es necesario..

Tener las secciones separadas para los diagramas de esquemas físicos y EER, y la posibilidad de incluir varios esquemas en un modelo de base de datos puede ser confuso. La siguiente sección explica estos conceptos y cómo se relacionan..

Conceptos clarificadores

El esquema físico contiene todas las piezas necesarias para definir la base de datos: tablas, columnas, tipos, índices, restricciones, etc. Esto es lo que realmente estamos definiendo. Cada objeto agregado en el modelo gráfico también se muestra en el esquema físico. Es, de hecho, una forma visual de definir nuestro esquema..

Podemos tener varios esquemas para el mismo modelo de base de datos de la misma manera que podemos tener varias bases de datos en un servidor MySQL. Cada esquema será una base de datos MySQL. Por ejemplo, en la siguiente pantalla, tenemos dos pestañas de esquema:

Si generamos el script SQL, tendremos dos sentencias CREATE DATABASE separadas, en realidad tendremos CREATE SCHEMA, que es solo un sinónimo.

CREAR ESQUEMA SI NO EXISTE 'schema1'; CREAR ESQUEMA SI NO EXISTE 'schema2';

"EER significa Relación de entidad extendida (o mejorada). Los diagramas EER son solo una forma de modelar los datos y las relaciones entre los datos utilizando símbolos estándar "

Se enumerarán como bases de datos dentro del host del servidor MySQL cuando se usen SHOW DATABASES.

Ahora, ¿qué es un diagrama EER? EER significa Relación de entidad extendida (o mejorada)>. Los diagramas EER son solo una forma de modelar los datos y las relaciones entre los datos utilizando símbolos estándar. Los modelos EER pueden ser complejos, pero MySQL Workbench usa solo un subconjunto de todos los elementos gráficos posibles, porque el propósito de este diagrama (en esta herramienta) es tener todos los elementos asignados al esquema físico.

Podemos usar un diagrama EER para definir la base de datos completa, o solo partes pequeñas. Por ejemplo, podemos tener un esquema con cinco tablas definidas y luego crear un nuevo diagrama para definir dos tablas más usando el editor visual. El diagrama solo contendrá dos tablas, pero esas dos tablas también se incluirán en el esquema, junto con las cinco anteriores..

Creando nuestras tablas

De vuelta a nuestro ejemplo inicial; tenemos que cambiar el nombre del esquema predeterminado haciendo doble clic en el nombre. En este punto, tenemos dos posibilidades: podemos comenzar a agregar tablas a nuestro esquema físico usando el ícono de agregar tabla, o podemos comenzar un Diagrama de EER y agregar todas las tablas allí..

Prefiero agregar un nuevo diagrama desde el principio y crear mi esquema visualmente; sin embargo, para mostrar cómo hacerlo con ambos métodos, vamos a crear las dos primeras tablas en la pestaña del esquema y luego continuar con el Diagrama EER.

Cuando haces clic en el Agregar tabla Icono, el editor de tablas se abre como una pestaña debajo:

Usando el editor de tablas, cambiamos el nombre de la tabla y cambiamos a la pestaña de columnas (en las pestañas debajo del editor) para ingresar a nuestras columnas. Podemos elegir el tipo de datos (hay una lista desplegable con todos los tipos de datos de MySQL), asignar un valor predeterminado, si es necesario, y tenemos siete casillas de verificación para marcar cualquiera de las siguientes propiedades:

  • PK - Clave primaria
  • NN - No nulo
  • UQ - Único
  • BIN - Binario
  • ONU - Sin firmar
  • ZF - Relleno Cero
  • AI - Autoincremento

Ir visual

Esta es una forma de agregar nuestras tablas, aunque también podemos crearlas usando los diagramas. Si hacemos clic en el Añadir diagrama Ahora, comenzaremos con un diagrama nuevo y vacío, y eso no es lo que queremos. Queremos que las dos tablas que acabamos de crear estén en el diagrama..

Si vamos al menú, seleccionamos Modelar / Crear Diagrama a partir de Objetos de Catálogo, Ahora tenemos nuestro diagrama, y ​​estamos listos para continuar..

Seleccione el icono de la tabla a la izquierda; El puntero cambia a una mano con una mesita. A continuación, haga clic en cualquier lugar del lienzo para crear una nueva tabla..

Ahora solo tiene que hacer doble clic en la tabla y aparece la pestaña del editor para editar el nombre, las columnas, los tipos, etc., de la misma manera que antes..

Después de ingresar los detalles de la columna para las nuevas tablas, estaremos listos para comenzar a dibujar las relaciones.

Relaciones de dibujo

En la barra de herramientas vertical a la izquierda, tenemos seis herramientas disponibles para crear relaciones.

No te preocupes por el último, lo explicaremos más tarde. Para las relaciones 1: 1 y 1: n, tenemos dos tipos diferentes de símbolos: identificación y no identificación. Qué significa eso?

Una relación se considera identificada cuando una tabla depende completamente de la otra para existir.

Una relación se considera identificada cuando una tabla depende completamente de la otra para que exista. Una fila en esa tabla depende de una fila en la otra tabla. Un ejemplo común es tener una tabla separada para almacenar teléfonos para los usuarios. Puede ser necesario tenerlo en otra tabla, porque puede haber varios teléfonos para un usuario, pero cada fila en esa tabla depende completamente del usuario. pertenece al usuario.

Debes ser consciente de que las relaciones tienen algunas implicaciones. Si queremos crear las tablas físicas en MySQL, las relaciones deben ser mapeadas de alguna manera. Hay algunas reglas para asignar relaciones en tablas:

  • Relaciones 1: 1. La clave principal para una de las tablas se incluye como clave externa en la otra tabla.
  • 1: n relaciones. La clave principal de la tabla en el lado '1' se agrega como clave externa en la tabla en el lado 'n'.
  • n: m relaciones. Se crea una nueva tabla (combinación de tablas). La clave principal se compone de las claves primarias de las dos tablas originales.

Las relaciones de identificación se utilizan normalmente para las tablas de unión creadas a partir de una relación de muchos a muchos. Estas nuevas tablas dependen completamente de las dos tablas originales.

Además, en el caso de las relaciones de identificación 1: 1 y 1: n, la clave foránea introducida formará parte de la clave primaria para esa tabla, formando una clave primaria compuesta.

La buena noticia es que MySQL Workbench conoce estas reglas mejor que la mayoría de nosotros. Simplemente dibujamos nuestras líneas y las claves externas o las tablas de unión se crearán automáticamente. También podemos optar por hacerlo manualmente, como veremos en breve..

Para dibujar una relación, haga clic en el icono y luego haga clic en las dos tablas para relacionar. Para las relaciones de uno a muchos, primero haga clic en la tabla lateral "varios" y luego en la tabla lateral "uno". Veamos cómo hacerlo para la relación n: m profesores-asignaturas, y para las clases 1: n profesores.

El nombre predeterminado asignado para las claves foráneas y para las tablas de unión se puede cambiar globalmente en Editar / Preferencias / Pestaña Modelo, o solo para el presente proyecto en Modelo / Opciones de modelo.

Si no queremos que las tablas y las claves externas se generen de esta manera, podemos utilizar el misterioso "sexto símbolo".

El "sexto símbolo" crea una relación utilizando columnas existentes, lo que significa que ya ha incluido las claves foráneas necesarias en sus tablas y ha creado las tablas de unión necesarias (tablas de mapeo n: m). Como ya hemos creado estas tablas de unión, no necesitamos relaciones n: m; solo 1: n esta disponible.

Cuando tenemos todas nuestras relaciones definidas, nuestro diagrama debería verse así:

Tenga en cuenta que hemos estado usando la notación predeterminada de MySQL Workbench para los diagramas, pero puede cambiar eso en Modelo / Notación de Objetos y Notación de Modelo / Relación. Este es un ejemplo de nuestro modelo en notación clásica:

En este punto, nuestro modelo está listo y podemos generar el SQL para crear la base de datos MySQL.

Generando SQL

Seleccionar Archivo / Exportar / Forward Engineer SQL CREATE Script. Estamos a solo tres pantallas de asistente de generar nuestro archivo!


Incluso tenemos la opción de revisar y editar el SQL generado antes de guardarlo:

Y eso es. Al hacer clic en Finalizar, se generará y guardará el script SQL. Ahora, podemos usarlo de la forma que deseemos. Podemos cargarlo usando el cliente mysql de la línea de comandos:

mysql> FUENTE scriptName.sql

O bien, podemos usar MySQL Workbench para finalizar el trabajo, conectarnos a nuestro servidor MySQL y ejecutar el script.

Conectándose a un servidor MySQL

Seleccionar Base de datos / Gestionar conexiones en el menú, y haga clic en NUEVO.

Si no desea establecer la contraseña aquí, se le solicitará cuando sea necesario. Haga clic en "Probar conexión" para verificar si sus parámetros son correctos, y luego haga clic en cerrar.

Ahora, para cargar el script, usaremos el editor de SQL. En el menú principal seleccione. Base de datos / base de datos de consultas; una ventana le solicita que seleccione una conexión, y luego se abre la pestaña del editor SQL.

Ahora haga clic en el icono del rayo para ejecutar el script SQL, y se generará su base de datos!

También podríamos haber generado la base de datos MySQL directamente desde el modelo, sin hacer referencia al archivo real, usando Base de datos / Ingeniero Delantero desde el menu; Sin embargo, me resulta útil generar el script y luego usarlo como deseo..

Conclusión

MySQL Workbench es una herramienta impresionante. Solo hemos visto algunas posibilidades básicas en la parte de modelado de datos, y solo hemos echado un vistazo al editor de SQL en la segunda mitad de este tutorial. Aprendimos cómo crear una base de datos visualmente y dibujar diagramas que se pueden guardar como documentación. Puede exportar los diagramas como un archivo PNG, SVg, PDF o PostScript. Gracias por leer, y dejame saber que piensas!