IHTE-1900 Seittiviestintä Tietokannat 15.11. Päivän aiheet Tietokantojen perusteita Mihin tietokantoja voidaan käyttää? Mitä hyötyä tietokannoista on? Esimerkkejä tietokantojen käytöstä 1
Mihin tietokantoja tarvitaan? Monien seittisovellusten toteuttaminen olisi muuten vaikeata, esim. - verkkolehdet (StudiaMedia, MTV3 ) - verkkokaupat (kirjat, levyt, tietokoneet ) - lipunmyyntijärjestelmät (Finnair, VR ) - pankkipalvelut - mitkä tahansa todella laajat sivustot (Yahoo, TTY:n Haavi, Tutka ja julkiset sivut) - sivustot joiden sisältö usein muuttuvaa (esim. OINFOn sivut kaikille käyttäjille erilaiset) 2
Tiedostoihin perustuvat järjestelmät Myynnin järjestelmä Suunnittelu Laskutus asiakkaat tilaukset asiakkaat hinnat tuotteet tuotteet lähetetyt laskut Tiedostoihin perustuvat järjestelmät Myynnin järjestelmä Suunnittelu Laskutus asiakkaat tilaukset asiakkaat tuotteet tuotteet tuotteet lähetetyt laskut 3
Tiedostoihin perustuvat järjestelmät tuotteet Myynnin järjestelmä Suunnittelu Laskutus tilaukset asiakkaat lähetetyt laskut Tiedostoihin perustuvat järjestelmät Jokainen sovellus määrittelee itse tarvitsemansa tiedot ja määrittelee niitä Ongelmia ja rajoitteita: - tietojen eriytyminen ja eristyminen - tiedon monistuminen - tiedon riippuvuus sovelluksesta - yhteensopimattomat tiedostomuodot - tiedonhaun joustamattomuus sovelluksissa 4
Tietokantajärjestelmät Myynnin järjestelmä Suunnittelu Laskutus Tietokannanhallintajärjestelmä (TKHJ) lähetetyt tilaukset laskut tuotteet asiakkaat Tietokanta Tietokokoelma - muodostaa hallinnollisen kokonaisuuden Tiedon oletetaan olevan suhteellisen pysyvää - tietoja voidaan haluta säilyttää jopa useiden (kymmenien) vuosien ajan Tietokannanhallintajärjestelmällä (TKHJ) hallitaan joukkoa loogisesti toisiinsa liittyvää tietoa 5
Tietokannanhallintajärjestelmä TKHJ on yleensä ainoa sallittu tapa käsitellä tietokantaa TKHJ tarjoaa rajapinnat tietokannan käsittelyyn: - työkalut suurten tietomäärien käsittelyyn - tietojen tallennus ja hakeminen - tietojen suojaaminen luvattomalta käytöltä ja vahingoilta - useiden käyttäjien hallittu yhtäaikainen tiedonkäsittely Tietokantakieli Käyttäjä voi luoda tietokannan ja määritellä sen loogisen tietorakenteen - DDL: data definition language Tiedonhaku- ja käsittelyoperaatiot määritellään omalla kielellään - DML: data manipulation language - query language 6
Metatieto Tietoa tiedosta (vrt. HTML:n metadata) Mitä informaatiota tietyissä tallennetuissa tiedoissa on ja kuinka tiedot on tallennettu Esim. tietoa - käyttäjistä - käyttöoikeuksista - omistajista - tilastotiedoista - sallituista arvoista Tallennettu TKHJ:n tietohakemistoon Tietokantojen käytön etuja Tietojen - Monistumisen ja oikeellisuuden hallinta sekä yhdenmukaisuus - Jakaminen - Parempi saatavuus ja vastaavuus Enemmän informaatiota samassa tietomäärässä Skaalaedut Yhtenäistää käytäntöjä Tuottavuuden nousu Ylläpito helpottuu - Varmuuskopioinnin yms. Keskittäminen - Paremmat suojaukset ja turvallisuus 7
Tietokantojen käytön ongelmia Monimutkaisuus Koko TKHJ:n hinta (peruskustannukset) Mahdollisesti tarvittava lisälaitteisto Suorituskyky (esim. reaaliaikajärjestelmissä) Vakavan vian sattuessa suurempi vaikutus Tietokantoihin liittyviä rooleja Loppukäyttäjät - Yleensä erillisten sovellusten kautta Sovellusten tekijät, tietokantasuunnittelijat Tietokannan hoitaja - Takaa tietokannan toimivuuden - Käyttöoikeudet, suorituskyky, konfigurointi, tk-suunnittelu, konsultointi, käyytötuki, käytön seuranta, varmistukset, levytila jne Lisäksi ehkä esim. operaattorit, työkalukehittäjät jne 8
Tietokantojen jaottelua Henkilökohtaiset tietokannat - henkilökohtaisella koneella, yksi käyttäjä, yksi käyttötarkoitus Työryhmätietokannat - paikallisverkko, yleensä < 25 henkilöä, yksi käyttötarkoitus Osasto/pienyritystietokannat - paikallisverkko, yleensä < 100 henkilöä, useita käyttötarkoituksia Yritystason tietokannat - koko organisaation päätöksentekoa tulevia, suuria Ensimmäiset tietokannat Ensimmäiset kaupalliset TKHJ:t 1960-luvulla - kehitetty tiedostojärjestelmien pohjalta Eivät tukeneet korkean tason kyselykieliä Täytetyt tietomallit kuvastivat tiedon talletusrakenteita Talletettu tieto muodostui useista pienistä tietoalkioista ja tietoihin kohdistuvat kyselyt ja päivitykset yleisiä Esim. lentoyhtiön paikkavarausjärjestelmään talletettiin tietoalkioina paikkavaraukset, lentoaikataulut ja hinnasto 9
Tietokantojen rakenne Yleisimmät tietomallit - Hierarkkinen tietomalli - Verkkomalli - Relaatiomalli - Oliomalli - Olio-relaatiomalli Esimerkit Johdatus tietokantajärjestelmiin -kurssin materiaalista (Jari Peltonen, TTY) 90% nykyisistä tietokannoista relaatiomallin mukaisia - lähtökohtana 1970-luvulla kirjoitettu artikkeli A relational model for large shared data banks (Codd) - ideana esittää tieto käyttäjälle tauluina (relaatioina): varsinainen tiedon talletusrakenne peitetään käyttäjältä Hierarkkinen tietomalli Y1 Oy Aikon Ab Tampere T1 Känny A 100 T2 Banaani B 50 Y2 Green Spiece ltd. Temmes T1 Banaani B 30 T2 Päärynä B 40 T3 Omena B 50 10
Verkkomalli Y 1 Oy Aikon Ab Tampere Y1 Y1 T1 T2 T1 T2 Känny Banaani Y 2 Green-spiece ltd. Temmes Y2 Y2 Y2 T2 T3 T4 T3 T4 Päärynä Omena Relaatiomalli Valmistus TuoteID YritysID Määrä T1 Y1 100 Tuotteet TuoteID T_nimi Ryhmä T2 Y1 50 T1 Känny A T2 Y2 30 T2 Banaani B T3 Y2 40 T3 Päärynä B T4 Y2 50 T4 Omena B Yritys YritysID Y_nimi Kaupunki Y1 Oy Aikon Ab Tampere Y2 Greenspiece ltd Temmes 11
SQL Yleisesti käytetty relaatiomalliin perustuva standardoitu kyselykieli (Structured Query Language) Lähes kaikki relaatiotietokannat ymmärtävät SQL:ää Esim. SELECT Y_nimi FROM Yritys WHERE Kaupunki = Tampere Tietokantaliitynnät Valikko/lomakepohjaiset, graafiset, viivakoodi, luonnollinen kieli, seittiliitynnät jne Avoimet ja yhtenäiset rajapinnat (API) Hajautus: - tietojen ja/tai tietojenkäsittelyn teknistä hajauttamista Asiakas-palvelin arkkitehtuuri - tietovarastojen ja käyttäjäosuuden toisistaan erottaminen 12
Asiakas-palvelin arkkitehtuuri Tietokantajärjestelmissä voidaan asiakas-palvelin arkkitehtuuria soveltaa usealla tavalla Miten tehtävät jaetaan asiakkaan ja palvelimen välillä: - koko TKHJ on palvelin, mutta ainoastaan käyttöliittymä on asiakas. Käyttöliittymä kommunikoi käyttäjän ja palvelimen kanssa (yksinkertaisin tapa) Miten tehtävät jaetaan asiakkaan ja palvelimen välillä: - asiakkaan tehtävien lisääminen tasoittaa järjestelmän kuormitusta, koska kuormituksen kasvaessa palvelimista tulee pullonkauloja - pullonkauloja pyritään poistamaan esim. valmiiksi tallennetuilla proseduureilla Tapahtumankäsittely OLTP, OnLine Transaction Processing Tarkoituksena estää yhteisen tietokannan samanaikaisesta käytöstä aiheutuvat ongelmat OLTP-järjestelmät sisältävät paljon lyhyitä tapahtumia joissa käsitellään aina ajantasaista tietoa Tyypillisiä OLTP-järjestelmiä esim. pankkijärjestelmät ja suuret varausjärjestelmät: yhtäaikaisia käyttäjiä saattaa olla kymmeniä tuhansia Asiakkaiden ja palvelinten välillä toimii tapahtumankäsittelymonitori 13
Tietovarastotekniikka Yksi tapa toteuttaa suorituskyvyltään hyviä päätöksentekojärjestelmiä suurissa ympäristöissä Käytetään nykyisen toiminnan pohjana tulevan toiminnan ennustamiseksi Keskeisenä tavoitteena liiketoiminnan kehittäminen, kannattavuuden parantaminen - kerätään yhteen tiedot, jotka erityisesti tukevat päätöksentekoa - laitetaan tiedot tehokkaaseen TKHJ:ään - tarjotaan helppo käyttömahdollisuus Nykyajan vaatimuksia Yhä nopeammin vaihtuvia tieto- ja raportointitarpeita Organisaatiotasoinen tietojen käyttö ja analysointi - eri järjestelmien tietojen yhdistäminen Tieto pitää olla saatavilla kaikkialla Yhä pienempiä järjestelmiä Yhä suurempia järjestelmiä - Enemmän käyttäjiä - Suurempia tietomääriä 14
Tietokannat seitissä: etuja Uusi graafinen, helposti muokattava käyttöliittymä - yleinen, helposti lähestyttävä - riippumaton verkkojärjestelmistä, laitteistosta, käyttöjärjestelmästä - voidaan kutsua myös muita verkossa ajettavia sovelluksia - eri tietotyyppien esitystavat ratkaistu valmiiksi - voi säästää kehitystyötä Uusi jakelukanava tietokantojen tiedoille Seitin suosio Saatavilla mistä vaan, koska vaan Edulliset asennus- ja käyttökustannukset Helppo tapa C/S-toteutuksiin Tietokannat seitissä: ongelmia Luotettavuus: esim. meneekö tieto perille? Turvallisuus: käyttäjätunnistus, turvattu tiedonsiirto Kustannukset: monimuotoisten sivujen ylläpito Järjestelmän skaalautuvuus HTML:n rajoitukset ja keskeneräinen kehitystyö Yhteyden tilattomuus Kaistanleveys Tehokkuus/suorituskyky Tietokantaosaamisen lisäksi perustamisessa tarvitaan TCP/IP-toteutusosaamista Ei yhdenmukainen perinteisten C/S toteutusten kanssa 15
Tietokannat seitissä: miksi? Dynaamisesti rakennettavat sivustot - sisältö aina ajan tasalla, ylläpito vähenee erityisesti suurissa sivustoissa Sisällön ja ulkoasun erottaminen Helppo laajennettavuus Vuorovaikutteisuuden lisääminen Kompleksisuuden hallinta Loppukäyttäjän ei osattava HTML-kieltä WSamanaikaiset käyttäjät Tietokannat seitissä: miten? Seittiohjelmointi avuksi, esim. - CGI: yleinen, yksinkertainen, kieliriippumaton, palvelinriippumaton - Perl, Python jne - Piparit: pyrkimys eroon tilattomuudesta - Server API: laajennuksia palvelimiin - JAVA: appletit, servletit - Javascript - Active Srves Pages (ASP) - jne 16
Tehtävä 8 viikko 45 Esimerkin mukainen www-lomake, jossa on - Valintanappeja (radiobutton) - Tarkistusruutuja (checkbox) - Tekstikenttiä - Painikkeita Oppimispäiväkirja, n. 1500 merkkiä Dedis torstaina 22.11. klo 16.00 Lähteet Esimerkit: - Kurssin 8102300 Johdatus tietokantajärjestelmiin luentomoniste (Jari Peltonen) Johdatus tietokantajärjestelmiin kurssin linkkisivu - http://www.cs.tut.fi/~johtika/linkit/ 17