Crearea de baze de date binar cu MySQL Workbench

În tutorialul de astăzi, veți învăța cum să utilizați un utilitar pentru modelarea bazei de date vizuale pentru a desena o diagramă a bazei de date și a genera automat SQL. Mai precis, vom examina modul de utilizare a MySQL Workbench, un instrument de proiectare a bazelor de date bazate pe platforme.

Ce este MySQL Workbench??

MySQL Workbench este un instrument puternic dezvoltat de MySQL cu trei domenii principale de funcționalitate:

  • Dezvoltare SQL: Înlocuiește browserul de interogări MySQL. Permite utilizatorului să se conecteze la o bază de date existentă și să editeze și să execute interogări SQL.
  • Modelarea datelor: Proiectarea și modelarea bazelor de date complete.
  • Administrarea bazelor de date: Înlocuiește administratorul MySQL. Interfață grafică pentru pornirea / oprirea serverelor, crearea conturilor de utilizator, editarea fișierelor de configurare etc..

În acest tutorial, ne vom concentra pe Modelarea datelor aspect pentru a crea o bază de date de la zero și apoi trebuie doar să aruncați o privire rapidă asupra editorului SQL pentru a executa scriptul SQL generat și pentru a crea baza de date în cadrul MySQL.

MySQL Workbench este disponibil pentru Windows, Linux și Mac OSX. Există două ediții diferite: Emisiunea comunitară OSS și comerciale Editie Standard. Ediția comunitară este licența Open Source și GPL, așa cum vă așteptați. Este pe deplin funcțională și este cea pe care o vom folosi în acest articol. Ediția comercială adaugă unele funcționalități suplimentare, cum ar fi validarea schemelor și a modelelor sau generarea de documente.

Notă: acest tutorial se bazează pe ediția comunitară OSS Edition versiunea 5.2 (5.2.16), aflată în prezent în versiune beta în momentul redactării (aprilie 2010).

Planificarea bazei noastre de date

Pentru a afla cum să folosiți MySQL Workbench, vom folosi ca exemplu o bază de date foarte simplă pentru clasele online. Să presupunem că un grup de profesori doresc să ofere cursuri online pentru mai multe discipline, folosind Skype sau orice alt program de conferințe video. Pentru micul nostru proiect, am decis că trebuie să stocăm următoarele informații:

Atunci când desenați diagrama noastră, va trebui să cunoaștem și relațiile dintre aceste grupuri de date; așa că mai bine ne gândim acum la asta!

  • Un profesor poate preda multe subiecte
  • Un subiect poate fi predat de mulți profesori
  • Fiecare clasă are doar un profesor
  • Un profesor poate preda multe clase
  • Un student poate participa la multe cursuri
  • O clasă are mulți studenți
  • O clasă poate avea câteva ore (într-o săptămână)
  • La o anumită zi și oră, pot exista mai multe clase
  • O clasă este despre un subiect
  • Un subiect poate fi predat în multe clase

În acest moment, avem toate informațiile de care avem nevoie pentru a întâlni vedeta acestui spectacol ...

Trimiteți în MySQL Workbench

Este timpul să lansăm Workbench. În partea de modelare a datelor de pe ecranul de pornire, faceți clic pe "Creați un nou model EER", și apare următorul ecran:

Atunci când creăm un nou model de bază de date, acesta conține schema implicită mydb. Îl putem redenumi și îl putem folosi ca schema DB. Un model de bază de date poate avea mai multe scheme diferite.

Catalogul din partea dreaptă va arăta fiecare element din schema noastră și ne va permite să tragem și să aruncăm elemente în diagrame dacă este necesar.

Având secțiunile separate pentru schemele fizice și diagramele EER, posibilitatea de a include mai multe scheme într-un model de bază de date poate fi confuză. Următoarea secțiune explică aceste concepte și modul în care acestea sunt legate.

Concepte clarificatoare

Schema fizică conține toate piesele necesare pentru a defini baza de date: tabele, coloane, tipuri, indici, constrângeri etc. Aceasta este ceea ce definim cu adevărat. Fiecare obiect adăugat în modelul grafic apare și în schema fizică. Este, de fapt, o modalitate vizuală de a defini schema noastră.

Putem avea mai multe scheme pentru același model de bază de date în același mod în care putem avea mai multe baze de date într-un server MySQL. Fiecare schemă va fi o bază de date MySQL. De exemplu, în ecranul următor, avem două file:

Dacă generăm scriptul SQL, vom avea două declarații separate CREATE DATABASE - de fapt, vom avea CREATE SCHEMA care este doar un sinonim.

CREEAZĂ SCHEMA DACĂ NU EXISTĂ "schema1"; CREEAZĂ SCHEMA DACĂ NU EXISTĂ "schema2";

"EER înseamnă Entitate-relație extinsă (sau îmbunătățită). Diagramele EER sunt doar o modalitate de modelare a datelor și a relațiilor dintre date utilizând simbolurile standard "

Acestea vor fi listate ca baze de date în cadrul gazdei serverului MySQL când se utilizează SHOW DATABASES.

Acum, ce este o diagramă EER ?. EER înseamnă Entitate-relație extinsă (sau îmbunătățită)>. Diagramele EER sunt doar o modalitate de modelare a datelor și a relațiilor dintre date utilizând simbolurile standard. Modelele EER pot fi complexe, dar MySQL Workbench utilizează doar un subset al tuturor elementelor grafice posibile, deoarece scopul acestei diagrame (în acest instrument) este de a avea fiecare element mapat în schema fizică.

Putem folosi o diagramă EER pentru a defini întreaga bază de date sau doar părți mici. De exemplu, putem avea o schemă cu cinci tabele definite și apoi să creați o diagramă nouă pentru a defini încă două tabele utilizând editorul vizual. Diagrama va conține numai două tabele, dar cele două tabele vor fi incluse și în schemă, împreună cu cele cinci.

Crearea tabelelor noastre

Înapoi la exemplul nostru inițial; trebuie să redenumiți schema implicită dând dublu clic pe nume. În acest moment, avem două posibilități: putem începe să adăugăm tabele în schema noastră fizică utilizând pictograma de adăugare a tabelului sau putem să începem o diagramă EER și să adăugăm toate tabelele acolo.

Prefer să adaug o nouă diagramă de la început și să creez vizual schema mea; cu toate acestea, pentru a arăta cum să procedăm cu ambele metode, vom crea primele două tabele în fila schemă și apoi vom continua cu schema EER.

Când faceți clic pe Adăugați tabelul pictograma, editorul de tabele se deschide ca o filă de mai jos:

Folosind editorul de tabele, schimbăm numele mesei și trecem la fila coloane (în filele de sub editor) pentru a intra în coloanele noastre. Putem alege tipul de date (există o listă derulantă cu toate tipurile de date MySQL), atribuim valoarea implicită, dacă este necesar și avem șapte casete de selectare pentru a marca oricare dintre următoarele proprietăți:

  • PK - Cheia primară
  • NN - Nu este nul
  • UQ - Unic
  • BIN - Binar
  • UN - Nesemnată
  • ZF - Zero umple
  • AI - Autoincrement

Du-te vizuale

Aceasta este o modalitate de a adăuga tabelele noastre, deși le putem crea și utilizând diagramele. Dacă faceți clic pe Adăugați o diagramă pictograma acum, vom începe o diagramă nouă, goală și nu asta ne dorim. Vrem ca cele două tabele pe care tocmai le-am creat să fie în diagramă.

Dacă mergem la meniu, selectați Model / Creare diagramă din obiecte de catalog, acum avem diagrama noastră și suntem gata să continuăm.

Selectați pictograma de masă din partea stângă; pointerul se schimbă într-o mână cu o masă mică. Apoi, faceți clic oriunde în panza pentru a crea o tabelă nouă.

Acum, trebuie doar să faceți dublu clic pe tabel, iar fila editorului pare să editați numele, coloanele, tipurile etc. - în același mod ca și înainte.

După introducerea detaliilor coloanei pentru tabele noi, vom fi gata să începem desenarea relațiilor.

Relații de desenare

În bara de instrumente verticală din stânga, avem șase instrumente disponibile pentru a crea relații.

Nu vă faceți griji cu privire la ultima, o vom explica mai târziu. Pentru relațiile 1: 1 și 1: n, avem două tipuri diferite de simboluri: identificarea și neidentificarea. Ce inseamna asta?

O relație este considerată a identifica când un tabel este complet dependent de celălalt pentru a exista.

O relație este considerată a identifica când un tabel este complet dependent de celălalt pentru a exista. Un rând din acel tabel depinde de un rând din celălalt tabel. Un exemplu comun este de a avea un tabel separat pentru a stoca telefoanele pentru utilizatori. Este posibil să fie necesar să îl aveți într-un alt tabel, deoarece pot exista mai multe telefoane pentru un utilizator, dar fiecare rând din tabel este dependent în întregime de utilizator - este aparține către utilizator.

Ar trebui să știți că relațiile au unele implicații. Dacă vrem să creăm tabele fizice în MySQL, relațiile trebuie să fie cartografiate într-un fel. Există câteva reguli pentru a mapa relațiile în tabele:

  • 1: 1 relații. Cheia primară pentru una dintre tabele este inclusă ca cheie străină în celălalt tabel.
  • 1: n relații. Tasta primară a tabelului din partea "1" este adăugată ca cheie străină în tabelul din partea "n".
  • n: m relații. Se creează un nou tabel (tabelul de îmbinare). Cheia primară este compusă din cheile primare din cele două tabele originale.

Relațiile de identificare sunt utilizate în mod obișnuit pentru tabelele de îmbinare create dintr-o relație multi-multi. Aceste tabele noi depind în totalitate de cele două tabele originale.

De asemenea, în cazul relațiilor de identificare 1: 1 și 1: n, cheia externă introdusă va face parte din cheia primară pentru tabelul respectiv, formând o cheie primară compusă.

Vestea bună este că MySQL Workbench cunoaște aceste reguli mai bine decât majoritatea dintre noi. Tocmai ne tragem linii, iar cheile străine sau mesele de îmbinare vor fi create automat. De asemenea, putem alege să o facem manual, așa cum vom vedea în curând.

Pentru a desena o relație, faceți clic pe pictograma, apoi faceți clic pe cele două tabele pentru a face referire. Pentru relațiile "unu-la-multe", faceți mai întâi clic pe "mai multe" tabele laterale, apoi pe tabelul "unu". Să vedem cum să o facem pentru relația dintre profesori și subiecți și pentru clasele de profesori 1: n.

Numele implicit atribuit cheilor externe și pentru tabelele de îmbinare pot fi modificate global în Editare / Preferințe / Tab, sau numai pentru prezentul proiect în România Opțiuni model / model.

Dacă nu vrem ca tabelele și cheile străine să fie generate în acest fel, putem folosi misteriosul "simbol al șaselea".

"Al șaselea simbol" creează o relație folosind coloanele existente, ceea ce înseamnă că ați inclus deja cheile străine necesare în tabelele dvs. și ați creat tabelele de îmbinare necesare (tabele de mapare n: m). Deoarece am creat deja aceste tabele Aliniere, nu avem nevoie de relații n: m; numai 1: n este disponibil.

Când avem toate relațiile definite, diagrama noastră ar trebui să arate așa:

Fiți conștienți de faptul că am folosit notația implicită MySQL Workbench pentru diagrame, dar puteți să le modificați Notă model / obiect și Notă de model / relație. Acesta este un exemplu al modelului nostru în notația clasică:

În acest moment, modelul nostru este gata și putem genera SQL pentru a crea baza de date MySQL.

Generarea SQL

Selectați Fișier / Exportare / Inginer Forward SQL CREATE Script. Suntem doar trei ecrane de experți de la generarea fișierului nostru!


Avem chiar opțiunea de a revizui și de a edita SQL generat înainte de ao salva:

Si asta e. Dacă faceți clic pe Finalizare, scriptul SQL va fi generat și salvat. Acum o putem folosi în orice fel dorim. Îl putem încărca utilizând clientul mysql de comandă:

mysql> SOURCE scriptName.sql

Sau, putem folosi MySQL Workbench pentru a termina lucrarea, conectarea la serverul MySQL și rularea scenariului.

Conectarea la un server MySQL

Selectați Baza de date / Gestionarea conexiunilor din meniu, apoi faceți clic pe NOU.

Dacă nu doriți să setați parola aici, vi se va solicita acest lucru când este necesar. Faceți clic pe "Test Connection" pentru a verifica dacă parametrii dvs. sunt corecte, apoi faceți clic pe închideți.

Acum, pentru a încărca scriptul, vom folosi editorul SQL. În meniul principal selectați Baze de date pentru baze de date / interogări; o fereastră vă solicită să selectați o conexiune, apoi se deschide fila editorului SQL.

Acum faceți clic pe pictograma fulger pentru a executa scriptul SQL, iar baza de date va fi generată!

De asemenea, am putut genera baza de date MySQL direct din model, fără a face referire la fișierul real, folosind Bază de date / Inginer din meniu; cu toate acestea, mi se pare util să generez scenariul și apoi să îl folosesc așa cum doresc.

Concluzie

MySQL Workbench este un instrument impresionant. Am văzut doar câteva posibilități de bază în partea de modelare a datelor și am privit doar la editorul SQL în a doua jumătate a acestui tutorial. Am învățat cum să creăm o bază de date vizuală și să tragem diagrame care pot fi păstrate ca documentație. Puteți exporta diagramele ca fișier PNG, SVg, PDF sau PostScript. Vă mulțumim pentru lectură și spuneți-mi ce credeți!

Cod