TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu:
SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3 3 MYSQL... 3 3.1 MYSQL ESIMERKKI... 4 4 POSTGRESQL... 6 5 TIETOKANTOJA ERI SIVUSTOILLA... 6 6 LOPPUSANAT... 6 7 LÄHTEET... 7
Tietokannat: MySQL ja PostgreSQL - Seminaarityö 3 1 Seminaarityön kuvaus 2 Tietokanta Seminaarityön tarkoituksena on valaista lukijaa tietokantojen toiminnasta ja käyttötarkoituksista. Lisäksi tarkoituksena on tutustua MySQL ja PostgreSQL tietokantoihin pintapuolisesti. Tietoja kerättiin pääosin internetistä ja apuna käytettiin monia eri lähteitä. Tietokannat ovat mukana meidän kaikkien jokapäiväisessä elämässä. Ne ovat kuitenkin yleensä piilotettuina palvelun tai ohjelman taustalle, eivätkä tavalliset käyttäjät välttämättä ajattele tai ymmärrä käyttävänsä tietokantoja. 2.1 Mitä tietokannat sitten ovat? Wikipedian mukaan tietokanta on kokoelma tietoja, joilla on yhteys toisiinsa. Tietokantasuunnittelu kurssilla me saimme tietokannalle määritelmän: Mikä tahansa tarkasti määritelty tapa säilyttää rakenteellista tietoa. Kuitenkin kun ammattikielessä käytämme sanaa tietokanta, harvoin kyseessä on mikä tahansa tietokanta. Puhuttaessa tietokannasta, puhumme melko varmasti tietokannan hallintajärjestelmästä. 3 MySQL Tietokantojen hallintajärjestelmiä alettiin tehdä 1960-luvulla. Yhdysvaltalainen Charles Bachman oli ensimmäisiä alan kehittäjiä (GE, IDS-database). Tietokannan hallintajärjestelmä Toimii käyttöliittymänä tietokannan/tietokantojen ja käyttäjän välillä. Tietokannan hallintajärjestelmä on kokoelma varsinaista tietokantamoottoria tukevia varusohjelmia. Sen tehtävänä on kyselyjen optimointi sekä ylläpidon helpottaminen. MySQL-ohjelma luotiin ruotsalainen MySQL AB - yrityksen toimesta. Yrityksen perustajia olivat
Tietokannat: MySQL ja PostgreSQL - Seminaarityö 4 David Axmark, Allan Larsson ja Michael Widenius. MySQL:n ensimmäinen versio julkaistiin vuoden 1995 toukokuussa, 23. päivä. MySQL tehtiin alunperin henkilökohtaista käyttöä varten msql:stä, joka perustui matalan tason kieleen ISAMiin, koska yrityksen perustajat pitivät msql:ää liian hitaana ja joustamattomana. Nykyisin MySQL:n omistaa Oracle, johtuen vuoden 2008 ja 2009 yrityskaupoista. Tämän jälkeen useat linux distribuutiot ja jotkin suurista toimijoista ovat ottaneet MySQL:n tilalle käyttöön MariaDB:n. MariaDB:hen siirtyminen ei ollut suuri askel, sillä se on käytännössä sama asia kuin MySQL. MySQL on nykyään yleisin tietokantatyyppi. MySQL on erittäin hyvin optimoitava, mikä on yksi syy sen suosioon. 3.1 MySQL esimerkki Seuraavaksi hyvin yksinkertainen käytännön esimerkki MySQL:stä. Ajatellaan tilanne, että Tippe Tietokonepelaaja haluaa pitää kirjaa pelaamistaan otteluista, esimerkiksi Hearthstone videopelissä. Hän asentaa palvelintietokoneellansa sijaitsevaan Linux distribuutioon MySQL-tietokannan yhdessä muiden LAMPympäristön (Linux, Apache, MySQL ja PHP) ohjelmien kanssa. Tämän jälkeen hän ottaa yhteyden MySQL -tietokantaan komennolla: mysql -u titi -p ja luo itselleen uuden tietokannan, sekä valitsee tietokannan käyttöön komennoilla: CREATE DATABASE tilastot; USE tilastot Kun tietokanta on luotu, Tippe luo tietokantaan taulun, johon hän tallentaa tiedot pelatuista otteluista komennolla:
Tietokannat: MySQL ja PostgreSQL - Seminaarityö 5 CREATE TABLE `magetaulu` ( `id` int(10) PRIMARY KEY AUTO_INCREMENT, `win` bool DEFAULT NULL, `date` datetime DEFAULT NULL); Tauluun hän voi lisätä tietoja INSERT-lauseilla, esimerkiksi komennolla: INSERT INTO magetaulu (win,date) VALUES(true,'2014-04-03 12:01:42'); Mikäli Tippe haluaa tutkia taulun sisältöä, hänen tulee käyttää SELECT-lauseita. Esimerkiksi koko taulun sisällön hän voi valita komennolla: SELECT * FROM magetaulu; Mikäli taulusta tarvitsee poistaa tietueita, tähän käyttöön on DELETE-lauseet. Id:llä 1 olevan tietueen saa poistettua taulusta, esimerkiksi komennolla: DELETE FROM magetaulu WHERE id=1; Tipen mielestä tietokannan käyttö komentoriviltä on kuitenkin liian teennäistä. Hän päättää kirjoittaa muutaman rivin PHP-koodia, jolla hän saa aikaan yksinkertaisen, mutta käyttötarkoitukseen sopivan ohjelman. PHP-ohjelma käyttää samoja SQL-lauseita, mitä kävimme läpi aikaisemmin. Käyttäjälle jää tehtäväksi kuitenkin vain oikean napin painallus selaimen ikkunassa. Tässäkin esimerkissä on taustalla MySQL-tietokanta, mutta mikäli Tippe antaa
Tietokannat: MySQL ja PostgreSQL - Seminaarityö 6 4 PostgreSQL ohjelman jonkun vähemmän tietotekniikasta tietävän käsiin, henkilö käyttäisi ohjelmaa, tietämättä taustalla tapahtuvasta. PostgreSQL on lähes yhtä suorituskykyinen ja erittäin samankaltainen kuin MySQL, mutta tukee kuitenkin hieman enemmän ominaisuuksia. Sitä on kehitetty aktiivisesti yli 15 vuotta. Toimii useiden eri ohjelmointikielien, kuten Java, Perl, Python, Ruby, Tcl, C/C++, kanssa. Postgresql ei päästä bugeja läpi yhtä helposti kuin MySQL ja se noudattaa enemmän SQL-2003-standardeja kuin MySQL. PostgreSQL on PostgreSQL lisenssin alainen, se on vapaa ja avoimeen lähdekoodiin perustuva. 5 Tietokantoja eri sivustoilla Tunnettuja sivustoja jotka käyttävät MySQL tietokantaa: Twitter, Facebook, Wikipedia, Flickr, Youtube ja 4chan. 6 Loppusanat PostgreSQL:ää käyttävät esimerkiksi Reddit, Instagram sekä Disqus. MySQL ja PostgreSQL eivät eroa paljoakaan toisistaan. Molemmat ovat ilmaisia käyttää ja niiden syntaksit ovat hyvin samankaltaisia. Aihe oli mielenkiintoinen, mutta siihen tarkemmin syventyminen osoittautui haastavaksi. Tietokantakurssin vuoksi oli vaikea keksiä demonstroitavia asioita, jotka eivät olisi olleet ilmiselviä kaikille seminaaria seuraaville.
Tietokannat: MySQL ja PostgreSQL - Seminaarityö 7 7 Lähteet http://www.openlogic.com/wazi/bid/188125/postgresql-vs-mysql-which-is-the- Best-Open-Source-Database http://www.wikivs.com/wiki/mysql_vs_postgresql http://en.wikipedia.org/wiki/mysql http://en.wikipedia.org/wiki/postgresql http://www.postgresql.org/about/ http://www.oracle.com/us/products/mysql/overview/index.html.