TIETOKANTOJEN PERUSTEET MARKKU SUNI
Tarkastellaan tietokantojen perusominaisuuksia taulujen suhteita toisiinsa tietokantojen suunnittelun alkeita
Id enimi snimi muuta 1 Aki Joki xxx 2 Esa Elo yyy Id katuos postios maa 1 Alikatu 20100 FI 2 Ylikatu 20880 FI Id tuotenro pvm kpl 1 11 010101 10 1 13 010101 12 2 11 010201 15 Tuotenro hinta nimike 11 100 metla 12 10 pesti 13 20 sevakko Tilauslista: enimi snimi katuos postios tuotenro nimike kpl yhthinta yhdistävinä tekijöinä: id ja tuotenro
Arkkitehtuureista Client - asiakas: laite/ohjelma, jossa on business-logiikka tietojenkäsittelylogiikka käyttöliittymä Server - palvelin: ohjelma, joka hoitaa tietokantaa Kaksitasoinen asiakas/palvelin-arkkitehtuuri
Arkkitehtuureista Client - asiakas: ohjelma, jossa on business-logiikka tietojenkäsittelylogiikka käyttöliittymä Server- palvelin: ohjelma, joka hoitaa tietokantaa Palvelimia voidaan eriyttää ja saada kolmetasoinen asiakas/palvelin-arkkitehtuuri
O
Kolmetasoinen asiakas/palvelin-arkkitehtuuri (three tier client/server architecture) käyttöliittymätaso loppukäyttäjän koneessa (asiakas) businesslogiikka ja tiedon käsittelylogiikka sovelluspalvelimessa tietokanta tietokantapalvelimessa
O
Kolmetasoinen asiakas/palvelin-arkkitehtuuri etuja: ohut asiakas vaatii vain vähän prosessointikapasiteettia ehkä vain Web-selain käyttöliittymänä yksinkertaisempi sovelluksen ylläpito vain yhdessä laitteistossa ohjelmiston jakeluongelmat poistuvat kasvanut modulaarisuus: yhtä tasoa voidaan kehittää muista riippumatta kuorman tasapainotus helpottuu erotettaessa tietokanta muusta toiminnasta voidaan liittää mukaan tapahtumainhallintajärjestelmä (TPM Transaction Processing Monitor)
Tietokantajärjestelmän tarjoamat palvelut tiedon talletus, haku ja päivitys fyysiset talletuksen yksityiskohdat piilotetaan käyttäjiltä koskee myös muutoksia rakenteissa käyttäjien saatavilla oleva luettelo (Catalog) tiedot tietokannasta itsestään: taulujen nimet tietoalkioiden nimet, tyypit ja koot eheyssäännöt käyttäjien oikeudet ja rajoitukset
Tietokantajärjestelmän tarjoamat palvelut tuki tapahtumainkäsittelylle yksinkertaiset tapahtumat tekevät pienen muutoksen suuremmat tapahtumat voivat vaatia lukuisia operaatioita eri tauluihin katkon sattuessa kesken tapahtuman tietokannan tila on epämääräinen tarvitaan mahdollisuus palauttaa tietokanta tapahtumaa edeltäneeseen tilaan tarvitaan mahdollisuus suorittaa tai palauttaa tarvitaan jäljitysketju tarvitaan loki
Tietokantajärjestelmän tarjoamat palvelut samanaikaisuuden hoito (concurrency control services) kahden käyttäjän samanaikainen luku ei ongelma kahden käyttäjän samanaikainen päivitys on ongelma on voitava lukita tarvittaessa ja lukko avata koko tietokanta tietty taulu tietyn taulun tietty osa
Tietokantajärjestelmän tarjoamat palvelut toipumispalvelut (recovery services) vaurioiden, katkojen tms. tapahduttua on tietokanta voitava korjata ja palauttaa ennalleen tähän tarvitaan valmis mekanismi oikeuksien hoito (authorization services) käyttäjille on voitava antaa erilaisia oikeuksia: NN saa tehdä korkeintaan X sekuntia kestävän kyselyn lukea tauluja X, Y, Z, lukea taulun X sarakkeita X 1, X 2, X 3,... päivittää tauluja X, Y, Z päivittää taulun X sarakkeita X 1, X 2, X 3,...
Tietokantajärjestelmän tarjoamat palvelut tietoliikenneyhteyksien palvelu (support for data communications) DBMS pystyy toimimaan tietoliikenneohjelmien kanssa jopa PC:ssä toimivat voivat käyttää palvelinkoneen tietokantaa eheyden hoito (integrity services) talletetun tiedon tulee ohjaa eheää ja konsistenttia kyseessä toisen tyypin tietosuoja
Tietokantajärjestelmän tarjoamat palvelut tietoriippumattomuuden tuki (services to promote data independence) tavallisesti tämä aikaansaadaan näkymillä tietojen talletusmuotoa voidaan muuttaa, hakemistoja lisätä yms. ilman, että se vaikuttaa ohjelmiin ja käyttöön fyysinen tietoriippumattomuus looginen tietoriippumattomuus on yleensä vaikeampi toteuttaa apuohjelmat (utility services) apuohjelmia hoitamaan tietojen massakäsittelyä tms
Miksi tietokantajärjestelmä? Etujako? tiedon redundanssi (toisto) vähenee tiedon yhtenäisyys (consistency) tiedon jakamismahdollisuus tehostunut tiedon eheys tehostunut ja helpottunut ylläpito
Miksi tietokantajärjestelmä? Haittojako? monimutkaisuus (complexity) kustannukset (cost) konversiokustannukset suorityskyky, tehokkuus (performance) vian suurempi vaikutus (higher impact of failure)
INSERT INTO rahtaajat ( yritys, puhelin ) VALUES ( 'Speedy Gonzales', '050-123 4567' ); SELECT * FROM rahtaajat; Rahtaajatunnus Yritys Puhelin 1 Speedy Express (503) 555-9831 2 United Package (503) 555-3199 3 Federal Shipping (503) 555-931 4 Speedy Gonzales 050-123 4567 Näin on ja siltä näyttää
Tietokannan hoitaja voi määritellä joukon asioita Tietylle sarakkeelle tulee arvo automaattisesti aina vakio kasvava järjestysnumero aikaleima Sarakkeen arvon oltava yksikäsitteinen (UNIQUE) Sarakkeen arvon täytettävä ehtoja muoto arvoalue Eheyssäännöt saattavat koskea lisäyksiä
Tietojen muokkaaminen ei ole riskitöntä Lisäys ja muuttaminen on arka asia Kirjoitusvirhe aiheuttaa hankaluuksia Komennolla COMMIT suoritetaan muutokset Komennolla ROLLBACK vedetään takaisin (EIKU) Tietokannan hoitaja voi määritellä näille rajoituksia COMMIT voi olla automaattinen aikaleima lokiin!!!
Yksittäisten arvojen lisääminen INSERT INTO rahtaajat ( yritys, puhelin ) VALUES ( 'Speedy Gonzales', '050-123 4567' ); SELECT * FROM rahtaajat; Rahtaajatunnus Yritys Puhelin 1 Speedy Express (503) 555-9831 2 United Package (503) 555-3199 3 Federal Shipping (503) 555-931 4 Speedy Gonzales 050-123 4567 Näin on ja siltä näyttää
Life goes on day after day Hearts torn in every way So ferry cross the Aura will allways take me there And here I ll stay. People around every corner They seem to smile and say: We don t carewhatyournameis, boy We ll never turn you away So I ll continue to say Here I allways will stay The Pacemakers