MySQL Workbench – kako napraviti model baze podataka

Bilo da ste totalni početnik ili profesionalac u radu sa bazama podataka, potreban vam je dobar software za modeliranje, osmišljavanje kako će baza podataka izgledati i koje će biti relacije između tablica. I siguran sam da su vam miliji besplatni alati od komercijalnih, naravno ako mogu napraviti ono što želite.

U ovom članku ću se posvetiti upravo početnicima i pokušati objasnit na što jednostavniji način kako napraviti dobar model baze, održavati ga što jednostavnije i bezbolnije, te na kraju exportati i postaviti funkcionalnu bazu na serveru.

MySQL Workbench je jedan od takvih besplatnih alata koji ima puno više mogućnosti nego će vam za početak trebati, ali upravo zato je odličan, jer kako vi budete više znali o bazama podataka, tako će vas MySQL Workbench pratiti i pružiti vam da napravite ono što ste zamislili.

Dok dođemo do koraka modeliranja baze podataka već imamo ideju o aplikaciji i što bi ona trebala sadržavati, bez obzira koliko je jednostavna  ili kompleksna.

Za primjer ću uzeti nešto vrlo jednostavno uz pretpostavku da ste upoznati sa tipovima podataka u MySQL-u.

Zadatak: hoću napraviti model baze za koji će sadržavati podatke o učenicima i njihovim ocjenama iz raznih predmeta

Startni ekran MySQL Workbench-a je vrlo jednostavan i sve što nas na njemu sada zanima je Physical Schemata dio i naša početna schema koja se u startu zove mydb. U kontekstu MySQL Workbench-a schema je baza podataka.

MySQL Workbench - preimenovanje scheme

Klikni za veću sliku

Ukoliko želimo  promjeniti ime naše baze u skola, sve što trebamo napraviti je dvoklik na ime scheme. Na donjem dijelu ekrana će nam se otvoriti podaci za bazu podataka (schemu) i tamo možemo jednostavno promjeniti ime.

Tablice

Dakle, imamo 3 osnovna tipa podataka – učenik, predmet, ocjena. Ta tri tipa podataka su nam ujedno i početne tablice. Kreiranje tablice također ne može biti jednostavnije i radi se na isti način kao promjena imena scheme. Dvoklik na Add table i u donjem dijelu ekrana nam se pojavljuje skup podataka za tablicu koju želimo kreirati.

Klikni za veću sliku

Tabovi koji su na slici iznad uokvireni plavom bojom služe nam kako bi definirali sve potrebne podatke vezane uz tablicu. Za sad ću se zadržati na kolonama, indexima i ključevima (foreign key). Na prvom tabu Table unesemo ime tablice i odaberemo osnovne prametre – encoding i tip tablice.

Kada smo gotovi s tim, kliknemo na Columns. U ovom dijelu definiramo polja u tablici i tipove podataka za svako polje. Jednostavno upišemo ime polja, odaberemo tip i sa TAB prelazimo na drugo polje. Dodatno je moguće podesiti NOT NULL (NN) i AUTO INCREMENT (AI) vrijednosti za svako polje.

Klikni za veću sliku

Tab Indexes služi, naravno, kreiranju indeksa koji se dodaju na jednak način kao i polja – unese se ime indexa, odabere se tip i s desne strane se označe polja na koja se taj index odnosi.

Klikni za veću sliku

Foreign keys ili vanjski ključevi

Sljedeći tab je Foreign Keys, ali za njega nam je potrebna barem još jedna tablica, prema tome, na do sad opisan način ću kreirati tri osnovne tablice koje trebamo – ucenik, predmet i ocjena.

Budući se ocjena odnosi na predmet i učenika, tablica ocjena će imati dva vanjska ključa prema tablicama predmet i učenik koja ćemo kreirati u Foreign Keys tabu. Dakle, u ocjena tablici ćemo imati 2 polja – ucenik_id i predmet_id s tim da moramo paziti da su ta 2 polja istog tipa podataka kao ključevi te dvije tablice (id).

Nakon što se dodaju ta dva polja, idemo na Foreign Keys tab.

Klikni za veću sliku

Na slici iznad uokvireno plavim kvadratom je ime ključa i tablica koju taj ključ referencira. Kad se odabere tablica, s desne strane uokvireno zelenim kvadratom dobije se popis polja postojeće tablice (ocjena). Tu odaberemo polje koje se iz postojće tablice veže na vanjsku tablicu. Čim ga odaberemo odmah do nam se pojavi selectbox sa listom polja iz vanjske tablice i trebamo odabrati polje na koje se ključ referencira.
Znači – napišemo ime ključa, odaberemo vanjsku tablicu na koju se ključ odnosi, odaberemo polje iz početne tablice i nakon toga polje iz vanjske tablice.

Sada idemo prvo povezati učenika sa predmetom. Za to će nam biti potrebna nova, relacijska tablica koja će u sebi imati id predmeta i id učenika. Kombinacija ta dva id polja mora biti unique, jer jedan učenik ne može imati 2 ista predmeta. Tablicu ću nazvati ucenik_predmet.

Ta tablica će imati samo 2 polja – ucenik_id i predmet_id. Ta dva polja treba povezati sa tablicama ucenik i predmet na istin način putem Foreign Key taba.

Vizualna reprezentacija baze podataka

Ok, sad imamo kompletne relacije sređene. Učenik može imati jedan ili više predmeta, predmet ima ocjene koje se odnose na učenika. Sada trebamo napraviti dijagram, odnosno vizualnu reprezentaciju baze.

Dvoklik na Add diagram na vrhu ekrana i otvori nam se prazni “papir” za ERR dijagram (Enhanced Entity-Relationship). S desne strane u toolbaru imamo popis tablica koje smo napravili. I sad jednostavno mišem odvučemo tablice na “papir”.

Klikni za veću sliku

Relacije koje smo postavili između tablica se automatski dodaju na dijagram kako dodajemo tablice.

Export baze u SQL skriptu

Na kraju nam ostaje još export podataka u sql skriptu kako bi mogli napravljene tablice i relacije importati na server. Klik na File > Export > Forward engineer SQL CREATE script…

Klikni za veću sliku

Pojavit će se dijalog sa nekoliko opcija. Odaberite što vam odgovara, klik na Next >>. Na sljedećem dijelu dijaloga odaberemo što želimo exportati i – to je to :))

Jednostavno, zar ne ;)

Leave a Reply