Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas
Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä varten Teoria Käytäntö SQL -komentokielen käyttö Harjoituksia Käytännönläheinen lähestymistapa tietokantoihin Harjoitustyö Yksinkertainen verkkokauppa toiminnallisuuksineen Jatketaan Internet-ohjelmoinnissa ensi periodissa
Kurssin rakenne 1 periodi (7 viikkoa => 7 sessiota) Joka viikko: 2x45min, tauko, 2x45min Vähän teoriaa, kaaviot Harjoituspainotteinen Käytännön SQL Ei kotiläksyjä Tentti
Kurssin arviointi Tentti alustavasti: 4 tehtävää, 6p/kysyms (max 24p) Läpäisyyn 10p (40%) Harjoitustyö: Arviointi 0-5 Painotus harjoitustyössä Harjoitustyö 60% Tentti 40% Harjoitustyö palautettu tenttiin mennessä
Mikä on tietokanta?
Mitä on tiedonhallinta?
Miksi tiedonhallintaa käytetään?
Johdanto Tietokannat ja tietokantajärjestelmät ovat olennainen osa kaikkea nyky-yhteiskunnan tietojenkäsittelyä Ihmiset käyttävät tietokantoja päivittäin esimerkiksi: Pankkiasioihin Matkanvarauksiin Kirjastoissa Kaikessa mihin kirjataan jotain
Johdanto Tietokannat tulevat hallitsemaan maailmaa Kaikkea varastoidaan: Tietoa tekstinä Dataa (kuvia, videota...) Viitteitä kaikkeen Google
Tietokanta Tietokannalla yleensä tarkoitetaan kokoelmaa asioista jotka liittyvät toisiinsa, eli ovat relaatiossa Tietokanta on yhdemukaisesti tiettyjen ehtojen raameihin aseteltua dataa Tietokannan olemassaololla on tarkoitus Tietoa voidaan tehokkaasti käyttää vain kun kanta on tarkoituksenmukaisessa käytössä Tietokanta tehdään vain tiettyä päämäärää varten Mitä tietoa tarvitaan ja miksi Käyttötilanteita silmällä pitäen Koot vaihtelevat
Miksi ei näin? Opiskelijatietoja hallinnoiva henkilö tallentaa Teemun opiskeluasioita tiedostoon Teemu on töissä koululla. Hallinnossa työskentelevä henkilö laittaa palkkatiedot toiseen tiedostoon XML?
Koska se on ikävää Tietoa lähes mahdotonta pitää yhtenäisenä Tiedon toistoa Fyysisten tiedostojen kanssa operointi on hidasta, tilanhukkaa sekä järjestelmälle raskasta Tietokantajärjestelmä pitää kaiken tiedon yhtenäisenä kauniina pakettina
Ohjelmien, datan ja datan määrittelyn erottaminen toisistaan Tietokantalähestymistavan perustana on säilyttää sekä data että siihen liittyvät kuvaukset yhdenmukaisesti tallennettuina Määritelmät on tallennettu "katalogiin", jossa on kuvattuna jokaisesta tiedosta ja tiedostosta niiden: Rakenne Tyyppi Formaatti Rajoitukset
Datan tarkastelu Tietokannoilla on koneelliset "käyttäjät" Eivät ihan ihmisiä Jokaista pyyntöä tietokantaan ohjaa "käyttäjän" status Tietokantaa käytettäessä haluttu data ei tietenkään tarvitse olla suoraan kannasta haettua Usein tietokanta rakennetaan siten, että varsinainen kiinnostava data johdetaan muusta ehkä vähemmän oleellisesta datasta (esim. opiskeleeko?)
Datan tarkastelu Useamman käyttäjän on pystyttävä käyttämään kantaa samanaikaisesti omiin tarkoituksiinsa ja kirjoittamaan dataa samaan aikaan. Tiedonhallintajärjestelmän ja tiedostojärjestelmän suurin ero on yhtäaikaisuus, ja mahdollisuus erotella yhtäaikaiset tapahtumat toisistaan
Tiedonhallintajärjestelmä Tiedonhallintajärjestelmä (DBMS) on sovellus tai kasa sovelluksia, jotka ohjaavat ja operoivat tietokantaa Kaikki tietokannat pohjautuvat yhden DBMS:n toiminnan varaan DBMS:n avulla tehdään kaikki kantaan liittyvät hommelit: Kannan määrittely ja rakenteet Tiedon lisääminen Tiedon sörkkminen Yleensä tietokantahallintajärjestelmä ja tietokanta on suunniteltu "käsikädessä" ja kantavat yhteistä nimeä
Yleisiä DBMSejä MySQL PostgreSQL Microsoft Access Oracle SQLite...
MySQL (DBMS) Maailmalla erittäin yleinen Käyttää mm. Facebook, Youtube Käytetään pääasiassa internet-sivujen datasäilöjänä Koululla käytössä oleva tiedonhallintajärjestelmä phpmyadmin -käyttöliittymä
Tauluideologia Ihminen Etunimi Sukunimi Sotu Firma
Koulun kanta Salasana: https://amme.metropolia.fi/mysql/ Hallintapaneeli: https://users.metropolia.fi/phpmyadmin/
SQL-kielen perusteet DBMS:ejä ohjataan kyselykielillä SQL on "kysely"kieli, jolla ohjataan DBMS:n toimintaa Kyselyt ovat tekstimuotoisia pyyntöjä, jotka antavat DBMS: lle ohjeen tehdä jotain
Oleellisimmat SQL-lauseet create table taulun_nimi (rivin1_nimi tyyppi, rivin2_nimi tyyppi, rivin3_nimi tyyppi jne...) insert into taulun_nimi(rivi1, rivi2, rivi3...) values (arvo1, arvo2, arvo3...) select rivi1, rivi2 from taulu where jotain = jotain
Relaatioajatus Relaatiotietokannassa lähes jokaisella taululla tulisi olla ainutlaatuinen tunniste, eli primääriavain (primary key) Tällä tunnisteella yksilöidään taulun rivien tiedot toisiinsa Tunniste yhdistetään toisten taulujen tunnisteeseen (foreign key), jolloin saadaan yksi yhteys, joka yhdistää eri taulujen rivit toisiinsa
http://howfuckedismydatabase.com/