MySQL ja PostgreSQL Seminaarityö

Samankaltaiset tiedostot
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Kymenlaakson Ammattikorkeakoulu

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

LINUX-HARJOITUS, MYSQL

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIETOKANNAT JOHDANTO

Johdanto PHP PostgreSQL. PHP & PostgreSQL. Paul Tötterman 5. helmikuuta PHP & PostgreSQL.

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

HELIA 1 (14) Outi Virkki Tiedonhallinta

SQL - STRUCTURED QUERY LANGUAGE

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Tietokantojen perusteet

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

A TIETOKANNAT, 4 op Kevät TI09

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

HELIA 1 (11) Outi Virkki Tiedonhallinta

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Tietokantojen suunnittelu, relaatiokantojen perusteita

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Maiju Mykkänen Susanna Sällinen

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Projektinhallintaa paikkatiedon avulla

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Relaatiomalli ja -tietokanta

HELIA 1 (14) Outi Virkki Tiedonhallinta

Action Request System

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tietokannat II -kurssin harjoitustyö

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Avoimen lähdekoodin kehitysmallit

Käyttöjärjestelmät. 1pJÄKÄ1 KÄYTTÖJÄRJESTELMÄN HALLINTA, 12 OSP

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Taustaa. CGI-ohjelmointi

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

HAKURATKAISUN ANATOMIA - KURKISTUS PELLIN ALLE

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Ohjelmoinnin perusteet Y Python

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Menetelmäraportti - Konfiguraationhallinta

MYSQL-TIETOKANNAN JA OBJEKTIEN LUOMINEN JA HALLINTA ERI MYSQL- TYÖKALUILLA JOUNI HUOTARI

Tikon Ostolaskujenkäsittely versio SP1

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Office ohjelmiston asennusohje

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Lohdutus - tietokantadokumentti

Web-sisällönhallintajärjestelmät. Sisältö. Mitä on web-sisällönhallinta?

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

3. Taulujen määrittely ja muuttaminen

INTINU13A6 Java sovellukset

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Web-sisällönhallintajärjestelmät

INTERAKTIIVINEN VERKKOYHTEISÖPALVELU. Riku Eskelinen. Opinnäytetyö tammikuu 2008 Luonnontieteiden ala Datanomi Mäntän seudun koulutuskeskus

SQL Buddy JAMK Labranet Wiki

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Mallintaminen; kurssipalautejärjestelmä

1.1 Käsitteet ja termit 1.2 Historia. Luku 1. Johdanto. ITKA204 kevät

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Tietokannat II -kurssin harjoitustyö

REKRYTOINTIREKISTERI TIETOJÄR- JESTELMÄN KEHITTÄMINEN JA YLLÄ- PITO

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

IT BACKUP & RESTORE. Palvelimille, työasemille sekä mobiilipäätelaitteille

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

SELECT-lauseen perusmuoto

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Transkriptio:

Jani Ahde (1401497, TI14SPeli) MySQL ja PostgreSQL Seminaarityö Essee Opintojakso 206101312_TP Marraskuu 2015

SISÄLLYS 1 JOHDANTO... 3 2 RELAATIO JA SQL... 3 2.1 Relaatiotietokanta... 3 2.2 SQL... 4 3 MYSQL... 5 3.1 MySQL yleisesti... 5 3.2 MySQL toiminta... 6 4 POSTGRESQL... 6 4.1 PostgreSQL yleisesti... 6 4.2 PosgreSQL toiminta... 7 LÄHTEET... 9 LIITTEET

1 JOHDANTO On valtavia määriä dataa ja liian vähän aikaa sen fyysiseen käsittelyyn. Datan suhde toisiinsa on myös rajoittava tekijä tässä yhtälössä. Miten siis voimme helposti ja suhteellisen vaivatta käsitellä valtavia määriä toisiinsa suhteessa olevaa dataa? Toivomme, että data käsittelee itse itsensä ja tulee tarpeen vaatiessa esiin? Käymme läpi valtavan määrän erilaisia kansioita ja yritämme löytää sopivaa tietoa vastaavan mapin? Meidän ei tarvitse. Miten suurin osa maailman sovelluksista kuten esim. Google, Wikipedia, ja potilastietojärjestelmät löytävät tarvitsemansa datan? Nämä sovellukset, ja monet muutkin, käyttävät relaatiotietokantaohjelmistoja tai vastaavia ohjelmistoja tämän datan käsittelemiseen ja suodattamiseen tuhansien alkioiden joukosta. Tämä seminaari käsittelee relaatiotietokantaohjelmistoja MySQL ja PostgreSQL, ja esimerkkejä käsitellään SQL-koodin mukaisesti. Selvitämme minkälaisia relaatiotietokantaohjelmistoja MySQL ja PostgreSQL ovat, ja miten SQL ylipäätänsä niiden sisällä käyttäytyy. Tutustumme lyhyesti ensin SQL:llään ja relaatiotietokannan käsitteeseen, ennen kuin siirrymme itse relaatiotietokantaohjelmistoihin. Seminaarissa oleva tieto on löydetty pääasiallisesti internetissä olevista lähteistä ja relaatiotietokantojen omia dokumentaatioita hyväksikäyttäen. 2 RELAATIO JA SQL 2.1 Relaatiotietokanta Tietokanta on eräänlainen arkisto johon kaikki data on tallennettuna. Tietokanta on hyödyllinen erityisesti silloin kun on tarpeeksi suuri määrä dataa. Kuvitellaan vaikka viiden Excel-tiedoston sijaan yli viisisataa Excel-tiedostoa. Miten tietokanta sitten helpottaa tiedonhakuprosessia? Kun kaikki data on yhdessä sijainnissa, sitä on helppo muokata, ylläpitää ja käyttää tiedonlähteenä. Tietokanta ei välttämättä kuitenkaan ole pelkästään sähköinen arkisto. Tavallinen kalenterikin on tietokanta. Kuitenkin, suurimmat tietokannat perustuvat suhteelliseen eli relaatiomalliin. Relaatiomalli on tapa, johon SQL:llän toiminta perustuu. Kyseessä oleva tapa pyrkii kuvaamaan dataa ja sen suhdetta toisiin datan ilmentymiin. Kuitenkin,

relaatiomalli perustuu puhtaan matemaattisesti predikaattilogiikkaan, jolla tutkitaan tietynlaisia formaalikieliä. Predikaattilogiikasta esimerkkinä voidaan pitää vaikka toteamusta, että pii on positiivinen: Pπ. Relaatiomallia voidaan tietokantojen yhteydessä ilmentää eräänlaisella äiti-lapsi suhteella. Sen sijaan, että ajateltaisiin tavanomaisesti, että äidillä voi olla monta lasta, mutta lapsella ei voi olla montaa äitiä, niin kuvitellaan, että esim. viestillä voi olla vain yksi kirjoittaja, mutta viestin kirjoittajalla useita viestejä. Molemmat, sekä viestien kirjoittaja että viestit ovat omia taulujaan, jotka ovat osa relaatiotietokannan käsitettä. Relaatiomallissa on myös huomioitava, mitä datalle käy, jos esim. vaikka kirjoittaja poistetaan. Moista tapahtumaa hallitaan viite-eheyksillä, joilla määritetään mm. mitä yhdistetyille tiedoille tapahtuu jos taulujen tiedot vaihtuvat tai niitä poistetaan. Tässä tapauksessa esim. viestejä ei tarvitse poistaa jos niiden kirjoittaja poistetaan. Tämä voi olla käyttäjälle harmillista keskustelupalstoilla, mutta itsehän olemme vastuussa kirjoituksistamme. 2.2 SQL SQL (Structured Query Language) on IBM:n standardoima ohjelmointikieli tai tässä tapauksessa kyselykieli, joka tarkoitettu erityisesti käsittelemään relaatiotietokantoja. SQL:llä käsittää sekä datan määrittelyyn, että datan hallinnoimiseen kuuluvan syntaksin. SQL on sekä ANSI että ISO standardi. SQL:llän keskeisiin periaatteisiin kuuluvat relaatiotietokannan mukaisesti taulut, rivit, ja pystypalkit. Jokaisella taululla on omat pystypalkkinsa, joihin data on tallennettuna ko. pystypalkin datatyypin ja nimen mukaisesti. Jokainen rivi taasen sisältää dataa liittyen kunkin kohdalla olevan pystypalkin datatyypin ja nimen mukaisesti. Osa rivien alkioista voi olla NULL-arvoisia, eli niissä ei ole välttämättömästi dataa. Tämä on kuitenkin määritelty ko. taulun luonnin yhteydessä. Taulujen riveiltä haetaan dataa SQL:llän määrittelemien kysely-syntaksin avulla. Kysymys voi suomennettuna olla mm. keillä kaikilla henkilöillä yhteystiedoissani on numeroilla 310 alkava puhelinnumero. Relaatiomallin mukaisesti on tärkeätä, että jokaisella taululla on pystypalkki, joka määrittä ns. pääavaimen. Pääavaimen avulla data voidaan uniikisti yksilöidä, ja jos esim. kaksi eri taulua käyttää samaa avainta, ne voidaan yhdistää

yhdeksi kokonaisuudeksi. Pääavaimien rinnalla toimivat myös ns. vierasavaimet, jotka pääasiassa auttavat linkittämään taulut yhteen, kunhan vierasavain vastaa arvoltaan toisen taulun pääavaimen arvoa. Yleisimpiä avaimia ovat ns. id:t. SQL:llän kaikkein tärkeimpiä käyttökäskyt ovat SELECT, INSERT, UPDATE ja DELETE. Määrittelykäskyistä tärkeimpiä ovat CREATE TABLE, CREATE DA- TABASE ja ALTER-käsky. Huomioimisen arvoista on, että SQL ei ole ns. case sensitive. SQL:llän syntaksia ei kiinnosta käytätkö isoja vai pieniä kirjaimia, mutta yleisten kirjoitusperiaatteiden mukaisesti, käyttö- ja määrittelykäskyt kirjoitetaan kokonaan isolla, jotta ne erottuvat yksilöivistä pystyriveistä. Käskyjä tullaan käsittelemään myöhemmin esimerkeissä MySQL:llän käytöstä enemmän puhuttaessa. 3 MYSQL 3.1 MySQL yleisesti MySQL on relaatiotietokantaohjelmisto, jolla voidaan luoda, ylläpitää ja muuttaa ja hallinnoida tietokantoja. MySQL on yksi käytetyimmistä tietokantaohjelmistoista, ja on osa erästä suosittua serverin ylläpitoratkaisua, LAMP:ia, joka tarkoittaa Linux, Apache, MySQL ja PHP:n yhdistämistä serverin ylläpitotyökaluiksi. MySQL:llän etu on sen mukautuvaisuus tarpeiden mukaan. Kaupallisesti käytettävänä se on yksi käytetyimmistä, ja on lisäksi saatavilla yksityisille kuluttajillekin vapaan GNU GPL lisenssin kautta. Ero on tässä tapauksessa lähinnä ohjelmistojen omisteisuus. MySQL-tietokannan loi suomalainen Michael Monty Widenius vuonna 1995. Hänen kanssaan yhteistyössä toimi ruotsalainen David Axmark. Huvittava pieni fakta on, että MySQL:llän nimestä osio My on tullut Montyn tyttären mukaan. Sun Microsystems, nykyisin Oracle, osti MySQL:llän vuonna 2008 700 miljoonalla eurolla.

3.2 MySQL toiminta MySQL:llää käytetään hyvin usein LAMP-alustan kanssa. LAMP-alusta on joukko avoimen lähdekoodin ohjelmia, jotka muodostavat yhdessä WWW-palvelimen, jonka avulla voidaan suorittaa dynaamisia websivuja. LAMP-alusta sisältää ohjelmat: Linux, joka on avoimen lähdekoodin käyttöjärjestelmä Apache, joka on webpalvelin MySQL/MariaDB, jotka ovat tietokantarajapintoja/ohjelmistoja PHP, Perl ja/tai Python, jotka ovat komentosarjakieliä MySQL:llän käyttö ei kuitenkaan rajoitu näihin ohjelmointikieliin, vaan tuki löytyy myös mm. C++:lle. MySQL:llää voidaan käyttää joko arviolta käytetyimmän MySQL Workbenchin, joka on graafinen käyttöliittymä MySQL:lle, läpi tai sitten komentolinjan läpi, eli DDL (Data Definition Language) kautta. Workbenchin kautta tietokannan käyttö voi olla helpompaa, mutta DDL:llän käyttö on tehokasta ja toimivaa, sillä sen avulla voidaan mm. automatisoida tietokannan tarkistusta. Voimme esimerkiksi laskea satunnaisen käyttäjän viestien määrän seuraavalla komennolla kuvitteellisessa tietokannassa: SELECT COUNT(k.id) as ViestiLKM FROM käyttäjä.viestit k; Tässä esimerkissä suoritetaan kysely käyttäjät tietokannan viestit tauluun aliaksella k, tarkoituksena laskea viestien määrä pystypalkin id rivien määrien kautta. 4 POSTGRESQL 4.1 PostgreSQL yleisesti PostgreSQL on avoimena lähdekoodina jaettava olio-relaatiotietokantapalvelin, joka on lisensoitu joustavalla BSD-tyyppisellä lisenssillä. PostgreSQL on yksi vaihtoehto MySQL:llän tilalle. Se ei ole varsinaisesti minkään yrityksen tai

henkilön kontrolloima, vaan perustuu kansainvälisen yhteisön tekemään yhteistyöhön. Tämä tarkoittaa käytännössä sitä, että tässä yhteisössä on tietty ydinryhmä, joka viime kädessä päättää siitä, mitkä muutokset otetaan mukaan koodipuuhun. PostgreSQL kattaa suuremman osan SQL-2003-standardista kuin MySQL ja tukee MySQL:llän tapaan tyypillisiä ACID-ominaisuuksia. ACID-ominaisuuksia ovat: Atomic: Transaktio joko tapahtuu tai ei Consistent: Transaktio jättää tietokannan yhteensopivuustilaan Isolated: Transaktio tapahtuu eristyneesti Durable: Transaktio tallentuu myös virtakatkoksen varalta PostgreSQL:llän kehitys alkoi jo Ingresin kaupallisesta versiosta vuonna 1982. Nimi Postgres tuli varsinaisesti siis Ingresin jälkiprojektina, jonka tarkoituksena oli vastata tuon aikaisten tietokantojen ongelmiin. Vuonna 1996 tapahtui nimenmuutos PostgreSQL:lläksi SQL-tulkin korvatessa vanhemman Ingres-pohjaisen QUEL-systeemin. 4.2 PosgreSQL toiminta PostgreSQL toimii mm. Microsoft Windowsilla, useimmilla Unix-pohjaisilla ja Unixin kaltaisilla käyttöjärjestelmillä. PostgreSQL:llässä toimivia funktioita voidaan kirjoittaa mm. sisään rakennetulla PL/pgSQL:llä, Perlillä, Pythonilla, C:llä ja C++:lla. Varsinainen toiminta on kuitenkin SQL-kielellä. ACID-periaatetta vahvistaakseen PostgreSQL käyttää Multi-Version Concurrency Controlliksi (MVCC) nimettyä järjestelmää, joka antaa jokaiselle käyttäjälle käyttöönsä tilannevedoksen tietokannasta. Käytännössä tämä mahdollistaa muutosten tekemisen siten, että ne eivät näy muille ennen kuin tapahtuma on valmis ja hyväksytty. PostgreSQL käyttää sisäänrakennettuja B- ja R-puun indeksien lisäksi käyttäjän määrittelemiä indeksejä. Indeksit ovat tietorakenteita, jotka kopioivat tietokannan taulujen sisältämän datan muotoon, josta tiettyjen hakujen on nopeampaa löytää tarvittava tieto. Nämä indeksit tukevat lukuisia ominaisuuksia, joita ovat mm. lausekeindeksit, jotka indeksoivat lausekkeen tai funktion tuloksia pelkän sarakearvon asemasta, sekä osittaisindeksit, jotka indeksoivat ainoastaan osan taulusta. Lisäksi käytöstä löytyvät bittikarttaindeksihaut, joiden

avulla luodaan bittikartta näiden indeksien ja edot täyttävien monikkojen leikkauskohdista.

LÄHTEET http://www.iltasanomat.fi/kotimaa/art-1288337055321.html?id=1668839 http://www.mysql.com/about/ http://www.postgresql.org/about/ https://jyx.jyu.fi/dspace/bitstream/handle/123456789/37697/urn:nbn:fi:jyu- 201204161538.pdf?sequence=1 http://www.w3schools.com/sql/default.asp