opstarthandleiding mySQLworkbench
November 2012 Fons van Kesteren HVA-‐CMD-‐V1 Datamodelleren Handleiding om te beginnen met mySQL WorkBench. In twee stappen 0. WorkBench verbinden met mySQL 1. een hallo wereld voorbeeld met één tabel 2. een relatie leggen tussen twee tabellen
0. Workbench verbinden met mySQL
Om te kunnen beginnen moet de WorkBench applicatie gestart worden en worden verbonden met de mySQL server. 1. start mySQL Server (en eventueel phpMyAdmin ) 2. start mySQL WorkBench
3 maak een ‘connectie’
Geef de connectie een naam en vul de overige velden in. Wanneer je XAMP gebruikt hoef je geen wachtwoord te gebruiken. Het default schema kan leeg blijven.
Je heb t nu een connectie tussen mySQL WorkBench als DB Client van mySQL als DBMS Server. Je hebt echter nog geen nieuwe databse gemaakt. Daartoe neem je de volgende stappen. A. Creeer een datamodel in mySQL Workbench ( In WorkBench heet dit EER-‐Model ) B. Synchroniseer dat model met de mySQL database. Als je in Workbench werkt worden je veranderingen niet automatische geupdate in de database. Het process van updaten heet Forward Engeneering als je het model voor heet eerst aan maakt in de server. Het heet Synchroniseren als je veranderingen in een bestaand model wilt doorvoeren in de databse. C. Vervolgens kan je data gaan invoeren. Ook dat kan met mySQL WorkBench. D. Ten slotte kan je allerlei queries gaan uit testen op je database. MySQL WorkBench is dus een volledige Client voor de mySQL Server. Je hebt phpMyAdmin in principe niet meer nodig. Echter: als je voor het eerst met WorkBench werkt kan je je nog onzeker voelen en is het wel eens prettig om via PhpMyAdmin te controleren of alle wat je via WorkBench in de server doet ook het gewenste effect heeft .
1. Maak een diagram met één tabel : ‘student’
De meest eenvoudige toepassing die je kunt bedenken is een database met één enkele tabel. Als dat lukt kun je verder met het maken van een meer complex datamodel. A. Maak je eerste datamodel: 1. Create New EER Model a. Dubbelklik mydb en geef de het schema een naam, bijv mijneerstdatabase b. Zet de default collation op UTF8-‐inicode_ci
2. Add new diagram Je krijg een leeg veld waarin je datamodel kan gaan ontwikkelen
3. Plaats een nieuwe tabel ‘student’ ( klik op het table-‐icoontje en klik in het tekenveld ).
Dubbelklik de tabel en geef de tabel de naam ‘student’ 4. klik de ‘Columns’ tab en maak drie kolommen a. ‘ID’, datatype INT en vink PK, NN en AI b. ‘naam’, datatype VARCHAR(50) c. ‘geboortedatum, datatype DATE
B. Synchroniseren: Forward het model naar mySQL database server 1. menu: Database: Forward Engineer… 2. 5 stappen volgens de default settings NB: Forward Engineering gebruik je alleen als je de eerste keer de databse wilt aanmaken in de mySQL server. Nu is het model gemaakt en gerealiseerd in mySQL.. Kunt dit controleren vi de ‘normale’ phpMyAdmin interface. Het wordt tijd de tabel te vullen met data. C. Data invoeren 1. via HOME : Edit Table Data selecteer de database (MijnDataModel) en de tabel (student )
2. vul de rijen en klik op het apply om de veranderen door te voeren in mySQL. NB: de ID’s hoef je niet in te vullen want als het goed is gaat dat automatisch.
Als alles goed is gegaan zijn de data nu ingevoerd in de tabel in de nieuwe tabel in de nieuwe database. Je kunt dit via PHPmyAdmin controleren. Als het niet is gelukt kun je het beste alles weggooien en even opnieuw beginnen. Als alles is gelukt gaan we een stapje verder. We gaan een relatie leggen.
2. Maak eenvoudig relationeel model: student-‐projectteam
A. Het datamodel aanpassen 1. Ga terug naar het diagram en maak eerst een datatabel ‘projectteam’. Op de zelfde wijze als je een tabel ‘student’ hebt gemaakt. Volg daarvoor stappen 1 tot en met 4 uit de vorige paragraaf.
2. Maak nu een relatie tussen student en projectteam Hiervoor kan je de wizard van WorkBench gebruiken. a. Te klikken op het ‘1:n non-‐identifying’ linkje in de incoontjes links naar het tekenveld
b. Klik eerst op de ‘student’ tabel en daarna op de ‘projectteam’-‐tabel. Er verschijnt nu een lijntje tussen de tabellen. c. In de tabel ‘student’ is er automatisch een kolom aangemaakt met de naam ‘projectteam_ID’ Dit is de FK van deze relatie. d. Vink de NN uit. Dwz: NotNull is niet aangevink. De waarde mag dus NL dus, dat betekent date en student niet perse lid hoeft te zijn van een projectteam.
B. Model Synchroniseren 3. Om de veranderen in de mySQL database door te voeren gebruik je nu ‘Database : Synchronize Model’ . Doorloop de stappen, alles gaat vanzelf. Als het is gelukt kun je in PHPmyAdmin weer controleren of alles goed staat. C. Je hebt nu het model uitgebreid. Maar nog geen gegeven ingevuld. 4. Edit de projectteam tabel en maak minimal twee projectteam. Klik op APPLY, dan worden de gegeven ook naar mySQL gestuurd en krijg je de ID’s van de prejectteams terug 5. Vul bij iedere student één van de ID’s in. Klik ook her weer op APPLY om de waardes daadwerkelijk in de database te zetten. Op die manier heb je hem lid gemaakt van het team.