sql >> Base de Datos >  >> RDS >> Mysql

Creación de bases de datos visuales 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 SQL automáticamente. Específicamente, revisaremos cómo usar MySQL Workbench, una herramienta de diseño de base de datos visual multiplataforma.

¿Qué es MySQL Workbench?

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

  • Desarrollo SQL :Reemplaza el navegador de consultas MySQL. Permite al usuario conectarse a una base de datos existente y editar y ejecutar consultas SQL.
  • Modelado de datos :Diseño y modelado completo de bases de datos visuales.
  • Administración de bases de datos :reemplaza 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 eche un vistazo rápido al editor 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 la comercial Standard Edition . La edición comunitaria es de código abierto y tiene licencia GPL, como era de esperar. Es completamente funcional, y es el que usaremos en este artículo. La edición comercial añade algunas funcionalidades extra, como la validación de esquemas y modelos 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).

Planeando nuestra Base de Datos

Para aprender a usar MySQL Workbench, usaremos como ejemplo una base de datos muy simple para clases en línea. Supongamos que un grupo de profesores quiere ofrecer clases en línea de 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 será mejor que lo pensemos ahora!

  • Un maestro puede enseñar muchas materias
  • Una materia puede ser enseñada por muchos profesores
  • Cada clase tiene un solo profesor
  • Un maestro puede enseñar muchas clases
  • Un estudiante puede asistir a muchas clases
  • Una clase tiene muchos estudiantes
  • Una clase puede tener varias horas (en una semana)
  • En un día y hora en particular, puede haber varias clases
  • Una clase es sobre un tema
  • Se puede enseñar una materia 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 cambiarle el nombre 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 en los diagramas si es necesario.

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

Aclaración de conceptos

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 aparece en el esquema físico. De hecho, es una forma visual de definir nuestro esquema.

Podemos tener varios esquemas para el mismo modelo de base de datos de la misma forma 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 declaraciones CREATE DATABASE separadas; en realidad, tendremos CREATE SCHEMA, que es solo un sinónimo.

CREATE SCHEMA IF NOT EXISTS `schema1`;
CREATE SCHEMA IF NOT EXISTS `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 usando símbolos estándar"

Aparecerán como bases de datos dentro del host del servidor MySQL cuando se utilice MOSTRAR BASES DE DATOS.

Ahora bien, ¿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 cada elemento mapeado 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 contendrá solo dos tablas, pero esas dos tablas también se incluirán en el esquema, junto con las cinco anteriores.

Creando nuestras Tablas

Volviendo 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 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, crearemos las dos primeras tablas en la pestaña de esquema y luego continuaremos con el Diagrama EER.

Al hacer clic en Agregar tabla icono, el editor de tablas se abre como una pestaña a continuación:

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 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 principal
  • NN - No nulo
  • UQ - Único
  • BIN - Binario
  • ONU - Sin firmar
  • ZF - Relleno cero
  • AI - Incremento automático

Hazte visual

Esta es una forma de agregar nuestras tablas, aunque también podemos crearlas usando los diagramas. Si hacemos clic en Agregar diagrama icon ahora, comenzaremos un nuevo diagrama 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 desde Objetos del Catálogo , ahora tenemos nuestro diagrama y estamos listos para continuar.

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

Ahora solo tiene que hacer doble clic en la tabla y aparecerá la pestaña del editor para editar el nombre, las columnas, los tipos, etc., de la misma manera que lo hicimos 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 de la izquierda, tenemos seis herramientas disponibles para crear relaciones.

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

Se considera que una relación se identifica cuando una tabla depende completamente de la otra para existir.

Se considera que una relación se identifica cuando una tabla depende completamente de la otra para existir. Una fila en esa tabla depende de una fila en la otra tabla. Un ejemplo común es tener una mesa 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 de 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 mapearse de alguna manera. Hay algunas reglas para mapear relaciones en tablas:

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

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

Además, en el caso de relaciones de identificación 1:1 y 1:n, la clave externa introducida formará parte de la clave primaria de 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 foráneas o 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 relacionarlas. Para las relaciones de uno a varios, haga clic primero 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 la relación 1:n profesores-clases.

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

Si no queremos que se generen tablas y claves foráneas de esta manera, podemos usar 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 externas necesarias en sus tablas y ha creado las tablas de unión necesarias (tablas de mapeo n:m). Dado que ya hemos creado estas tablas de Unión, no necesitamos relaciones n:m; solo 1:n está disponible.

Cuando tengamos 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 cambiarla en Notación de modelo/objeto 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

Seleccione Archivo/Exportar/Reenviar ingeniería 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 queramos. Podemos cargarlo usando el cliente mysql de línea de comandos:

mysql> FUENTE scriptName.sql

O podemos usar MySQL Workbench para terminar el trabajo, conectándonos a nuestro servidor MySQL y ejecutando el script.

Conexión a un servidor MySQL

Seleccione Base de datos/Administrar 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 SQL. En el menú principal, seleccione Base de datos/Base de datos de consulta; una ventana le solicita que seleccione una conexión y luego se abre la pestaña del editor de 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 Database/Forward Engineer del menú; sin embargo, encuentro útil generar el script y luego usarlo como deseo.