SELVITYSRAPORTTI IIO30200 Tietokannan hallinta Aleksi Graf Timo Paananen Creative Commons Licenced Raportti Huhtikuu 2010 Mediatekniikka Tekniikan ja liikenteen ala
1 SISÄLTÖ 1 KÄYTTÖÖNOTTO... 2 1.1 Lataus... 2 1.2 Asennus... 3 1.3 Asetusten muuttaminen... 4 2 MYSQL WORKBENCH-KÄYTTÖLIITTYMÄ... 5 2.1 Aloitussivu... 5 2.2 Käyttöliittymän osat:... 5 2.3 Työtila (Workspace)... 6 3 SQL DEVELOPMENT... 7 3.1 Uuden tietokantayhteyden lisäys... 8 3.2 Tietokantayhteyksien hallinta... 9 3.3 SQL Editor... 10 4 DATA MODELING... 12 4.1 Uuden tietokantamallin Luonti... 13 4.1.1 Tietojen syöttäminen... 14 4.1.2 Kaaviossa toimiminen... 15 4.1.3 Yhteyksien luominen... 16 4.2 Skriptit... 17 4.2.1 Luonti... 17 4.2.2 Tuonti... 20 4.3 Luo uusi ER-kaavio olemassa olevasta tietokannasta (reverse engineer). 21 5 SERVER ADMINISTRATION... 23 5.1 Server Administration -työkalut... 24 6 YHTEENVETO... 25
2 1 KÄYTTÖÖNOTTO 1.1 Lataus 1. Mene osoitteeseen wb.mysql.com 2. Lataa uusin versio oikeasta laidasta (huolimatta vanhasta versionumerosta) 3. Tutki versiotietoja otsikon kohdalta Lataus (rullaa hieman alas): Valitse versio, käyttöjärjestelmä, tyyppi. 1. Vakaa (vähemmän toimintoja) 2. Kehitysversiot (kaikki toiminnot) 3. Käyttöjärjestelmä (Win, Mac OS X, Linux (Fedora/Ubuntu/SuSE), lähdekoodi) 4. Asennusversio / 5: Paketti (ei vaadi asennusta)
3 Lataus (jatkuu): 1: (Jos tili) lataa 2: (Jos haluat rekisteröityä) lataa 3: Lataa suoraan Alle tipahtaa listaus latauspaikoista (1: Belgia/Ruotsi ovat ainakin hyviä): 1.2 Asennus Et voi tehdä mitään peruuttamatonta virhettä, joten ajele seuraava -napilla.
4 1.3 Asetusten muuttaminen 1. Asetukset... 2. esim. malliin liittyvät 3. oletukset, esim. avaintennimien muodostus
5 2 MYSQL WORKBENCH-KÄYTTÖLIITTYMÄ 2.1 Aloitussivu 2.2 Käyttöliittymän osat: Ylävalikko: Ohjelman toiminnot, tietokantayhteydet ja ohjelman asetukset. Nämä toiminnot on käsitelty myöhemmin seikkaperäisemmin omissa alakohdissaan. Pikapainikkeet vasemmalta katsoen: 1. Uusi tietokantamalli 2. Avaa olemassa oleva tietokantamalli 3. Avaa tietokantayhteydet-hallintapaneeli 4. Avaa palvelinyhteysprofiilit-hallintapaneeli
6 Välilehdet ja Workbench yhteisöosuus 1. Varsinaisen työtilan yläosassa on välilehtiosuus. Uudet tietokantamallit, palvelinyhteydet ym. avautuvat uuteen välilehteen sovelluksessa. 2. Workbenchin tervetuloa-ruutu. Nuolien osoittamista linkeistä avautuu selainikkuna versiohistoriaan ja MySQL Workbenchin kehitykseen liittyvään tietoon. 3. Oikeasta reunasta voi tarkistaa tuotteen päivitykset, raportoida löydetyistä bugeista tai keskustella MySQL:n keskustelufoorumilla ohjelmaan liittyvistä aiheista. 2.3 Työtila (Workspace) Aloitussivun työtila jakautuu kolmeen osioon: 1. SQL Development sisältää tallennetut tietokantayhteydet, tietokantayhteyksien hallintatyökalut, sekä tietokantojen hallintatyökalut (esimerkiksi mahdollisuus ajaa SQL-scriptejä tietokannassa, lisätä/poistaa/muokata tietokannan tauluja). Lue lisää luvusta 3. 2. Data Modeling -osiossa on varsinaiset ER-kaavion luontityökalut, reverse- ja forward-engineer -toiminnot sekä tietokantojen synkronisoinnit. Lue lisää luvusta 4. 3. Server Administration sisältää työkalut DBA:n käyttöön: tietokantojen monitorointi, tietokantojen asetusten hallinta, käyttäjien hallinta, varmuuskopiointi ja tietojen palauttaminen. Lue lisää luvusta 5.
7 3 SQL DEVELOPMENT 1. Open Connection to start Querying: Tuplaklikkaamalla voidaan avata jo luotu yhteys SQL Editoriin. Huomioitavaa on kahden ensimmäisen luodun yhteyden kohdalla mainittu ssh tunnel; MySQL Workbench mahdollistaa tietokantayhteyden tunneloinnin SSH:n kautta. Jos webhotelli tukee SSH:ta, on tällöin mahdollisuus muodostaa etäyhteys suoraan webbihotellisi tietokantaan. 2. New Connection avaa uuden tietokantayhteyden luonnin, joka onnistuneen luonnin jälkeen tulee näkyville ylimmäiseen ikkunaan. 3. Edit Table Data avaa suoraan SQL Editorin valitun tietokannan valitulle taululle editointitilaan, jossa voidaan muokata taulun sisältöä. 4. Edit SQL Script avaa paikallisen.sql -scriptitiedoston ja joko avaa sen editoriin tai ajaa suoraan valitulle tietokantapalvelimelle. 5. Manage Connections avaa yhteyksien hallintatyökalun, jossa voi muokata, poistaa, kopioida ja lisätä tietokantayhteyksiä.
8 3.1 Uuden tietokantayhteyden lisäys Uusi tietokantayhteys luodaan valitsemalla aloitussivulla SQL Development - kohdasta tietokantayhteyksien alapuolelta New Connection. Avautuu seuraava ikkuna: 1. Anna tietokantayhteydelle nimi. Tämän ei tarvitse olla esim. localhost, vaan nimi jonka haluat näkyvän sovelluksessa tietokannan hallintanäkymässä. Nimeä yhteys siten, että se kuvaa yhteyttä ja tiedät mihin tietokantaan olet yhdistämässä. 2. Valitse yhteystapa. Vaihtoehtoja ovat Standard (TCP/IP), Local socket/pipe, ja Standard TCP/IP over ssh. Jos olet ottamassa yhteyttä paikalliseen tietokantaan samalla koneella Standard TCP/IP riittää, jos taas jonkin webhotellin MySQL-kantaan, ssh-yhteyttä tarvitaan yhteyden tunnelointiin. 3. Syötä yhteyden asetukset: 1. Hostname on usein localhost 2. Port (portti) riippuu palveluntarjoajasta, oletus on 3306 3. Username on käyttäjänimi jolla kirjaudut tietokantaan (root ei ole suositeltava käyttäjänimi muuten kuin localhostiin testikäytössä) 4. Password (salasana) voidaan tallentaa järjestelmään jolloin sitä ei tarvitse syöttää joka kerta uudestaan. Salasana tallennetaan valitsemalla Store in vault. Clear -valinnalla muistetun salasanan voi pyyhkiä pois, jolloin järjestelmä kysyy jatkossa joka kerta tietokantaan yhteyttä otettaessa salasanaa. 5. Default schema -valinnalla valitaan mihin tietokantaan oletusarvoisesti
9 otetaan yhteys yhteyttä muodostettaessa. 6. Advanced -välilehdeltä löytyy yhteyden lisäasetuksia. Näitä ovat Compression Protocol, SSL ja ANSI Quotes. 4. Test Connection. Jos yhteyden asetukset ovat oikein, tulee viesti Connection parameters are correct. 5. Valitsemalla OK voit tallentaa luodun tietokantayhteyden. 3.2 Tietokantayhteyksien hallinta Jo luotuja tietokantayhteyksiä voidaan hallita valitsemalla aloitussivulla SQL Development -kohdasta tietokantayhteyksien alapuolelta Manage Connections. 1. Näyttää jo tallennetut yhteydet. Valitsemalla yhteyden listasta avautuu oikeaan osioon yhteyden asetukset 2. Yhteyden asetuksissa voi muokata jo tallennettuja yhteysasetuksia. Ominaisuudet: katso uuden tietokantayhteyden lisäys. 3. Painikkeista voi 1. luoda uuden tietokantayhteyden 2. poistaa valitun tietokantayhteyden 3. tehdä valitusta tietokantayhteydestä duplikaatin, jonka toi tallentaa toisella nimellä. Tämä voi olla hyödyllinen toiminto esimerkiksi jos kahdella eri palvelimella on lähes samanlaiset ssh-asetukset, jolloin ainoastaan muuttuneet tiedot tarvitsee kirjoittaa uudestaan. 4. Valitsemalla Close oikeasta alareunasta voit sulkea ikkunan. Tehdyt muutokset tallennetaan.
10 3.3 SQL Editor SQL Editor on MySQL Workbenchin työkalu, jossa voi hallita valitun tietokantayhteyden yli tietokantoja (lisätä/poistaa/muokata), ajaa suoraan tietokantaan SQL-lauseita ja myös muokata tietokantojen sisältöä. Työkalu vastaa lähinnä MySQL Query Browseria ominaisuuksiltaan. Nopein tapa päästä halutun tietokannan SQL Editoriin on tuplaklikata SQL Development ikkunassa tallennetun tietokantayhteyden kohdalla. Yleiskatsaus käyttöliittymään: 1. Työkalurivi toimintojen suorittamiseen. Toimintoja ovat (vasemmalta): 1. SQL-scriptitiedoston avaus käyttöliittymään 2. Kirjoitetun SQL-scriptin tallennus 3. Kirjoitetun SQL-scriptin tallennus pikavalintaan (snippets list) 4. Scriptin ajo yhteydessä olevassa palvelimessa
11 5. Tällä hetkellä valittuna olevan scriptin ajo yhteydessä olevassa palvelimessa 6. EXPLAIN -toiminto, antaa tietoa SQL-lauseesta 7. SQL-scriptin ajon pysäyttäminen kesken suorituksen 8. Valinta jatketaanko scriptin ajoa löydetyn virheen jälkeen 9. Commit 10. Rollback 11. Auto-commit päälle/pois 12. Uudelleen tietokantaan yhteydenotto 13. Kaikkien taulutietojen lukeminen uudelleen kannasta (refresh) 14. Valinta tehdäänkö jokaisesta kyselysuorituksesta uusi välilehti tuloksenosioon 2. Tietokantojen hallintatoiminnot 1. Hiiren oikealla painikkeella taulun päällä valittaessa saadaan taulun muokkaustoiminnot esiin: 1. Tietokannan tietojen muokkaaminen 2. Uuden tietokannan luonti 3. Tietokannan poisto 2. Hiiren oikealla painikkeella taulun päällä valittaessa voidaan: 1. Näyttää nopeasti 1000 ensimmäistä riviä taulusta 2. Editoida taulun sisältöä 3. Kopioida leikepöydälle valittua sisältöä 4. Lähettää SQL Editoriin SQL-lauseiden luomista varten esimerkiksi sarakkeiden nimet 5. Muokata taulua 6. Luoda uusi taulu 7. Poistaa taulu 3. SQL Statements SQL Editori. Tässä ikkunassa voidaan kirjoittaa SQLlauseita ajettavaksi kannassa. Tähän ikkunaan voi myös eri toiminnoilla tuoda SQL-lauseita esimerkiksi ulkoisesta tiedostosta tai ohjelman generoimista SQL-lauseista. 4. Tulosnäkymä. 1. Yleisnäkymässä (oletus) voidaan tarkastella ja muokata taulujen tietoja vastaavasti kuin vasemman palkin näkymässäkin. Lisäksi voidaan luoda näkymiä ja rutiineita 2. Välilehdissä voidaan tarkastella esim: 1. viimeisen ajetun SQL-lauseen tietoja (Output) tietokannan
12 palautteessa, esimerkiksi kyselyn suoritukseen mennyt aika 2. Kyselyhistoriaa palvelimessa viimeksi suoritetuista kyselyistä 3. Ajaa ennalta tallennettuja kyselyitä yhdellä klikkauksella (snippets) 4. Result-ikkunassa tarkastella SQL-lauseen tulostetta 5. Output-ikkunan saa näkyviin omana yksikkönään aivan ikkunan oikeasta alakulmasta olevasta valintapainikkeesta. Tällöin näkyy jatkuvasti palautetta tietokantapalvelimen ajonaikaisista tiedoista. 4 DATA MODELING Data Modeling -osio on MySQL Workbenchin varmasti eniten käytetty ominaisuus. Toiminnossa voi luoda ER-kaavioita, ja hallita luotavien taulujen ja tietokannan tietoja, kuten kenttien nimiä, tietotyyppejä, kommentteja ym. 1. Avaa jo luotu ER-kaavio. Näyttää viimeksi avatut ER-kaaviot. Avaus tuplaklikkaamalla. 2. Luo uusi ER-kaavio. Luo tyhjän ER-kaaviopohjan oletusasetuksilla. 3. Luo uusi ER-kaavio olemassa olevasta tietokannasta (reverse engineer)
13 4. Luo uusi ER-kaavio SQL -scriptistä (reverse engineer) 4.1 Uuden tietokantamallin Luonti Vaihtoehdot: 1. File... New Model 2. New Document 3. Create New EER Model 4. CTRL+N
14 4.1.1 Tietojen syöttäminen Huom. Add <new> -painikkeita tuplanapsautetaan. 1. Tee uusi kaavio (suositeltu) 2. Vaihtoehtoinen tapa: 1. Voit luoda taulut suoraan 2. Lista oikealla, josta voit raahata kaavioon 3. Tarpeellisimmat tiedot kohdissa 2.3-2.7 3. Voit lisätä käyttäjiä/rooleja ja määritellä niille oikeudet 4. Skriptien luonti 5. Malliin liittyvien kommenttien ja muistiinpanojen kirjoittaminen
15 Sarakkeiden syöttäminen (tarkemmin) 1. Sarakkeet -välilehteen (Columns) pääset tuplanapsauttamalla taulua 1. Uuden sarakkeen saat tuplanapsauttamalla alinta (tyhjää) riviä ja nimeämällä sen 2. Tietotyypin voit muuttaa tuplanapsauttamalla viereistä (Datatype) kenttää 3. Avain määrittelyt, lopussa Oletus -sisältö (automaattinen tällöin) 4. Metatietojen lisäys. 4.1.2 Kaaviossa toimiminen
16 1. Uusi taulu 2. Voit asettaa erityisasetukset 3. Tuplaklikkaamalla pääset... 4. muuttamaan taulun asetuksia ja... 5. muita tietoja, esim. sarakkeita 4.1.3 Yhteyksien luominen 1. Työkalut löytyvät vasemmasta laidasta. 1. Esim. moni-moneen 2. Napsauta lapsitaulun keskeltä vanhempi-taulun keskelle 3. HUOM SUUNTA!: voit joutua tekemään yhteydet uudelleen jos klikkaat väärin päin (esim. yksi-moneen yhteydessä ON suunta/järjestys)) 2. Tuplanapsauta yhteyttä 3. ja muunna asetuksia... 1. esim. poista pakollisuus (jotta Asiakkaita voi luoda ilman tilauksia) 2. ja muunna yhteys Viiteavain -tyyppiseksi poistamalla valinta.
17 Avainmäärittelyt (tarkemmin) 1. Tuplanapsauta taulua 1. valitse Viiteavaimet -välilehti 2. valitse viiteavain 3. viiteavainten laajentaminen/supistaminen useampikohtaiseksi 4. Päivitys- ja tuhoamiskäyttäytyminen 4.2 Skriptit 4.2.1 Luonti Saat skriptivelhon näkyviin valitsemalla: File Export Forward Engineer SQL CREATE Script... (CTRL+SHIFT+G)
18 1. Tiedoston nimi... 2. paikka 3. erityisasetukset Tietojen valinta 1. esim. taulut: Kyllä/Ei? 2. Vain osa tauluista? 1. Piilota lisävalinnat 2. Taulut 3. Älä huomioi, jonka alla Palauta 4. Siirrä kaikki -toiminnot 5. Siirrä säännöllä -toiminto
19 Tallennus: 1. Esikatselu 2. Tallenna toiseen tiedostoon 3. Kopioi leikepöydälle 4. Valmis!
20 Muut tallennusvaihtoehdot PNG (kuva, pakattu) PDF (monimuotodokumentti) SVG (kuva, vektori) 4.2.2 Tuonti (ks. päävalikon keskiosan kohta 4. Create EER Model from SQL Script ) 2. Valitse skriptin sisältävä tiedosto
21 3. Merkistö... 4. Sijoitetaanko tuodut objektit (esim. taulut) kaavioon? (yhteyksien piirto ei aina onnistu) Varsinkin ohjelmasta itsestään tallennetut skriptit toimivat hyvin. Eikä virheitä ilmennyt muillakaan tavoilla tuotetuilla tiedostoilla. Eli Next/Finish riittävät. 4.3 Luo uusi ER-kaavio olemassa olevasta tietokannasta (reverse engineer) 1. Avaa ohjattu toiminto päävalikon Data Modeling -kohdasta kolme. 2. Valitse tietokantayhteys (esimerkiksi localhost) 3. Valitse tietokanta, jonka haluat tuoda ER-kaavioksi
22 5. Valitse mitkä tietokannan taulut haluat tuoda. Oletuksena kaikki. 6. Valitse Execute->. Toiminto luo tauluista ER-kaavion. Huom! Ainakaan käytetty versio 5.2.16 ei luo yhteyksiä ER-kaavioon taulujen välille. Tämän asian korjaamiseksi on olemassa plugin, joka luo yhteydetkin, mutta vain MyISAM-tauluihin. http://wb.mysql.com/?cat=4
23 5 SERVER ADMINISTRATION Server Administration on MySQL Workbenchin osio, jossa voi hallita palvelinyhteyksiä. Yhteys voi olla, kuten muutkin yhteydet sovelluksessa, yhteydessä paikalliseen (localhost) tietokantaan tai esimerkiksi ssh-yhteyden yli ulkoiseen tietokantapalvelimeen. Työkalulla voi tehdä useimmat DBA:n tarvitsemat toimenpiteet: tietokannan monitoroinnin, tietokantapalvelimen asetusten konfiguroinnin, käyttäjien hallinnan, varmuuskopioinnin sekä varmuuskopioiden palauttamisen. Etusivun näkymä Server Administration -valinnoista: 1. Server Administration. Tuplaklikkaamalla jo luodun palvelinyhteyden nimeä pääsy palvelimenhallintasovellukseen 2. New Server Instance. Luo uuden palvelininstanssin, joka tulee luomisen jälkeen näkyviin kohdan 1 listaan. Pohjana määrittelyssä voidaan käyttää jo aiemmin SQL Development -kohdassa luotua tietokantayhteyttä. 3. Manage Import / Export avaa palvelinyhteyden näkymään, jossa voidaan luoda varmuuskopioita ja palauttaa niitä. 4. Manage Security avaa palvelinyhteyden näkymään, jossa voidaan määritellä käyttäjäkohtaiset käyttöoikeudet. 5. Manage Server Instances avaa palvelininstanssien hallintatyökalun, jossa palvelininstansseja voidaan kopioida, poistaa, nimetä uudelleen ja niiden ominaisuuksia hallita.
24 5.1 Server Administration -työkalut 1. Server Status -kohdasta näkyy palvelimen perustietojen lisäksi ajonaikaista tietoa palvelimesta: resurssien kulutus, muistin määrä, yhteyksien määrä, tietoliikenne, kyselyiden hakuvälimuistin tilanne, ja kuinka paljon avainvälimuistista on käytössä. 2. Status näyttää palvelimen tilan: käynnissä vai ei käynnissä. Kohdasta voi myös sammuttaa palvelimen (stop server). 3. Configuration -kohdasta voi määrittää valtavan määrän tietokannan eri asetuksia. Esimerkiksi verkkoasetukset, oletusarvoinen tietokantamoottori, suorituskyky, salasana-asetukset, replikointi jne. 4. Accounts -kohdasta voidaan määrittää ja hallinnoida käyttäjätunnuksia sekä näiden rooleja ja tietokantakohtaisia oikeuksia. 5. Connections näyttää aktiiviset tietokantayhteydet, ja niiden käyttäjät ja portit sekä toiminnot. Kohdasta voidaan myös halutessa tuhota (kill) halutut tietokantayhteydet. 6. Variables näyttää kaikki palvelimen asetetut muuttujat. 7. Data dump -työkalulla voidaan varmuuskopioida tietokanta (taulukohtaisiin.sql -tiedostoihin tai yhteen.sql -tiedostoon) sekä palauttaa aiemmin varmuuskopioitu data tietokantaan. 8. Logs näyttää lokitietoja palvelimelta, jos lokien tallennus on päällä.
25 6 YHTEENVETO Käyttämämme versio oli MySQL Workbenchin beta-versio, joten bugeja ilmeni muutaman kerran sovellusta käytettäessä. Ei kuitenkaan niin paljoa, että se olisi häirinnyt käyttöä. Kannattaa kuitenkin muistaa tallentaa työnsä riittävän usein. Yleisesti ottaen MySQL Workbench arvioidussa versiossa on hyvin monipuolinen työkalu MySQL kantojen luontiin ja jopa tietokannan hallintaan. Laajuudessaan se peittoaa jopa MySQL Administrator -työkalun joissakin osioissa.