Creazione di database visivi con MySQL Workbench

Nel tutorial di oggi, imparerai come utilizzare un'utilità di modellazione del database visivo per disegnare un diagramma di database e generare automaticamente SQL. Nello specifico, esamineremo come utilizzare MySQL Workbench, uno strumento di progettazione di database visivo multipiattaforma.

Cos'è MySQL Workbench?

MySQL Workbench è un potente strumento sviluppato da MySQL con tre aree principali di funzionalità:

  • Sviluppo SQL: Sostituisce il browser di query MySQL. Consente all'utente di connettersi a un database esistente e modificare ed eseguire query SQL.
  • Modellazione dei dati: Progettazione e modellazione di database visivi completi.
  • Amministrazione del database: Sostituisce l'amministratore di MySQL. Interfaccia grafica per avviare / arrestare server, creare account utente, modificare file di configurazione, ecc.

In questo tutorial, ci concentreremo su Modellazione dei dati aspetto per creare un database da zero, e quindi avere solo un rapido sguardo all'editor SQL per eseguire il nostro script SQL generato e creare il database all'interno di MySQL.

MySQL Workbench è disponibile per Windows, Linux e Mac OSX. Ci sono due diverse edizioni: la Edizione OSS della comunità e lo spot edizione standard. La community edition è Open Source e GPL licenziate, come ci si aspetterebbe. È completamente funzionante, ed è quello che useremo in questo articolo. L'edizione commerciale aggiunge alcune funzionalità aggiuntive, come la convalida dello schema e del modello o la generazione di documentazione.

Nota: questo tutorial è basato sulla versione 5.2 della Community OSS Edition (5.2.16), attualmente in versione beta al momento della stesura (aprile 2010).

Pianificazione del nostro database

Per imparare come usare MySQL Workbench, utilizzeremo un database molto semplice per le lezioni online come esempio. Supponiamo che un gruppo di insegnanti voglia offrire lezioni online per più argomenti, utilizzando Skype o qualsiasi altro software di videoconferenza. Per il nostro piccolo progetto, abbiamo deciso che abbiamo bisogno di memorizzare le seguenti informazioni:

Nel disegnare il nostro diagramma, avremo bisogno di conoscere anche le relazioni tra questi gruppi di dati; quindi pensaci meglio ora!

  • Un insegnante può insegnare molte materie
  • Un soggetto può essere insegnato da molti insegnanti
  • Ogni classe ha un solo insegnante
  • Un insegnante può insegnare molte classi
  • Uno studente può frequentare molte classi
  • Una classe ha molti studenti
  • Una classe può avere diverse ore (in una settimana)
  • In un giorno e un'ora specifici, possono esserci diverse classi
  • Una classe riguarda un argomento
  • Un soggetto può essere insegnato in molte classi

A questo punto, abbiamo tutte le informazioni di cui abbiamo bisogno per incontrare la star di questo spettacolo ...

Invia MySQL Workbench

È ora di lanciare Workbench. Nella parte relativa alla modellazione dei dati della schermata iniziale, facciamo clic 'Crea nuovo modello EER', e appare la seguente schermata:

Quando creiamo un nuovo modello di database, contiene lo schema mydb predefinito. Possiamo rinominarlo e usarlo come nostro schema DB. Un modello di database può avere diversi schemi diversi.

Il catalogo sulla destra mostrerà ogni elemento nel nostro schema e ci permetterà di trascinare gli elementi nei diagrammi se necessario.

Avere le sezioni separate per Schemi fisici e Schemi EER e la possibilità di includere diversi schemi in un modello di database può essere fonte di confusione. La prossima sezione spiega questi concetti e come sono correlati.

Concetti chiarificatori

Lo schema fisico contiene tutti i pezzi necessari per definire il database: tabelle, colonne, tipi, indici, vincoli, ecc. Questo è ciò che stiamo veramente definendo. Ogni oggetto aggiunto nel modello grafico viene visualizzato anche nello schema fisico. È, infatti, un modo visivo per definire il nostro schema.

Possiamo avere diversi schemi per lo stesso modello di database nello stesso modo in cui possiamo avere diversi database in un server MySQL. Ogni schema sarà un database MySQL. Ad esempio, nella schermata successiva, abbiamo due schede dello schema:

Se generiamo lo script SQL, avremo due istruzioni CREATE DATABASE separate - in realtà avremo CREATE SCHEMA che è solo un sinonimo.

CREA SCHEMA SE NON ESISTE 'schema1'; CREA SCHEMA SE NON ESISTE 'schema2';

"EER sta per Relazione Entità Estesa (o Avanzata). I diagrammi EER sono solo un modo per modellare i dati e le relazioni tra i dati utilizzando simboli standard "

Verranno elencati come database all'interno dell'host del server MySQL quando si utilizza SHOW DATABASES.

Ora, cos'è un diagramma EER ?. EER sta per Relazione Entità Estesa (o Avanzata)>. I diagrammi EER sono solo un modo per modellare i dati e le relazioni tra i dati utilizzando simboli standard. I modelli EER possono essere complessi, ma MySQL Workbench utilizza solo un sottoinsieme di tutti gli elementi grafici possibili, poiché lo scopo di questo diagramma (in questo strumento) è di avere ogni elemento mappato allo schema fisico.

Possiamo usare un diagramma EER per definire l'intero database, o solo piccole parti. Ad esempio, possiamo avere uno schema con cinque tabelle definite e quindi creare un nuovo diagramma per definire altre due tabelle utilizzando l'editor visuale. Il diagramma conterrà solo due tabelle, ma quelle due tabelle saranno incluse nello schema, insieme alle cinque precedenti.

Creare le nostre tabelle

Torniamo al nostro esempio iniziale; dobbiamo rinominare lo schema predefinito facendo doppio clic sul nome. A questo punto, abbiamo due possibilità: possiamo iniziare ad aggiungere tabelle al nostro schema fisico usando l'icona Aggiungi tabella, oppure possiamo iniziare un diagramma EER e aggiungere tutti i tavoli lì.

Preferisco aggiungere un nuovo diagramma dall'inizio e creare visivamente il mio schema; tuttavia, per mostrare come farlo con entrambi i metodi, creeremo le prime due tabelle nella scheda dello schema e quindi continueremo con il diagramma EER.

Quando fai clic sul Aggiungi tabella icona, l'editor delle tabelle si apre come una scheda qui sotto:

Usando l'editor delle tabelle, cambiamo il nome della tabella e passiamo alla scheda delle colonne (nelle schede sotto l'editor) per inserire le nostre colonne. Possiamo scegliere il tipo di dati (esiste un elenco a discesa con tutti i tipi di dati MySQL), assegnare il valore predefinito, se necessario, e abbiamo sette caselle di controllo per contrassegnare una delle seguenti proprietà:

  • PK - Chiave primaria
  • NN: non null
  • UQ - Unico
  • BIN - Binario
  • ONU - Non firmato
  • ZF - Zero fill
  • AI - Autoincrement

Vai visivo

Questo è un modo per aggiungere le nostre tabelle, sebbene possiamo anche crearle usando i diagrammi. Se clicchiamo sul Aggiungi diagramma icona ora, inizieremo un nuovo diagramma vuoto, e non è quello che vogliamo. Vogliamo le due tabelle che abbiamo appena creato per essere nel diagramma.

Se andiamo al menu, selezionare Modello / Crea diagramma da oggetti catalogo, ora abbiamo il nostro diagramma e siamo pronti a continuare.

Seleziona l'icona della tabella a sinistra; il puntatore si trasforma in una mano con un piccolo tavolo. Quindi, fai clic su un punto qualsiasi nell'area di disegno per creare una nuova tabella.

Ora devi solo fare doppio clic sulla tabella, e la scheda dell'editor appare per modificare il nome, le colonne, i tipi, ecc. - allo stesso modo di prima.

Dopo aver inserito i dettagli della colonna per le nuove tabelle, saremo pronti per iniziare a disegnare le relazioni.

Relazioni di disegno

Nella barra degli strumenti verticale a sinistra, abbiamo sei strumenti disponibili per creare relazioni.

Non preoccuparti per l'ultimo, lo spiegheremo più tardi. Per le relazioni 1: 1 e 1: n, abbiamo due diversi tipi di simboli: identificativo e non identificante. Cosa significa?

Si considera che una relazione identifichi quando una tabella dipende interamente dall'altra per esistere.

Si considera che una relazione identifichi quando una tabella dipende interamente dall'altra per esistere. Una riga in quella tabella dipende da una riga nell'altra tabella. Un esempio comune è quello di avere una tabella separata per archiviare i telefoni per gli utenti. Potrebbe essere necessario averlo in un'altra tabella, perché possono esserci più telefoni per un utente, ma ogni riga in quella tabella dipende interamente dall'utente: appartiene per l'utente.

Dovresti essere consapevole che le relazioni hanno alcune implicazioni. Se vogliamo creare le tabelle fisiche in MySQL, le relazioni devono essere mappate in qualche modo. Ci sono alcune regole per mappare le relazioni in tabelle:

  • Relazioni 1: 1. La chiave primaria per una delle tabelle è inclusa come chiave esterna nell'altra tabella.
  • 1: n relazioni. La chiave primaria della tabella nel lato "1" viene aggiunta come chiave esterna nella tabella nel lato "n".
  • n: m relazioni. Viene creata una nuova tabella (join table). La chiave primaria è composta dalle chiavi primarie delle due tabelle originali.

L'identificazione delle relazioni viene in genere utilizzata per le tabelle di join create da una relazione molti-a-molti. Queste nuove tabelle dipendono interamente dalle due tabelle originali.

Inoltre, nel caso delle relazioni di identificazione 1: 1 e 1: n, la chiave esterna introdotta sarà parte della chiave primaria per quella tabella, formando una chiave primaria composta.

La buona notizia è che MySQL Workbench conosce queste regole meglio della maggior parte di noi. Disegniamo semplicemente le nostre linee e le chiavi esterne o le tabelle di join verranno create automaticamente. Possiamo anche scegliere di farlo manualmente, come vedremo tra poco.

Per disegnare una relazione, fare clic sull'icona, quindi fare clic sulle due tabelle correlate. Per le relazioni uno-a-molti, prima fai clic sul "più" side table e poi sul side table "uno". Vediamo come farlo per la relazione n: m tra insegnanti e soggetti e per le classi di insegnanti 1: n.

Il nome predefinito assegnato per le chiavi esterne e per le tabelle di join può essere modificato a livello globale in Modifica / Preferenze / Scheda Modello, o solo per il presente progetto in Opzioni modello / modello.

Se non vogliamo che vengano generate tabelle e chiavi esterne in questo modo, possiamo usare il misterioso "sesto simbolo".

Il "sesto simbolo" crea una relazione usando le colonne esistenti, il che significa che hai già incluso le chiavi esterne necessarie nelle tue tabelle e creato le tabelle di unione necessarie (n: m tabelle di mappatura). Poiché abbiamo già creato queste tabelle Join, non abbiamo bisogno di n: m relazioni; solo 1: n è disponibile.

Quando abbiamo definito tutte le nostre relazioni, il nostro diagramma dovrebbe apparire così:

Si noti che abbiamo utilizzato la notazione predefinita MySQL Workbench per i diagrammi, ma è possibile modificarla Notazione modello / oggetto e modello / notazione relazione. Questo è un esempio del nostro modello nella notazione classica:

A questo punto, il nostro modello è pronto e possiamo generare l'SQL per creare il database MySQL.

Generazione di SQL

Selezionare Script SQL CREATE File / Export / Forward Engineer. Siamo solo a tre schermate della procedura guidata per generare il nostro file!


Abbiamo persino la possibilità di rivedere e modificare l'SQL generato prima di salvarlo:

E questo è tutto. Facendo clic su Fine, lo script SQL verrà generato e salvato. Ora, possiamo usarlo in qualsiasi modo desideriamo. Possiamo caricarlo usando il client mysql della riga di comando:

mysql> SOURCE scriptName.sql

Oppure, possiamo usare MySQL Workbench per terminare il lavoro, collegarci al nostro server MySQL ed eseguire lo script.

Connessione a un server MySQL

Selezionare Database / Gestisci connessioni dal menu e fare clic NUOVO.

Se non si desidera impostare la password qui, verrà richiesto quando necessario. Fai clic su "Verifica connessione" per verificare se i parametri sono corretti, quindi fai clic su Chiudi.

Ora, per caricare lo script, useremo l'editor SQL. Nel menu principale seleziona Database / Database delle query; una finestra richiede di selezionare una connessione, quindi viene visualizzata la scheda dell'editor SQL.

Ora fai clic sull'icona a forma di fulmine per eseguire lo script SQL e il tuo database verrà generato!

Potremmo anche aver generato il database MySQL direttamente dal modello, senza fare riferimento al file reale, usando Database / Ingegnere di inoltro dal menu; tuttavia, trovo utile generare lo script e quindi usarlo come vorrei.

Conclusione

MySQL Workbench è uno strumento straordinario. Abbiamo visto solo alcune possibilità di base nella parte di modellazione dei dati, e solo sbirciato l'editor SQL nella seconda parte di questo tutorial. Abbiamo imparato come creare un database visivamente e disegnare diagrammi che possono essere conservati come documentazione. È possibile esportare i diagrammi come file PNG, SVg, PDF o PostScript. Grazie per la lettura, e fammi sapere cosa ne pensi!