TIETOKANTOJEN PERUSTEET MARKKU SUNI
OSIO 01 Peruskäsitteitä
Kurssin tavoite: antaa osallistujille valmiudet ymmärtää tietokantojen periaatteet ymmärtää tietokantojen suunnittelunäkökohtia osallistua tietokantojen suunnitteluun osallistua tietokantojen hyväksikäyttöön SQL-kielellä
Kurssin sisältö perusperiaatteita, sanastoa, käsitteistöä tietokantojen perusteita suunnittelunäkökohtia SQL-kieli SQL-kielen käyttöä harjoituksia Nämä menevät osittain limittäin ja kertautuvat
Palautetaan mieleen peruskäsitteitä: data - tieto, esim. luvut 3,14 tai 42 tai 1 informaatio - tieto johonkin tarkoitukseen - esim. hampurilainen tarjouksessa 1 tietämys - informaatio oikeassa ympäristössään - em. hinnan suhde varallisuuteen, - hampurilaisen ravintoarvo
Mittayksiköitä: peta - P, 10 15 tera - T, biljoona, 10 12 giga - G, miljardi, 10 9 mega - M, miljoona, 10 6, tai 2 10 * 2 10 (1.048.576) kilo - K, tuhat, 10 3, tietokoneissa usein myös 1024 ( 2 10 ) perusmitta, yksin kappalein milli - m, tuhannesosa, 10-3 mikro μ, miljoonasosa, 10-6 nano - n, miljardisosa, 10-9 piko - p, 10-12
Palautetaan mieleen perusidea rakenteista: Rakenne on yksi asia, sen toteutus (implementointi) toinen Jono muuttuu pinoksi vain käsittelysääntöjä muuttamalla
Puhutaan rakenteista: Osoitin: tieto, jonka avulla löytyy jokin: LISTA (rakenne)
Puhutaan rakenteista: Listan toteutus voi olla: Esimerkkinä levyn tilataulukko (FAT)
Puhutaan rakenteista: Esimerkkinä levyn hakemistorakenne: Juurihakemisto harmaat hakemistoja, punaiset tiedostoja C:\tieto\vanha\a.txt
Tiedosto: nimettyä tilaa levyllä kokoelma tietueita tyhjä tiedosto ei vielä mitään paljon tietueita tietueet voivat olla kiinteänmittaisia vaihtelevanmittaisia vaihtelevia (esim. MARC-format) rakenteettomia (esim. kuvatiedostot)
Tiedosto voi olla monimutkainen: MARC-format: tunnus, pituus, tieto tunnus, pituus, tieto Esim.: TN11KIVI,ALEKSISKN7KIHLAUSJV41848... MAchine Readable Cataloguing käytetty kirjastoissa
Jatkossa tiedoston tietue koostuu kentistä Asiakastiedosto: asnro sukunimi etunimi katuos... 012345 TOUHULA AKSELI KOTIKATU 12 021457 KIVINEN RETU KIVIKATU 1 031457 SORANEN TAHVO KIVIKATU 3... Tiedosto yleensä koostuu vain tiedoista kuvaus on erillään
Jatkossa tiedoston tietue koostuu kentistä Asiakastiedosto: 012345 TOUHULA AKSELI KOTIKATU 12 34 235 021457 KIVINEN RETU KIVIKATU 1 21 326 031457 SORANEN TAHVO KIVIKATU 3 42 314... Tiedoston hyväksikäyttö vaatii tiedon sen sisällöstä ja muodosta
Ohjelman on tunnettava tiedoston sisältö ja muoto: INPUT @1 ASNRO 6. @7 SUKUNIMI $char10. @11 ETUNIMI $char10.... 012345 TOUHULA AKSELI KOTIKATU 12 34 235 021457 KIVINEN RETU KIVIKATU 1 21 326 031457 SORANEN TAHVO KIVIKATU 3 42 314... Eri ohjelmointikielillä erilaiset käytännöt
Tiedostot sijaitsevat levyllä eri hakemistoissa erillään toisistaan hyvinkin erillään Kullakin sovelluksella on omat tiedostot päivitystahti on sovelluksen suunnittelussa sovittu sovelluksen tekijät tuntevat tiedostot ohjelmat lukevat tiedostoja oikein saattavat sisältää samojakin tietoja
Esimerkki: autoliikkeellä on asiakasrekisteri korjaamorekisteri 0123 AHO ESA KOTIKATU OPEL.. TAP-10 OPEL TAPIO JUHA.. 1432 JOKI JANNE MÄKIKATU SAAB.. PIH-1 OPEL JOKI JANNE.. 1532 MÄKI MATTI JOKIKATU OPEL.. Ja kun korjaamolla korjataan OPEL, PIH-1 Kuka saa laskun?? Kun meidän asiakasrekisteri ei päivitä meidän korjaamorekisteriä
Jo 1970-luvulla opittiin kantapään kautta: Isossa firmassa kestää 10 vuotta saada tiedot kulkemaan oikein ajallaan oikeaan paikkaan. Kerran, pari vuodessa lähti asiakkaille puppulaskut. Ongelma ei ollut vain tietojen talletuksen suunnittelussa. Koko prosessi täytyi saada kuntoon.
Asiakas Tilaus Ennen: runsaasti erillisiä tiedostoja Joka sovelluksella omat tiedostonsa Kukin tieto talletettiin tarpeen mukaan Sama tieto saattoi olla useassa paikassa Korjaamo Varaosat Miten täsmätään päivitykset??
Tietokanta asiakas tilaus Korjaamo Varaosat Siis: runsaasti erillisiä tiedostoja Joka sovelluksella omat tiedostonsa Kukin tieto talletettiin tarpeen mukaan Sama tieto saattoi olla useassa paikassa Syntyi ajatus: laaditaan tietokanta (data base) eli yrityksen kaikkien tie(dos)tojen yhdistelmä Kaikki tieto yhdessä paikassa.
Tietokanta asiakas tilaus Korjaamo Varaosat Ennen: runsaasti erillisiä tiedostoja Joka sovelluksella omat tiedostonsa Kukin tieto talletettiin tarpeen mukaan Sama tieto saattoi olla useassa paikassa Sitten: tietokanta kaikkien tie(dos)tojen yhdistelmä kukin tieto vain kerran kukin ohjelma näkee näkymän näkymät halutun muotoisia
Tietokanta asiakas tilaus Korjaamo Varaosat Ennen: runsaasti erillisiä tiedostoja Joka sovelluksella omat tiedostonsa Kukin tieto talletettiin tarpeen mukaan Sama tieto saattoi olla useassa paikassa Sitten: tietokanta kaikkien tie(dos)tojen yhdistelmä kukin tieto vain kerran kukin ohjelma näkee näkymän näkymät halutun muotoisia
Tietokanta asiakas tilaus Korjaamo Varaosat Tietokantarakenteita hierarkinen esim DL/1 relaatiomalli erilliset pienet taulut taulujen välillä relaatiot kyselyn tulos aina: monta havaintoa kaikki ehdon täyttävät
Tietokanta kaikki tiedot samassa järjestelmässä kukin tieto (asiakkaan nimi tms.) esiintyy vain kerran päivitetään vain yhteen paikkaan ohjelmat lukevat haluamiaan tiedostoja ohjelmaa ei tarvitse muuttaa jos tietokanta muuttuu uusia tietoalkioita uusia tiedostoja tiedostot esiintyvät näkyminä olemassaolevat ohjelmat toimivat
Tietokanta Näistä vaatimuksista seuraa: tietokantaan liittyy ohjelmisto, joka hoitaa sitä tämä ohjelmisto varsinaisesti lukee ja kirjoittaa kantaa tuotanto-ohjelmat vain pyytävät palveluja mikä tehokkaasti, mikä vähemmän näkymä -ajattelu ohjelma pyytää tietoja nimeltä READ ETUNIMI, SUKUNIMI... ohjelman ei tarvitse tietää, missä kenttä sijaitsee tietokantajärjestelmä tarvitsee myös omat työtilat VIHREÄ RYHMÄ
Tietokanta Näistä vaatimuksista seuraa myös: kukin tieto vain yhdessä kohtaa tieto on turvattava kuka saa muuttaa suojaus kuka on muuttanut tieto muutoksista, jäljitys kaikki ohjelmat käyttävät samaa tietokantaa tuettava samanaikaista käyttöä tietojen lukitus tietokanta järjestettävä ja talletettava tehokkaasti PUNAINEN RYHMÄ
This is the end The Doors