Visual Database Creation med MySQL Workbench

I dagens veiledning lærer du hvordan du bruker en visuell databasemodelleringsverktøy for å tegne et databasediagram og automatisk generere SQL. Spesielt vil vi vurdere hvordan du bruker MySQL Workbench, et kryssplattform, visuelt databasedesignverktøy.

Hva er MySQL Workbench?

MySQL Workbench er et kraftig verktøy utviklet av MySQL med tre primære områder av funksjonalitet:

  • SQL-utvikling: Erstatter MySQL spørringsleser. Tillater brukeren å koble til en eksisterende database og redigere og utføre SQL-spørringer.
  • Datamodellering: Komplett visuell database design og modellering.
  • Databaseadministrasjon: Erstatter MySQL-administrator. Grafisk grensesnitt for å starte / stoppe servere, opprette brukerkontoer, redigere konfigurasjonsfiler, etc..

I denne opplæringen vil vi fokusere på Datamodellering aspekt for å lage en database fra grunnen av, og så har du bare en rask titt på SQL-editoren for å utføre vårt genererte SQL-skript og opprette databasen i MySQL.

MySQL Workbench er tilgjengelig for Windows, Linux og Mac OSX. Det er to forskjellige utgaver: Community OSS Edition og den kommersielle Standardversjon. Samfunnsutgaven er Open Source og GPL lisensiert, som du forventer. Det er fullt funksjonelt, og er det vi skal bruke i denne artikkelen. Den kommersielle utgaven legger til noen ekstra funksjonaliteter, for eksempel skjema og modellvalidering eller dokumentasjonsgenerering.

Merk: denne opplæringen er basert på Fellesskap OSS Edition versjon 5.2 (5.2.16), for øyeblikket i beta utgivelse ved skrivingstidspunktet (april 2010).

Planlegger vår database

For å lære å bruke MySQL Workbench, bruker vi en veldig enkel database for online klasser som et eksempel. Anta at en gruppe lærere vil tilby online-klasser for flere fag, ved hjelp av Skype eller annen videokonferansesoftware. For vårt lille prosjekt har vi besluttet at vi må lagre følgende informasjon:

Når vi tegner vårt diagram, må vi også kjenne forholdet mellom disse datagruppene. så vi tenker bedre om det nå!

  • En lærer kan lære mange fag
  • Ett emne kan læres av mange lærere
  • Hver klasse har bare en lærer
  • En lærer kan lære mange klasser
  • En student kan delta i mange klasser
  • En klasse har mange studenter
  • En klasse kan ha flere timer (i en uke)
  • På en bestemt dag og time kan det være flere klasser
  • En klasse handler om ett emne
  • Ett emne kan bli undervist i mange klasser

På dette tidspunktet har vi all den informasjonen vi trenger for å møte stjernen i dette showet ...

Send inn MySQL Workbench

Det er på tide å starte Workbench. I datamodelleringsdelen av startskjermbildet klikker vi 'Opprett ny EER-modell', og følgende skjerm vises:

Når vi lager en ny databasemodell, inneholder den standard mydb-skjemaet. Vi kan omdøpe det og bruke det som vårt DB-skjema. En databasemodell kan ha flere forskjellige skjemaer.

Kataloget til høyre viser hvert element i skjemaet, og lar oss dra og slippe elementene til diagrammer om nødvendig.

Å ha de separate seksjonene for fysiske skjemaer og EER-diagrammer, og muligheten til å inkludere flere skjemaer i en databasemodell, kan være forvirrende. Neste avsnitt forklarer disse konseptene og hvordan de er relaterte.

Klargjørende konsepter

Det fysiske skjemaet inneholder alle nødvendige brikker for å definere databasen: tabeller, kolonner, typer, indekser, begrensninger, etc. Dette er hva vi egentlig definerer. Hvert objekt lagt til i den grafiske modellen vises også i det fysiske skjemaet. Det er faktisk en visuell måte å definere vårt skjema på.

Vi kan ha flere skjemaer for samme databasemodell på samme måte som vi kan ha flere databaser i en MySQL-server. Hvert skjema vil være en MySQL-database. For eksempel, i neste skjerm har vi to skjema faner:

Hvis vi genererer SQL-skriptet, vil vi ha to separate CREATE DATABASE-setninger - faktisk vil vi ha CREATE SCHEMA som bare er et synonym.

SKAPER SKEMA Dersom ikke EXIS 'skema1'; CREATE SCHEMA IF NOT EXISTS 'skjema2';

"EER står for Utvidet (eller forbedret) Entity-Relationship. EER diagrammer er bare en måte å modellere dataene og forholdene mellom data ved hjelp av standard symboler "

De vil bli oppført som databaser i MySQL-serveren når du bruker SHOW DATABASES.

Nå, hva er et EER-diagram ?. EER står for Utvidet (eller forbedret) Entity-Relationship>. EER diagrammer er bare en måte å modellere dataene og forholdene mellom data ved hjelp av standard symboler. EER-modeller kan være komplekse, men MySQL Workbench bruker bare en delmengde av alle mulige grafiske elementer, fordi formålet med dette diagrammet (i dette verktøyet) er å ha hvert element kartlagt til det fysiske skjemaet.

Vi kan bruke et EER-diagram for å definere hele databasen, eller bare små deler. For eksempel kan vi ha et skjema med fem tabeller definert, og deretter lage et nytt diagram for å definere to flere tabeller ved hjelp av visuell redigeringsprogram. Diagrammet vil bare inneholde to tabeller, men de to tabellene vil også bli inkludert i skjemaet, sammen med de forrige fem.

Opprette våre bord

Tilbake til vårt første eksempel; Vi må omdøpe standardskjemaet ved å dobbeltklikke på navnet. På dette tidspunktet har vi to muligheter: Vi kan begynne å legge til tabeller i vårt fysiske skjema ved hjelp av ikonet for tilleggstabell, eller vi kan starte et EER-diagram og legge til alle tabellene der.

Jeg foretrekker å legge til et nytt diagram fra begynnelsen og lage skjemaet mitt visuelt; For å vise hvordan du gjør det med begge metodene, skal vi lage de to første tabellene i skjema-kategorien, og deretter fortsette med EER-diagrammet.

Når du klikker på Legg til tabell ikonet, åpnes tabelleditoren som en kategori under:

Ved hjelp av tabelleditoren endrer vi tabellnavnet og bytter til kolonner-fanen (i kategoriene under redigeringsprogrammet) for å skrive inn kolonnene våre. Vi kan velge datatypen (det er en rullegardinliste med alle MySQL datatyper), tilordne standardverdien om nødvendig, og vi har syv boksene for å markere noen av følgende egenskaper:

  • PK - Primærnøkkel
  • NN - Ikke null
  • UQ - Unikt
  • BIN - Binær
  • FN - Uttegnet
  • ZF - null fyll
  • AI - Autoincrement

Gå visuelt

Dette er en måte å legge til tabellene våre, men vi kan også lage dem ved hjelp av diagrammene. Hvis vi klikker på Legg til diagram ikonet nå, vil vi begynne et nytt, tomt diagram, og det er ikke det vi vil ha. Vi vil ha de to tabellene som vi nettopp har laget for å være i diagrammet.

Hvis vi går til menyen, velger du Modell / Lag diagram fra katalogobjekter, Nå har vi vårt diagram, og er klare til å fortsette.

Velg tabellikonet til venstre; pekeren endres til en hånd med et lite bord. Deretter klikker du hvor som helst i lerretet for å opprette et nytt bord.

Nå må du bare dobbeltklikke på tabellen, og redigeringsfanen ser ut til å redigere navnet, kolonnene, typene, osv. På samme måte som før.

Etter at du har skrevet inn kolonnedetaljer for de nye tabellene, er vi klar til å begynne å tegne relasjonene.

Tegneforhold

I den vertikale verktøylinjen til venstre har vi seks verktøy tilgjengelig for å opprette relasjoner.

Ikke bekymre deg om den siste, vi forklarer det senere. For forholdene 1: 1 og 1: n har vi to forskjellige typer symboler: identifisere og ikke identifisere. Hva betyr det?

Et forhold betraktes som å identifisere når ett bord er helt avhengig av det andre å eksistere.

Et forhold betraktes som å identifisere når ett bord er helt avhengig av det andre å eksistere. En rad i den tabellen avhenger av en rad i den andre tabellen. Et vanlig eksempel er å ha et eget bord for å lagre telefoner for brukere. Det kan være nødvendig å ha det i et annet bord, fordi det kan være flere telefoner for en bruker, men hver rad i den tabellen er helt avhengig av brukeren tilhører til brukeren.

Du bør være oppmerksom på at relasjoner har noen implikasjoner. Hvis vi vil lage de fysiske tabellene i MySQL, må relasjoner kartlegges på en eller annen måte. Det er noen regler for å kartlegge relasjoner til tabeller:

  • 1: 1 forhold. Primærnøkkel for en av tabellene er inkludert som fremmednøkkel i den andre tabellen.
  • 1: n forhold. Primærnøkkelen til tabellen i '1' siden legges til som fremmednøkkel i tabellen på 'n' -siden.
  • n: m-relasjoner. Et nytt bord (bli med bord) er opprettet. Primærnøkkelen består av primærnøklene fra de to opprinnelige tabellene.

Identifiserende relasjoner brukes vanligvis til deltabordene som er opprettet fra et mange til mange forhold. Disse nye tabellene er helt avhengige av de to originale tabellene.

I tilfelle av 1: 1 og 1: n identifiserende forhold vil også den fremmede nøkkelen innføres, være en del av primærnøkkelen for den tabellen, og danner en kompositt primærnøkkel.

Den gode nyheten er at MySQL Workbench kjenner disse reglene bedre enn de fleste av oss. Vi tegner bare våre linjer, og de utenlandske nøklene eller delta i tabeller blir automatisk opprettet. Vi kan også velge å gjøre det manuelt, som vi ser snart.

For å tegne et forhold, klikk på ikonet, og klikk deretter på de to tabellene for å forholde seg. For en til mange relasjoner, klikk på "mange" sidebordet først, og deretter på "ett" sidebordet. La oss se hvordan du gjør det for n: m-lærer-fagrelasjonen, og for 1: e lærerklassen.

Standardnavnet som er tilordnet for de utenlandske nøklene, og for deltabordene kan endres globalt i Rediger / Innstillinger / Modellfane, eller bare for det nåværende prosjektet i Modell / modellalternativer.

Hvis vi ikke ønsker at tabeller og utenlandske nøkler skal genereres på denne måten, kan vi bruke det mystiske "sjette symbolet".

Det sjette symbolet oppretter et forhold ved hjelp av eksisterende kolonner, noe som betyr at du allerede har tatt med de nødvendige utenlandske nøklene i tabellene dine og opprettet de nødvendige tildelingsbordene (n: m kartleggingstabeller). Siden vi allerede har opprettet disse Bli med-bord, trenger vi ikke n: m-relasjoner; bare 1: n er tilgjengelig.

Når vi har definert alle våre relasjoner, bør vårt diagram se slik ut:

Vær oppmerksom på at vi har brukt standard MySQL Workbench notasjon for diagrammene, men du kan endre det i Modell / Objektnotasjon og modell / relasjonsnotasjon. Dette er et eksempel på vår modell i klassisk notasjon:

På dette tidspunktet er modellen klar, og vi kan generere SQL for å lage MySQL-databasen.

Genererer SQL

Å velge Fil / Eksporter / Forward Engineer SQL CREATE Script. Vi er bare tre veiviserskjermer vekk fra å generere filen vår!


Vi har selv muligheten til å gjennomgå og redigere den genererte SQL før du lagrer den:

Og det er det. Når du klikker, blir SQL-skriptet generert og lagret. Nå kan vi bruke det på noen måte vi ønsker. Vi kan laste den ved hjelp av kommandolinjens mysql-klient:

mysql> SOURCE scriptName.sql

Eller vi kan bruke MySQL Workbench til å fullføre arbeidet, koble til MySQL-serveren og kjøre skriptet.

Koble til en MySQL Server

Å velge Database / Administrer tilkoblinger fra menyen, og klikk NY.

Hvis du ikke vil angi passordet her, blir du bedt om det når det trengs. Klikk "Test Connection" for å sjekke om parametrene dine er riktige, og klikk deretter Lukk.

Nå, for å laste skriptet, bruker vi SQL-editoren. I hovedmenyen velg Database / Query Database; et vindu ber deg om å velge en tilkobling, og deretter åpnes kategorien SQL editor.

Klikk nå lynikonet for å utføre SQL-skriptet, og databasen din vil bli generert!

Vi kunne også ha generert MySQL-databasen direkte fra modellen, uten å referere til den faktiske filen, ved hjelp av Database / Forward Engineer fra menyen; Imidlertid finner jeg det nyttig å generere skriptet og deretter bruke det slik jeg ønsker.

Konklusjon

MySQL Workbench er et imponerende verktøy. Vi har bare sett noen grunnleggende muligheter i datamodelleringsdelen, og bare kikket på SQL-editoren i andre halvdel av denne opplæringen. Vi lærte å lage en database visuelt og tegne diagrammer som kan lagres som dokumentasjon. Du kan eksportere diagrammene som en PNG-, SVg-, PDF- eller PostScript-fil. Takk for at du leser, og la meg få vite hva du synes!