Tietokannat. Kevät 2015

Koko: px
Aloita esitys sivulta:

Download "Tietokannat. Kevät 2015"

Transkriptio

1 Tietokannat Kevät

2 Kurssin järjestelyt Luennot, Erja Mustonen-Ollila Harjoitukset, Erja Mustonen-Ollila Harjoitustyön ohjaus, Erja Mustonen-Ollila SQLViope verkkokurssi, Erja Mustonen-Ollila Luentomateriaali, Lasse Lehtimäki Uusi 2015 luentomateriaali, Erja Mustonen-Ollila Kurssimoniste, Erja Mustonen-Ollila 2

3 Aikataulu 3. periodilla 1. Johdanto 2. Tietokannan suunnittelun vaiheet Käsitemalli ja sen muuntaminen relaatiomalliksi Relaatiomallin muuntaminen tietuekuvauksiksi 5. SQL ja sulautettu SQL 8. Tietokannan turvallisuus 9. Tietokannan tapahtumakäsittely 10. Hajautetut tietokannat 11. Oliotietokannat ja Object Query Language (OQL) 12. Tietokannat ja tietoverkot 13. Tietovarastointi (DW) 3

4 Aikataulu 3. periodilla 6. Tietokannan suojaaminen 7. Tapahtumakäsittely 8. Varmuuskopiointi ja palautus 9. Tietokantojen hajauttaminen 10. Katsaus oliotietokantoihin 11. Tietojen varastointi 12. Uutta 2015: Hajautetut tietokannat Tietovarastointi Tietokannat ja tietoturva Ohjelmistojen turvallisuus Tietokantojen uhat PHP ja MySQL 4

5 Kurssin kirjallisuus Luennot Kurssimateriaali Nopasta Kirjoja Connolly, Thomas and Begg, Carolyn : Database Systems, A Practical Approach to Design, Implementation, and Management, 2 nd Edition Date, C.J. : An Introduction to Database Systems, 7 th Edition Elmasri, R. and Navathe, S.B. : Fundamentals of Database Systems, 3 rd Edition 5

6 Tietokantojen historiaa Juuret juontuvat 1950-luvun lopulle ja 1960-luvun alkuun. Ensimmäiset "tietokannat" olivat yksinkertaisia tiedostojärjestelmiä, joista puuttui keskitetty hallinta. Ensimmäiset varsinaiset tietokannat olivat hierarkisia tietokantasysteemejä, kuten esim. IMS ja System luvun lopulla ja luvun alussa tulivat verkkotietokannat, kuten esim. Codasyl. Näissä oli vielä paljon puutteita, esim. tiedon etsiminen vaati monimutkaisten puumaisten rakenteiden läpikäyntiä. Suuri mullistus oli E.F. Codd:in julkistama relaatiomalli Käyttäjän kannalta relaatiomallin edut ovat sen yksinkertaisuus ja helppokäyttöisyys. Relaatiotietokannoissa on käytössä hakukieli, jolla ilmaistaan mitä tietoa halutaan, eikä miten tiedon löytää luvun jälkeen on syntynyt monia kaupallisia relaatiotietokantoja, esim. Oracle, Sybase ja DB2. 6

7 Historiasta tähän päivään Viime vuosikymmeninä on perinteisten kaupallisten sovellusalueiden lisäksi tietokantojen hallintajärjestelmät vallanneet alaa uusilta sovellusalueilta, kuten esim. CAD/CAM CASE Paikkatietojärjestelmät (GIS, Geographical Information Systems) Lääketieteen informaatiojärjestelmät Multimedia Näille sovelluksille tyypillisiä piirteitä ovat esim. tiedon monimutkaisuus ja monimuotoisuus, tiedon suuri määrä sekä tietokantaoperaatioiden monimuotoisuus. Sisältävät kuvaa, ääntä ja tekstimuotoista tietoa. Näille uusille sovellusalueille uusia tietomalleja ovat semanttiset tietomallit ja oliotietokannat. Relaatiotietokantojen jälkeen on alkanut kiinnostus siirtyä seuraaviin: Oliotietokannat Älykkäät tietokannat 7

8 Johdatus tiedonhallintaan Esimerkki yksinkertaisesta tietokannasta ID MERKKI MALLI KORI MOOTTORI VM. ML. HINTA 1 BMW 316i Bavaria S4 1, ,00 2 BMW 320i S4 2, ,00 3 Citroen BX 16 TRS S4 1, ,00 4 Ford Escort 1.8i CLX STW F5 1, ,00 5 Ford Mondeo 2.0i GLX S4 2, ,00 6 Ford Sierra 2.0i S S4 2, ,00 7 Ford Transit 100L Van GL Dsl PA ,00 8

9 Mikä on tiedonhallintajärjestelmä? Tietokanta on paikka, johon talletetaan käyttökelpoista tietoa. Tiedonhallintajärjestelmä (THJ, DBMS, Database Management System) on joukko ohjelmia, jotka mahdollistavat tietokannan keskitetyn luonnin ja ylläpidon. Tietokannan määrittelyprosessissa määritellään, minkä tyyppistä tietoa tietokantaan talletetaan. Tietokannan rakentamisprosessissa tehdään varsinainen tietokanta. Tietokannan käsittelyprosessissa tietoa päivitetään ja haetaan. Esimerkki edellä autoliikkeestä, jossa erilaisia vaihtoautoja. Operaatiot, joita tarvitaan tietokantaan: uusien tiedostojen lisäys uusien automerkkien lisäys olemassa olevan tiedon päivitys: muutos, lisäys ja poisto erilaisten kriteerien mukaisen tiedon haku tiedostosta 9

10 Mitä tiedonhallintajärjestelmässä on? Tiedonhallintajärjestelmä voi olla yksi- tai monikäyttöjärjestelmä. Tieto tietokannassa voi olla sekä integroitua että jaettua. Integroitu tieto: tietokanta koostuu erillisistä tiedostoista, joissa päällekkäisyys (redundancy) on osittain tai kokonaan eliminoitu. Jaettu tieto: usea käyttäjä voi käyttää samoja tietoja eri tarkoituksiin, käyttö voi olla samanaikaista (concurrency). Käyttäjät näkevät tietokannan eri tavoin käyttötarpeesta riippuen (näkymät, views). Tiedonhallintajärjestelmä koostuu: tiedosta (integroitu, jaettu) ohjelmista (DBMS) raudasta (levyt) käyttäjistä (sovellusohjelmoija, loppukäyttäjä, tietokannan hoitaja) 10

11 Kuka tarvitsee tiedonhallintaa? Tyypillisiä käyttäjiä Tuotantoyritys, pankki, sairaala, yliopisto ja valtion virasto Tyypillistä tietoa: Tuotteisiin liittyvä tieto, tilitiedot, potilastiedot, opiskelijatiedot ja suunnittelua tukevat tiedot Tiedon muoto ja erilaiset tietotyypit: "Perinteinen" tieto on merkkityyppistä tietoa. Se koostuu perustietotyypeistä, kuten luvuista ja merkeistä. Uusia sovellusalueita, jotka sisältävät lisäksi esim. kuvaa ääntä Uusia vaatimuksia tietomallille ja tiedonhallintajärjestelmälle 11

12 Joitakin käsitteitä Käsitemalli (entity-relationship model) on perustana tiedon käsitteistämisessä. Käyttötieto koostuu käsitteistä ja niiden välisistä suhteista (relationships). Käsitteitä ovat esim. tuottaja ja työntekijä yrityksessä. Käsitteiden ominaisuuksia ovat esim. työntekijän nimi ja ikä. Käsitteiden väliset suhteita ovat: 1:1, 1:M, M:N. 12

13 Tietokantasysteemin etuja Tiedon keskitetty hallinta. Tietojen päällekkäisyys vähenee tai on hallittua. Tiedon ristiriitaisuus (inconsistency) voidaan välttää. Useampi käyttäjä voi käyttää tietoa, myös samanaikaisesti. Standardointi on helpompaa. Tietojen käyttöoikeudet voidaan varmistaa. Tietojen luotettavuus ja oikeellisuus on parempi. Järjestelmää rakennettaessa voidaan ottaa eri käyttötarpeet huomioon. Uusien sovellusten käyttöönotto helpompaa. Tarjoaa tiedon varmistukseen ja toipumiseen mekanismit. 13

14 Tietokantojen haittoja Kalleus lyhyellä tähtäimellä THJ:t melko raskaita ja joskus jopa monimutkaisia Toiminnan riippuvuus tietokannasta (esim. lehtiyhtiö) 14

15 Käytä tiedostoratkaisua seuraavissa Tietokanta ja sovellukset yksinkertaisia, hyvin määriteltyjä ja melko muuttumattomia. Esimerkiksi hyvin yksinkertainen kortisto, jossa tietokantaan tulisi vain yksi taulu. Aikavaatimus on suuri. Järjestelmä yksinkertainen, jolloin tietokannan rakentaminen vie enemmän aikaa kuin tiedostoratkaisu. Tietoon ei tarvita useamman käyttäjän pääsyä. Ei tarvita monen käyttäjän ympäristöä. Tietojen oltava kuitenkin yksinkertaisia, jotka eivät sisällä monimutkaisia relaatioita. 15

16 Tiedonhallintajärjestelmän arkkitehtuuri Suosituin tapa kuvata THJ-arkkitehtuuria on ns. ANSI/SPARC -ehdotus standardiksi (vuonna 1978). ANSI = American National Standards Institute SPARC = Standards Planning and Requirements Committee Arkkitehtuuri jakautuu kolmeen tasoon: Sisäinen taso (Internal level) Käsitteellinen taso (Conceptual level) Ulkoinen taso (External level) 16

17 Kuvaukset tasojen välillä Käsitetaso Sisäinen taso Esittää käsitetason ja sisäisen tason tietueiden vastaavuudet Kertoo, kuinka käsitetason tietueet talletetaan sisäisellä tasolla Jos sisäinen taso muuttuu, tulee kuvausta muuttaa Ulkoinen taso Käsitetaso Eri käyttäjillä näkemyksiä -> erilaisia kuvauksia tasojen välillä Tietojen esitystapojen muunnokset 17

18 DBA (Database Administrator, tietokannan hoitaja) Päättää tietokannan sisällöstä Työkaluja: Päättää talletustavasta ja käsittelystrategiasta tietokannan luonti dump/restore Valtuuttaa käyttäjät Määrittää turvallisuusasiat Toipuminen ja palautus Suorituskyvyn tarkkailu ja tarvittavien muutosten tekeminen tiedon uudelleenjärjestely tietokannassa tilastolliset rutiinit esim. tiedostojen koko analyysirutiinit Tietohakemisto (Data Dictionary) "Data about data", "metadata" sisältää talletettuna kaaviot ja kuvaukset tiedon ohjelmista, käyttäjistä 18

19 Tietomalleja Käyttäjän ei tarvitse tietää tiedon fyysisiä talletusrakenteita, vaan hänellä on ulkoinen näkemys (external view) talletettuun tietoon. THJ:n on tuettava tätä näkemystä sovelluksesta toiseen (ns. tietoriippumattomuus, data independence) Tietomalleja Relaatiomalli Semattiset tietomallit: ER-malli Oliopohjainen tietomalli 19

20 Relaatiomalli Relaatiomalliin liittyviä termejä: Suom. käsite Eng. käsite Selite taulu, taulukko, relaatio relation attribuutti attribute sarake, ominaisuus rivi, monikko tuple rivi arvoalue, arvojoukko domain perusavain, primääriavain primary key pääavain avainehdokas viiteavain, vierasavain candidate key foreign key taulun aste table degree sarakkeiden lkm taulun koko cardinality rivien lkm 20 skeema schema malli näkymä view käyttäjän näkemys

21 Relaatiotietokannat Tietokanta on loogisesti yhtenäinen kokoelma tietoa, jolla on jotain sille ominaisesti kuuluva tarkoitus. Tietokanta on suunniteltu, rakennettu ja täytetty tiedoilla tiettyä tarkoitusta varten. Käyttäjäryhmät ovat tiedossa, samoin sovellukset. Esittää osaa reaalimaailmasta. Tietokannalla on tietomalli, joka esittää miten tieto näkyy käyttäjälle (ANSI/SPARC arkkitehtuurin ulkoinen taso). Relaatiotietokanta on tietokanta, joka näkyy käyttäjälle kokoelmana tauluja (ja ainoastaan tauluja). Codd esitti relaatiomallin 1970 luvulla. 21

22 Relaatioiden välinen yhteys, tiedonkäsittely Relaatio-operaatiot kohdistuvat tauluihin. Relaatioalgebran operaatioita ovat: yhdiste, leikkaus, erotus, tulo, valinta, projektio, liitos ja jako. Relaatiokalkkyyli määrittelee formalismin, jonka mukaan operaatiot suoritetaan (perustuu predikaattilogiikkaan). Tiedon käsittelykieliä (query languages), jotka toteuttavat ralaatioalgebran ja relaatiokalkkyylin, ovat esim. SQL - Structured Query Language QUEL Ingres QBE - Query By Example, IBM DB2 QBF - Query By Form Focus - 4 GL OLE - On-Line-English 22

23 Tiedon eheys Eheys tarkoittaa tiedon ristiriidattomuutta ja oikeellisuutta. Tavoitteena on estää tietokannan tietojen sellainen käsittely, joka johtaa ristiriitaisuuksiin tietokannan tietosisällössä. Eheyssäännöt määritellään tietokannan skeemassa. On olemassa neljänlaisia eheyssääntöjä, joista kolme ensimmäistä liittyy pääavaimeen ja viiteavaimeen: Avaineheys: avainehdokkaiden tulee olla yksikäsitteisiä jokaiselle riville. Käsitteellinen eheys: pääavaimen arvo ei saa olla NULL. Yhteyseheys: viittauksen toisesta relaatiosta toiseen relaatioon täytyy olla viittaus olemassaolevaan tietoon. Semanttiset eheyssäännöt, esim. työntekijän palkka ei saa olla suurempi kuin hänen esimiehensä palkka. THJ ylläpitää eheyssääntöjä. 23

24 Perusavain (Primary key) Relaation perusavain on yksikäsitteinen tunniste kyseiselle relaatiolle. Perusavain voi olla yhdiste useammasta relaation ominaisuudesta (kuitenkin harvinainen). Perusavainehdokkaita voi olla useampia, mutta lopulta tehtävä valinta, mistä tehdään perusavain ja muut ehdokkaat ovat nk. toissijaisia avaimia. 24

25 Viiteavain (Vierasavain, Foreign key) Viiteavaimella kuvataan viittauksia toisesta relaatiosta toiseen eli relaatiotietokannan taulujen välisiä yhteyksiä (yhden suhde yhteen, yhden suhde moneen ja monen suhde moneen). Viiteavain on taulun R2 ominaisuus tai ominaisuusyhdistelmä, jonka arvot ovat samat kuin pääavaimella relaatiossa R1. R1 ja R2 voivat olla yksi ja sama taulu. 25

26 Näkymä (View) Sovellusohjelmilla ja käyttäjillä on tarve nähdä relaatio hieman erilaisena kuin se todellisuudessa on. He voivat katsella relaatiota johdettujen (laskettujen) relaatioiden, eräänlaisten virtuaalirelaatioiden kautta. Joku käyttäjä ei voi nähdä joitakin relaation ominaisuuksia esim. työntekijän palkkaa. Käyttäjän tarve tietoon on vain osa-alue koko organisaation tarpeesta. Näkymä ei ole pysyvästi talletettu tietokantaan, vaan THJ tallentaa kuvauksen, jolla näkymä on tehty. Näkymien päivitys normaalirelaatioiden päivityksen yhteydessä ja toisinpäin? Ongelmaksi muodostuu tilanne, jolloin ko. ominaisuutta ei kaikista näkymistä löydykään. Kaksi mahdollisuutta ratkaista ongelma: Hylätään operaatiot ei määritellyille ominaisuuksille. Korvataan null-arvot: kaikki vertailut, joiden tuloksena null arvo katsotaan epätosiksi. 26

27 Coddin säännöt Codd E.F., sääntöä tietokannoille Relaatiotietokannan THJ:n tulee pystyä hallitsemaan tietokanta käyttämällä vain relaatio-ominaisuuksia. 1. Relaatiotietokannan kaikki tieto esitetään loogisella tasolla ja arvoina tauluissa Kaikki atomiset arvot löytyvät taulun nimen, perusavaimen ja sarakkeen perusteella. NULL -arvot esitetään kuvaamaan puuttuvia tietoja systemaattisesti, riippumatta tietotyypistä. 4. Tietokannan kuvaus tehdään samaan tapaan kuin muunkin tiedon kuvaus. 5. Tiedon määrittely, luonti ja haku (DDL, DML) on muodostettava yksi DSL, joka käsittää seuraavat toimet: 1. tiedon määritys 2. näkymien määritys 3. tiedon käsittely 4. eheyden käsittely 5. valtuutukset 6. tiedonsiirron rajoitukset (pysyvä tieto vai ei) 27

28 Coddin säännöt Codd E.F., sääntöä tietokannoille 6. Näkymien päivitys oltava mahdollista (Näkymien päivitys) 7. Haun lisäksi tulee tauluun voida kohdistaa toiminnot lisäys, päivitys ja poisto (Korkean tason tiedon lisäys, muutos ja poisto). 8. Päätetyöskentely tai sovellusohjelmat eivät muutu vaikka tiedon fyysinen esitystapa muuttuu (Fyysisen tiedon riippumattomuus). 9. Päätetyöskentely tai sovellusohjelmat eivät muutu vaikka tiedonsäilyttäviä muutoksia tehdään tietokannan tauluihin (Loogisen tiedon riippumattomuus). 10. Eheysrajoitteet määritetään DSL:ssä ja talletetaan tietokannan tauluihin (Eheysriippumattomuus). 11. Tiedon käsittely on samanlaista olipa tieto keskitetty tai hajautettu (Hajautusriippumattomuus). 12. Alemman tason tiedonkäsittely ei voi kiertää ylemmän tason määrityksiä. 28

29 Tietokannan suunnittelun eri vaiheet Tietokannan suunnittelu on osa systeemityötä. Tietokannan suunnittelu painottaa enemmän tietojen suunnittelua kuin sovellusten ja niiden toimintojen suunnittelua => tietokeskeinen näkökulma. Suunnitellaan yhden tai useamman tietokannan looginen ja fyysinen rakenne, joilla toteutetaan organisaation henkilöiden tietotarpeet tiettyjä sovelluksia käyttäen. Tietokannan suunnittelun tavoitteet ovat moninaiset: tietosisältö käyttäjien ja sovellusohjelmien kannalta tiedon esittämistapa tiedon käsittelyn vaatimukset: vasteaika, prosessointiaika, tilantarve 29

30 Tietokannan turvallisuus 30 Suojautumista tahallista tai tahatonta hyökkäystä vastaan käyttäen joko teknisiä (esim. ohjelmallisia) keinoja tai ei-teknisiä keinoja Turvallisuuteen vaikuttavia tekijöitä Varkaus ja huijaus Ei liity pelkästään tietokantoihin, vaan koko yritykseen Salassapitovelvollisuus ja sen menetys Voi heikentää kilpailukykyä Yksityisyys ja sen menetys Voi johtaa oikeustoimiin Yhtenäisyys ja sen rakoileminen Tietokannan yhtenäisyyden murentuessa tietoihin ei voida enää luottaa Voi olla vakavia vaikutuksia yrityksen liiketoimintaan Tietojen saatavuus ja saatavuuden rajoittuminen Tietojen käyttökatkot voivat vaikeuttaa yrityksen toiminnan ylläpitämistä Tietojen saatavuuteen vaikuttaa sekä tietokantajärjestelmän toimivuus että käytettävän ympäristön (käyttöjärjestelmä, lähiverkko tms.) pysyminen käyttökunnossa

31 Tietokannan turvallisuus Uhkatekijät Mikä tahansa tilanne tai tapahtuma, tahallinen tai tahaton, joka vaikuttaa epäsuotuisasti tietojärjestelmään ja sitä kautta koko yritykseen Laitteiden ja järjestelmien käytettävyys Milloin viimeisin varmuuskopiointi on otettu? Aika, joka tarvitaan järjestelmän palauttamiseen Voidaanko kadotetut tiedot saada jotenkin takaisin? Uhkataulukon tekeminen 31

32 Turvallisuus Vastatoimet järjestelmään pohjautuvat Valtuutukset Luodaan sellaiset oikeudet ja käyttömahdollisuudet, jotka oikeuttavat järjestelmän tai sen osan käyttöön siinä määrin kuin se on välttämätöntä On pyrittävä luomaan sellainen mekanismi, jolla käyttäjä voidaan tunnistaa oikeaksi käyttäjäksi Oikeuksien periytyminen Kun käyttäjälle annetaan oikeudet tietokantaan (luodaan käyttäjätunnus ja salasana), mitä muita oikeuksia käyttäjä saa? Voi olla tarpeen luoda käyttäjälle kaikki tarvittavat oikeudet tunnuksen luomisen jälkeen tai rajoittaa automaattisesti luotuja käyttöoikeuksia Omistajan oikeudet ja muiden oikeudet Käyttäjien ja käyttäjäryhmien oikeuksista tehdään taulukko Näkymät Näkymät ovat yhden tai useamman relaation dynaaminen liitos Näkymien avulla voidaan piilottaa käyttäjälle tarpeettomat tiedot tietokannasta 32

33 Turvallisuus Vastatoimet järjestelmään pohjautuvat Varmuuskopiointi ja niiden palautus Varmuuskopioinnilla tarkoitetaan tietyin väliajoin otettavaa kopiota tietokannasta ja sen lokitiedostoista Varmuuskopioon otetaan mahdollisesti myös ohjelmat (loppukäyttäjän ohjelmat) Varmuuskopio otetaan sellaiselle tallennusvälineelle, jota ei voi käyttää aktiivisesti ja joka talletetaan turvalliseen paikkaan (esim. kassakaappi) Varmuuskopioiden lisäksi otetaan lokitiedostot talteen sopivin väliajoin, jolloin tietokannan palautus käyttökatkon jälkeen voi onnistua nopeammin ilman varsinaisen varmuuskopion palautusta Tarkistuspisteiden käyttö, jolloin tietokannan ja lokitiedostojen tiedot synkronoidaan Varmuuskopioiden palautuksen tulisi olla sellainen, että järjestelmä saadaan varmuuskopion ottamista edeltävään tilaan Palautuksen yhteydessä tietokantaan ei pitäisi päästä eheysrikkomuksia tms. 33

34 Turvallisuus Vastatoimet järjestelmään pohjautuvat Yhtenäisyys (eheys) Tästä on ollut puhetta jo aikaisemmin Eheys liittyy turvallisuuteen siinä mielessä, että eheyden ollessa kunnossa, tietokantaan ei voida tallentaa sellaisia tietoja, jotka esim. saattavat tietokannan tiedot yritykselle epäedulliseen tilaan Salaus (salaus) Suojauksella tiedot muunnetaan erityisellä algoritmilla niitä siirrettäessä Tiedot ovat luettavissa vain käyttämällä suojauksen purkuavainta Suojaukseen tarvitaan Suojausavain Suojausalgoritmi Suojauksen purkuavain Suojauksen purkualgoritmi Yhdistetyt aliohjelmat 34

35 Turvallisuus Vastatoimet järjestelmästä riippumattomat Turvallisuuspolitiikka ja varasuunnitelma Liiketoiminnan osa (alue), jota turvallisuuspolitiikka koskee Työntekijöiden vastuut ja velvollisuudet Mitä toimenpiteitä vaaditaan turvallisuuspolitiikan ylläpitämiseen? Toimintasuunnitelmat, joita täytyy noudattaa Ketkä ovat avainhenkilöitä ja miten heidät tavoittaa? Mitä henkilökunnalta vaaditaan? Mistä voidaan saada ulkopuolista apua tarvittaessa? Henkilökohtainen kontrolli Sijoittaminen ja varastointi Mihin sijoitetaan esim. tulostimet, jotka tulostavat arkaluonteista tietoa Lukittuja huoneita (kaappeja tms.) pitää olla sopivasti 35

36 Turvallisuus Vastatoimet järjestelmästä riippumattomat PC turvallisuus Yksi suuri epäkohta, mikäli työasemiin jätetään esim. lounasajaksi tietokantasovelluksia aktiivisiksi Virukset Tiedonhallintajärjestelmät ja tietoverkko Proxy palvelimet Palomuurit Digitaalinen allekirjoitus Suojattujen protokollien käyttö (SSL, SHTTP) Riskianalyysi Riskianalyysin tekemiseen kannattaa perustaa turvallisuusryhmä, joka perehtyy yrityksen tarvitsemiin suojautumiskeinoihin 36

37 Tapahtumäkäsittely Mitä tapahtumilla tarkoitetaan? (1/2) Tapahtuma on toimenpide tai toimenpidesarja, jonka yksittäinen käyttäjä tai ohjelma käskee suorittamaan ja joka hakee tai päivittää tietokannan sisältöä Tapahtuma on siis looginen kokonaisuus tietokannassa tapahtuvia toimenpiteitä, jotka liittyvät toisiinsa Esimerkki tapahtumasta, jossa käytetään relaatiota Staff (Sno, Fname, Lname, Address, Tel_No, Position, Sex, DOB, Salary, NIN, Bno) read(sno = x, salary) salary = salary * 1.1 write(sno = x, new_salary) Esimerkki kasvattaa henkilön palkkaa 10%:lla Tapahtumalle annetaan henkilön tunniste (x, joka on perusavain) ja haetaan sekä tunniste että palkka Palkan korottamisen jälkeen muuttuneet tiedot kirjoitetaan takaisin tietokantaan 37

38 Tapahtumakäsittely Mitä tapahtumilla tarkoitetaan? (2/2) Esimerkki, jossa käytetään em. relaation lisäksi relaatiota Property_for_Rent (Pno, Street, Area, City, Pcode, Type, Rooms, Rent, Ono, Sno, Bno) delete(sno = x) for all Property_for_Rent records, pno begin read(pno = pno, sno ) if (sno = x) then begin sno = new_sno write (Pno = pno, sno) end end Esimerkissä poistetaan työntekijä ja päivitetään viittaukset relaatiossa, jossa viiteavaimena on poistetut työntekijän tunnus Lopputuloksena tapahtuman tulee saattaa tietokanta sallittuun tilaan (eheäksi) 38

39 Tapahtumäkäsittely Kaikkien tapahtumien pitäisi sisältää seuraavat neljä ominaisuutta (ACID) Atomicity: jokainen tapahtuma on jakamaton, joka suoritetaan joko kokonaan tai ei ollenkaan Consistency: jokainen tapahtuma on johdonmukainen ja saattaa tietokannan jostakin sallitusta (eheästä) tilasta toiseen tällaiseen tilaan Isolation: jokainen tapahtuma on erillinen (riippumaton) muista tapahtumista; toisin sanoen tapahtuman, joka koostuu useasta eri toimenpiteestä, näkyvyys toiselle tapahtumalle on koko tapahtuma tai ei mitään, tapahtuman sisällä olevat toimenpiteet eivät näy toiselle tapahtumalle erillisinä Durability: loppuun saatetun tapahtuman (annettu commit) vaikutus tallennetaan tietokantaan lopullisena tapahtumana eikä tätä hävitetä, jotta myöhemmin ei tulisi virheitä (esim. eheydestä johtuvia) 39

40 Tapahtumakäsittely Samanaikaisten prosessien (tapahtumien) hoitaminen niin, etteivät ne sekoita toisiaan tai aiheuta sekaannusta tietokantaan Samanaikaisuuden hallintaa tarvitaan silloin, kun tietokantaan kohdistuu useamman kuin yhden käyttäjän toimenpiteitä koskien samoja tietokannan tietoja (relaatioita) Samanaikaisuuden hallintaa tarvitaan myös silloin, kun useampi kuin yksi ohjelma tekee päivityksiä tai hakuja tietokantaan samoihin tietoihin (relaatioihin) Kaksi tapahtumaa voivat toimia yksinäisinä tapahtumien moitteettomasti, mutta niiden samanaikainen suorittaminen voi tuottaa ongelmia Päivityksen menetys Riippuvuus keskeneräisestä tapahtumasta Ristiriitaisuuden ongelma 40

41 Tapahtumakäsittely Yhden käyttäjän / ohjelman tekemä päivitys voidaan menettää, kun toinen käyttäjä / ohjelma tekee päivityksen ensimmäisen päivityksen jälkeen käyttäen kuitenkin alkuarvonaan tietokannassa ollutta arvoa ennen ensimmäistä päivitystä Aika-akselilla kuvattuna tapahtumat ja niiden vaikutus voisi olla vaikka seuraava Aika T1 T2 bal x t1 begin_transaction 100 t2 begin_transaction read(bal x ) 100 t3 read(bal x ) bal x = bal x t4 bal x = bal x - 10 write(bal x ) 200 t5 write(bal x ) commit 90 t6 commit 90 41

42 Tapahtumakäsittely Riippuvuus keskeneräisestä tapahtumasta Tapahtuman tuottamien tulosten näkyminen toiselle tapahtumalle ennen kuin koko tapahtuma on suoritettu loppuun voi tuottaa ongelmia Em. esimerkistä tapahtumien suoritus hieman toisessa järjestyksessä muutamalla lisäyksellä voi tuottaa esim. seuraavan tuloksen Aika T3 T4 balx t1 begin_transaction 100 t2 read(bal x ) 100 t3 bal x = bal x t4 begin_transaction write(bal x ) 200 t5 read(bal x ) 200 t6 bal x = bal x - 10 rollback 100 t7 write(bal x ) 190 t8 commit

43 Tapahtumakäsittely Ristiriitaisuuden ongelma Em. esimerkit olivat sellaisia, joissa tietokannan tietoja päivitettiin ja siitä syntyi ei-toivottu tilanne tietokantaan Tapahtuman, joka pelkästään lukee tietokantaan, lopputuloksena voi myös tulla ei- toivottuja tuloksia, jos tapahtuman sallitaan lukea toisen päättymättömän tapahtuman tietoja 43 Aika T5 T6 bal x bal y bal z sum t1 begin_transaction t2 begin_transaction sum = t3 read(bal x ) read(bal x ) t4 bal x = bal x - 10 sum = sum + bal x t5 write(bal x ) read(bal y ) t6 read(bal z ) sum = sum + bal y t7 bal z = bal z t8 write(bal z ) t9 commit read(bal z ) t10 sum = sum + bal z t11 commit

44 Tapahtumakäsittely Sarjoittaminen ja palauttaminen (1/3) Tapahtumien sarjoittamisella pyritään siihen, että tapahtumien suorittaminen ei aiheuttaisi odottamattomia tai ei-toivottuja tilanteita tietokantaan Yksinkertainen ratkaisu ongelmaan olisi se, että sallitaan vain yksi tapahtuma kerrallaan tietokantaan, jolloin tapahtuman suorittamisen jälkeen (commit) voi toinen tapahtuma alkaa Monen käyttäjän järjestelmän tavoitteena on usein yhtäaikaisen käytön salliminen maksimaalisesti, joten tapahtumien suorittaminen vain peräkkäin on huono vaihtoehto Niiden tapahtumien, jotka käsittelevät eri osia (relaatioita) tietokannasta, suhteen ei ole tarpeen rajoittaa suoritusjärjestystä tai samanaikaista suorittamista Tapahtumat, jotka käsittelevät samoja tietoja (relaatioita), täytyy hallita niin, ettei edellä mainittuja tilanteita pääse tapahtumaan 44

45 Tapahtumakäsittely Sarjoittaminen ja palauttaminen (2/3) Jos kaksi tapahtumaa vain lukee samoja tietoja (relaatioita), niiden suorituksessa ei ole sekaannuksen vaaraa ja järjestyksellä ei ole väliä Jos kaksi tapahtumaa lukee ja kirjoittaa eri tietoja (relaatioita), niiden suorituksessa ei ole sekaannuksen vaaraa ja järjestyksellä ei ole väliä Jos yksi tapahtuma kirjoittaa samoja tietoja (relaatioita) kuin toinen tapahtuma lukee tai kirjoittaa, niin tulee suorittaa tietyssä järjestyksessä 45 T7 T8 T7 T8 T7 T8 begin_transaction begin_transaction begin_transaction read(bal x ) read(bal x ) read(bal x ) write(bal x ) write(bal x ) write(bal x ) begin_transaction begin_transaction read(bal y ) read(bal x ) read(bal x ) write(bal y ) write(bal x ) read(bal y ) commit read(bal y ) write(bal x ) begin_transaction write(bal y ) write(bal y ) read(bal x ) commit commit write(bal x ) read(bal y ) read(bal y ) read(bal y ) write(bal y ) write(bal y ) write(bal y ) commit commit commit

46 Tapahtumakäsittely Sarjoittaminen ja palauttaminen (3/3) 46 Seuraavassa esimerkki tapahtumista, joiden järjestys on tärkeä Ensimmäinen tapahtuma siirtää 100 yksikköä yhdestä tietokannan objektista (relaation ominaisuudesta) toiseen Toinen tapahtuma korottaa edellä mainittujen kummankin tietokannan objektin (relaation ominaisuuden) arvoa 10%:lla T9 begin_transaction read(bal x ) bal x = bal x write(bal x ) read(bal y ) bal y = bal y write(bal y ) commit T10 begin_transaction read(bal x ) bal x = bal x * 1.1 write(bal x ) read(bal y ) bal y = bal y * 1.1 write(bal y ) commit

47 Tapahtumakäsittely Lukitukset (1/6) Lukitusta käytetään tapahtumien toimenpiteiden kontrollointiin tietojen hakujen / päivitysten saattamiseksi loogisiksi Kun yksi tapahtuma päivittää jotain tietokannan objektia (relaatiota), muut tapahtumat eivät pääse muuttamaan tätä objektia, ennen kuin lukitus on ensimmäinen tapahtuma on vapauttanut objektin Lukitus voi olla luku- tai kirjoituslukko Read lock Jos tapahtumalla on lukulukko, se voi lukea tietoa mutta ei kirjoittaa Write lock Jos tapahtumalla on kirjoituslukko, se voi sekä lukea että kirjoittaa Lukulukko ei voi saada sekaannusta aikaan, joten useammalla tapahtumalla voi olla lukulukko samaan objektiin (relaatioon) 47

48 Tapahtumakäsittely Lukitukset (2/6) Lukituksia käytetään seuraavasti: Tapahtuma, joka haluaa käyttöön jonkin tietokannan objektin (relaation), lukitsee ko. objektin käyttöönsä sen mukaan, tarvitseeko sen lukea vai kirjoittaa tietoa Jos tietokannan objekti (relaatio) ei ole ennestään lukittu minkään toisen tapahtuman toimesta, lukitus onnistuu Jos tietokannan objekti (relaatio) on jo lukittu toisen tapahtuman toimesta, tietokanta tarkistaa, voiko uuden lukituspyynnön toteuttaa; kirjoituslukko estää toisen tapahtuman saamasta edes lukulukkoa toteutumaan Tapahtuma pitää tietokannan objektin (relaation) lukitusta itsellään, kunnes se joko vapauttaa lukituksen tai tapahtuman suoritus päättyy (commit); kun kirjoituslukko vapautuu, muut tapahtumat voivat nähdä muuttuneen tiedon Yksinkertaisella lukituksella ei vielä päästä eroon sekaannuksista 48

49 Tapahtumakäsittely Lukitukset (3/6) S = {write_lock(t9, bal x ), read(t9, bal x ), write(t9, bal x ), unlock(t9, bal x ), write_lock(t10, bal x ), read(t10, bal x ), write(t10, bal x ), unlock(t10, bal x ), write_lock(t10, bal y ), read(t10, bal y ), write(t10, bal y ), unlock(t10, bal y ), commit(t10), write_lock(t9, bal y ), read(t9, bal y ), write(t9, bal y ), unlock(t9, bal y ), commit(t9)} T9 begin_transaction read(bal x ) bal x = bal x write(bal x ) read(bal y ) bal y = bal y write(bal y ) commit T10 begin_transaction read(bal x ) bal x = bal x * 1.1 write(bal x ) read(bal y ) bal y = bal y * 1.1 write(bal y ) commit 49

50 Tapahtumakäsittely Lukitukset (4/6) Kaksivaiheinen lukitus (two-phase locking, 2PL) Kun tapahtuma noudattaa kaksivaiheista lukitusta, kaikki lukitusoperaatiot edeltävät kaikkia lukituksien vapautusoperaatioita Kun tapahtuma vapauttaa jonkin lukon, se ei voi enää lukita mitään tietokannan objektia (relaatiota) 50 Aika T1 T2 bal x t1 begin_transaction 100 t2 begin_transaction write_lock(bal x ) 100 t3 write_lock(bal x ) read(bal x ) 100 t4 WAIT bal x = bal x t5 WAIT write(bal x ) 200 t6 WAIT commit / unlock(balx) 200 t7 read(bal x ) 200 t8 bal x = bal x t9 write(bal x ) 190 t10 commit / unlock(bal x ) 190

51 Tapahtumakäsittely Lukitukset (5/6) 51 Aika T3 T4 balx t1 begin_transaction 100 t2 write_lock(bal x ) 100 t3 read(bal x ) 100 t4 begin_transaction bal x = bal x t5 write_lock(bal x ) write(bal x ) 200 t6 WAIT rollback / unlock(bal 100 t7 read(bal x ) 100 t8 bal x = bal x t9 write(bal x ) 90 t10 commit / unlock(bal x ) 90

52 Tapahtumakäsittely Lukitukset (6/6) 52 Aika T5 T6 bal x bal y bal z sum t1 begin_transaction t2 begin_transaction sum = t3 write_lock(bal x ) t4 read(bal x ) read_lock(bal x ) t5 bal x = bal x - 10 WAIT t6 write(bal x ) WAIT t7 write_lock(bal z ) WAIT t8 read(bal z ) WAIT t9 bal z = bal z + 10 WAIT t10 write(bal z ) WAIT t11 commit / unlock(bal x, bal z ) WAIT t12 read(bal x ) t13 sum = sum + bal x t14 read_lock(bal y ) t15 read(bal y ) t16 sum = sum + bal y t17 read_lock(bal z ) t18 read(bal z ) t19 sum = sum + bal z t20 commit / unlock(bal x, bal y, bal z )

53 Tapahtumakäsittely Lukkotilanne (deadlock) Lukkotilanne syntyy silloin, kun kaksi tai useampi tapahtuma jää odottamaan toisen / toisien tapahtumien lukkojen vapautusta Lukkotilanteesta päästään vai yhdellä tavalla eroon: keskeyttämällä yksi tai useampi tapahtuma, jolloin tämän tapahtuman lukitukset vapautuvat Aika T1 T2 t1 begin_transaction t2 write_lock(bal x ) begin_transaction t3 read(bal x ) write_lock(bal y ) t4 bal x = bal x - 10 read(bal y ) t5 write(bal x ) bal y = bal y t6 write_lock(bal y ) write(bal y ) 53 t7 WAIT write_lock(bal x ) t8 WAIT WAIT t9 WAIT WAIT t10 WAIT t11

54 Tapahtumakäsittely Lukitustasot Tietokanta Tiedosto1 Tiedosto2 Tiedosto3 Sivu1 Sivu2 Sivu3 Tietue1 Tietue2 54 Kenttä1 Kenttä2

55 Tietokannan palautus Tietokannan palautuksella tarkoitetaan sitä prosessia, jossa tietokanta saatetaan eheään ja toimivaan tilaan sen jälkeen, kun se on syystä tai toisesta joutunut epäsuotuisaan tilaan tai kaatunut Milloin tietokannan palautusta tarvitaan? Järjestelmä kaatuu ohjelmistosta tai laitteista johtuneeseen virheeseen ja menetetään muistinvaraiset operaatiot Median toimimattomuus: media (esim. kiintolevy), joka on osa järjestelmää, tuhoutuu Sovellusohjelman virhe aiheuttaa loogisen virheen, kun jokin tai jotkin tapahtumat toimivat virheellisesti Luonnonkatastrofi tms. (tulipalo, sähkökatkos) Huolimattomuus (käyttäjät, ylläpitäjät) Ilkivalta, joka voi kohdistua järjestelmään, ohjelmistoon, laitteisiin tms. 55

56 Tapahtumat ja niiden palautus Tapahtumat ovat perusyksikköjä palautettaessa järjestelmää Palautuksen hoitajan tulee tarkistaa, että kaikki tapahtuman vaikutukset (toiminnot) ovat lopullisesti tallennettu tietokantaan tai ei mitään tapahtuman toimintoa Asiasta tekee mutkikkaan se, että tapahtuman hyväksymisen (commit) jälkeen tapahtumatietoja ei välttämättä ole ehditty kirjoittaa tietokantaan ennen kuin virhe ilmaantuu 56

57 Mitä tapahtumassa oikein tapahtuu Esimerkki palkankorotuksesta Lukuoperaatio Etsitään levyosoite, jossa haettavan rivin tiedot sijaitsevat (perusavaimen mukaan haetaan) Siirretään levyltä tiedot (lohko, sivu) tietokannan puskuriin muistiin Kopioidaan palkka tietokannan puskurista muuttujaan Kirjoitusoperaatio Etsitään levyosoite, jossa päivitettävän rivin tiedot sijaitsevat (perusavaimen mukaan etsitään) Siirretään levyltä tiedot (lohko, sivu) tietokannan puskuriin muistiin Kopioidaan palkka muuttujasta tietokannan puskuriin Kirjoitetaan tietokannan puskurin sisältö levylle 57

58 Virhetilanne Virhetilanne voi tulla kesken mitä tahansa em. toimintoa Jos virhe tulee silloin, kun tapahtuma on suoritettu loppuun, mutta kirjoitus tietokantaan ei ole valmis, niin palautuksessa tämä on otettava huomioon Palautuksen hoitaja voi suorittaa kesken jääneet toiminnot loppuun (rollforward) tai hylätä tapahtuman (undo,rollback) Jos vain yksittäinen tapahtuma joudutaan hylkäämään, on kyseessä osittainen hylkääminen (partial undo) Jos taas kaikki tapahtumat, jotka ovat jääneet kesken, joudutaan hylkäämään, kyseessä on kokonaisvaltainen hylkääminen (global undo) 58

59 Tapahtumat ja virhetilanne T1 T2 T3 T4 T5 T6 t0 t1 t2 t3 t4 tc t5 t6 t7 t8 tf 59 Kuvassa yllä on havainnollistettu tapahtumien T1-T6 kulkua Tapahtumat alkavat ajanhetkellä t0 ja ajanhetkellä tf tapahtuu virhetilanne Tapahtumat T1 ja T6 jäävät kesken virhetilanteen sattuessa (nämä täytyy peruuttaa palautuksen yhteydessä) Mitä tehdään tapahtumille T2 T5

60 Palautuksen mahdollisuudet Varmuuskopioinnin mahdollisuus, joka tapahtuu säännöllisesti tietyn ajanjakson välein Lokitiedostojen olemassaolo, jotka huolehtivat tietokannan tapahtumien nykytilan muutosten tallennukset Tarkistuspisteiden olemassaolo, jolloin tietokannan tietojen kirjoitus varsinaiseen tietokantaan tapahtuu Palautuksen hoitaja, joka mahdollistaa tietokannan palautuksen johonkin virhettä edeltäneeseen sallittuun tilaan 60

61 Lokitiedosto Tiedonhallintajärjestelmä käyttää lokitiedostoa tallentaakseen tietokantaan tehtävät päivitykset ennen niiden kirjaamista varsinaiseen tietokantaan Tapahtumatiedot (transaction records) Tapahtuman tunniste Tapahtumatiedon tyyppi (aloitus, lisäys, päivitys, poisto, kumous, commit) Tietoalkioiden (tietueiden) tunnistetiedot Kuvaus ennen tapahtumaa Kuvaus tapahtumien jälkeen Tiedot esim. edellisestä ja seuraavasta tapahtumasta Tarkistuspisteen tiedot (checkpoint records) Lokitiedostoa käytetään moneen muuhunkin tarkoitukseen kuin tietokannan tietojen palautukseen, mutta näistä ei tässä vaiheessa enempää 61

62 Tarkistuspiste Tarkistuspisteitä (check point) käytetään synkronoimaan tietokannan ja lokitiedoston Tarkistuspisteessä suoritetaan: Kirjoitetaan kaikki lokitiedot tietokantaan Kirjoitetaan tietokantapuskureissa olevat tiedot tietokantaan Kirjoitetaan tarkistuspisteen tiedot lokitiedostoon, joka sisältää mm. tiedot loppuun suorittamattomista tapahtumista Edellä esimerkissä tc oli tarkistuspiste, jolloin ym. toimenpiteet suoritetaan Palautus helpottuu, koska vain tapahtumat T4 ja T5 täytyy kirjoittaa tietokantaan sekä peruuttaa tapahtumat T1 ja T6 62

63 Hajautetut tietokannat Johdantoa 1 Loogisesti yhteenkuuluva jaettu tietokokoelma (ja kuvaus tästä tiedosta), joka on fyysisesti hajautettu tietoverkon yli Hajautettu tiedonhallintajärjestelmä tarkoittaa järjestelmää, joka huolehtii hajautettujen tietokantojen hoitamisesta niin, että ne ovat läpinäkyviä käyttäjille (käyttäjien ei tarvitse tietää, että tietokanta on hajautettu) Hajautettu tiedonhallintajärjestelmä koostuu yksittäisistä loogisesti toimivista tiedonhallintajärjestelmistä, jotka kukin hoitaa yhtä osaa hajautetusta tietokannasta Jokainen yksittäinen tietokanta on yhdellä (tai useammalla) palvelimella, joka on yhdistetty yhteiseen tietoverkkoon Jokainen yksittäinen tiedonhallintajärjestelmä toimii itsenäisesti palvellen omia käyttäjiään, jotka ovat kytkeytyneet paikalliseen tietokantaan Käyttäjät käyttävät tietokantaa sovellusohjelmilla 63

64 Hajautetut tietokannat Johdantoa 2 Käyttäjillä on kahdenlaisia sovellusohjelmia: Paikallisia, jotka operoivat vain paikallisen tietokannan kanssa Globaaleja, jotka operoivat sekä paikallisen että etätietokannan kanssa Vaatimuksena on, että vähintään yksi sovellusohjelma on globaali Käyttäjillä ei tarvitse välttämättä olla paikallista tietokantaa ollenkaan, jolloin operoidaan ainoastaan etätietokantojen kanssa Hajautettu tiedonhallintajärjestelmä Palvelin 1 Tietokanta Palvelin 4 Tietoverkko Palvelin 2 Tietokanta Palvelin 3 Tietokanta 64

65 Hajautetut tietokannat Johdantoa 3 Hajautettujen tietokantojen kohdalla on tehtävä ero hajautettuun tiedonkäsittelyyn Hajautetulla tiedonkäsittelyllä tarkoitetaan keskitettyä tietokantaa, johon otetaan yhteys tietoverkossa olevilta työasemilta Oleellinen näkökohta hajautettujen tietokantojen kohdalla on se, että tiedot (tietokannoissa) on hajautettu fyysisesti verkossa Jos tietokanta on keskitetysti jossakin (palvelimella) kyseessä on hajautettu tiedonkäsittely, vaikka työasemat olisivat verkotettuna Hajautettu tiedonkäsittely Palvelin 1 Palvelin 4 Tietoverkko Palvelin 2 Palvelin 3 Tietokanta 65

66 Hajautetut tietokannat Johdantoa 4 Tietokantojen hajauttamisessa on tehtävä ero rinnakkaisten tiedonhallintajärjestelmien osalta Tiedonhallintajärjestelmä toimii usean prosessorin ja levyn järjestelmässä, joka on suunniteltu suorittamaan operaatiot rinnakkaisesti mikäli mahdollista Kolme pääarkkitehtuuria rinnakkaisissa tiedonhallintajärjestelmissä Jaettu muisti Esimerkki Jaettu levytila Esimerkki Ei mitään jaettua Esimerkki 66

67 Hajautetut tietokannat Katsaus verkkoihin Tietoverkko Itsenäisistä tietokoneista yhdistetty kokonaisuus, jossa eri komponentit voivat vaihtaa tietoja Hajautetut tiedonhallintajärjestelmät ovat rakennettu niin, että käyttäjä ei näe tietoverkkoa, vaan ainoastaan käyttää sitä (tietämättään) Tietojen siirtoon vaikuttaa käytössä oleva tietoverkko LAN Local area network paikallisverkko Siirtonopeus Mb/s WAN Wide area network laaja-alainen verkko Siirtonopeus kb/s Koostuu usein useammasta LAN -verkosta 67

68 Hajautetut tietokannat Funktiot ja arkkitehtuuri Toimiakseen hajautettujen tiedonhallintajärjestelmien on Laajennettu yhteyspalvelu etäpalvelimilta ja mahdollisuus hakujen ja tiedon siirtoon palvelinten välillä Laajennettu järjestelmähakemisto, jossa tiedot yksityiskohtaisesti hajautetuista tiedoista Hajautettu hakujen käsittely sisältäen hakujen optimoinnin ja etäkäytön Laajennettu samanaikaisuuden hallinta toistetun tiedon yhtenäisyyden säilyttämiseen Laajennettu palautusmekanismi yksittäisessä tiedonhallintajärjestelmässä ja tietoverkossa sattuvien virheiden varalta 68

69 Hajautetut tietokannat Hajautetun relaatiotietokannan suunnittelu Paloittelu (fragmentation) Relaatio voidaan jakaa lukuisiin alirelaatioihin, jotka ovat hajautettuja Horisontaalinen paloittelu jakaa relaation rivit Vertikaalinen paloittelu jakaa relaation ominaisuudet (attribuutit, sarakkeet) Jakautuminen Jokainen pala (fragment) on talletettu palvelimelle optimaalisesti hajautettuna Toistaminen Hajautettu tiedonhallintajärjestelmä voi sisältää kopion palasta (fragment) toisella palvelimella 69

70 Hajautetut tietokannat Hajautetun relaatiotietokannan suunnittelu Miksi suunnitella hajautettu tietokanta? Käyttö Sovellukset käyttävät näkymiä eivätkä suoraan relaatioita, jolloin näkymän tiedot ovat yksi hajautuksen osa Tehokkuus Tiedot on tallennettu lähelle käyttäjää ja näin ei tarvita hidasta tietojen siirtoa palvelimelta toiselle Rinnakkaisuus Hakujen jako alihakuihin, jotka käsittelevät paloja (fragments), mahdollistaa hakujen rinnakkaisuuden ja näin parantaa vasteaikaa Turvallisuus Haittoja Tiedot, joita ei tarvita jossakin tietyssä paikassa, eivät myöskään ole siellä ja näin niiden väärinkäyttö on vaikeampaa Suorituskyky sovelluksilla, jotka käyttävät tietoja eri palvelimilta, laskee Yhtenäisyyden hallinta on mutkikkaampaa 70

71 Hajautetut tietokannat Läpinäkyvyys Perusajatus tiedonhallintajärjestelmän hajauttamisessa on se, ettei käyttäjän tarvitse tietää hajauttamisesta mitään Myöskään käyttäjän ei tuli nähdä hajautusta millään tavalla käyttäessään sovelluksia Läpinäkyvyys voidaan jakaa neljään alueeseen Hajautuksen läpinäkyvyys Käyttäjä näkee tietokannan yhtenäisenä kokonaisuutena Tapahtumien läpinäkyvyys Tapahtumat jaetaan alitapahtumiin, jotka ohjataan oikealle palvelimelle Käyttäjälle tapahtuman tulokset näkyvät kuin ne tulisivat keskitetystä tietokannasta Suorituskyvyn läpinäkyvyys Käyttäjän ei tulisi huomata suorituskyvyssä eroa keskitettyyn tietokantaan Tiedonhallintajärjestelmän läpinäkyvyys Käyttäjän ei tarvitse tietää eri tiedonhallintajärjestelmien eroja, mikäli käytössä on eri järjestelmät eri palvelimilla 71

72 Hajautetut tietokannat Sääntöjä Perusperiaate Käyttäjälle hajautettu tiedonhallintajärjestelmä tulisi näyttää samanlaiselta kuin keskitetty tiedonhallintajärjestelmä Paikallinen itsenäisyys Paikallinen tieto on paikallisen ylläpitäjän omistama ja ylläpitämä Paikalliset toiminnot ovat puhtaasti paikallisia Kaikki tietyn palvelimen toiminnot ovat ko. palvelimen hallinnoimia Käytön jatkuminen Ei ole tarvetta järjestelmän alasajoon, kun yksi palvelin poistetaan käytöstä Palvelimiin voidaan lisätä tai poistaa dynaamisesti paloja (fragments) Paikkariippumattomuus Käyttäjän tulee päästä mistä tahansa tietoverkossa haluttuun tietoon käsiksi Paloitteluriippumattomuus Käyttäjä pääsee tarvitsemiinsa tietoihin käsiksi, oli ne miten tahansa paloiteltuja 72

73 Hajautetut tietokannat Sääntöjä 2 Toistoriippumattomuus Käyttäjän ei tule tietää tietojen kopioimisesta palvelimelta toiselle Hajautettu hakujen käsittely Järjestelmän osaa käsitellä hakuja, jotka kohdistuvat eri palvelimille Hajautettu tapahtumien käsittely Tapahtumat käsitellään jakamattomina yksiköinä (palautuksessa) Rautariippumattomuus Järjestelmä ei ole riippuvainen tietystä arkkitehtuurista Käyttöjärjestelmäriippumattomuus Järjestelmä ei ole riippuvainen tietystä käyttöjärjestelmästä Tietoverkkoriippumattomuus Järjestelmä ei ole riippuvainen tietoverkon rakenteesta Tietokantariippumattomuus Eri palvelimilla voi olla erilainen tietokanta 73

74 Hajautetut tietokannat Tapahtumien käsittely 74 Globaalin tapahtuman hoitaminen tapahtuu seuraavasti: Tapahtumien koordinoija (transaction coordinator, TC) TC1 palvelimella S1 jakaa tapahtuman alitapahtumiin käyttäen hyväkseen globaalia järjestelmäluetteloa (system catalog) Tiedonvälityspalvelu palvelimella S1 lähettää alitapahtumat muille palvelimille (S2, S3, ) Tapahtumien koordinoijat palvelimilla S2, S3, käsittelevät saamansa tapahtumat ja tulokset lähetetään takaisin lähettävälle tapahtumien käsittelijälle TC1 Hajautettu tapahtumienkäsittely Tiedonvälitys Tiedonvälitys Tiedonvälitys palvelut (S3) palvelut (S1) palvelut (S2) Tapahtumien koordinoija (TC3) Paikallinen tapahtumien käsittely Tapahtumien koordinoija (TC1) Paikallinen tapahtumien käsittely Tapahtumien koordinoija (TC2) Paikallinen tapahtumien käsittely

75 Hajautetut tietokannat Lukitukset Keskitetty kaksivaiheinen lukitus Tapahtumien koordinaattori palvelimella S1 jakaa tapahtuman alitapahtumiin, jotka lähetetään eteenpäin Jos päivitettävästä tiedosta on kopioita eri palvelimilla, nämä täytyy huomioida Ensin asetetaan kirjoituslukko kaikkiin kopioihin ja sitten vasta tehdään päivitys Paikallinen tapahtumien hoitaja, joka on osa globaalia tapahtumien kutsua, hoitaa pakallisesti lukitusten vapauttamisen normaalin kaksivaiheisen lukitustavan mukaisesti Keskitetty lukitusten hoitaja tarkistaa, että lukituspyynnöt ovat yhdenmukaiset olemassa olevien lukitusten kanssa Jos kaikki on kunnossa, lähtee alkuperäiselle tapahtumien koordinaattorille palaute onnistuneesta lukituksesta Muussa tapauksessa lukituspyynnöt laitetaan odottamaan 75

76 Hajautetut tietokannat Lukkotilanne Lukkotilanne syntyy seuraavasti: Tapahtuma T1 käynnistyy palvelimella S1 ja pyytää kirjoituslukkoa palvelimelle T2 Tapahtuma T2 käynnistyy samaan aikaan palvelimella S2 ja pyytää kirjoituslukkoa palvelimelle T3 palvelimella S2 ja pyytää kirjoituslukkoa T1 T2 Tapahtuma T3 käynnistyy edellisten tapahtumien kanssa samanaikaisesti ja pyytää kirjoituslukkoa palvelimelle T1 T3 76

77 Hajautetut tietokannat Palautus Virhetilanteita hajautetussa tietojärjestelmässä Viestin menetys Tiedonvälityslinkissä on jokin vika Jokin palvelin ei vastaa pyyntöihin Tietoverkon jaossa on vikaa Asiasta tekee monimutkaisemman se, ettei tiedonvälityslinkki tai palvelin toimi halutussa ajassa (ja näin ollen pyynnöstä tulee virhe), koska Palvelin on pois käytöstä Tiedonvälityslinkki ei toimi Palvelin on niin kuormitettu, ettei se pysty vastaamaan pyyntöön vaaditussa ajassa 77

78 Oliotietokannat Johdantoa Perinteisiä tietokantasovelluksia ovat Kaupalliset sovellukset, kuten tilausten käsittely, inventaarioiden hallinta, pankkitoiminta ja lentokoneiden varausjärjestelmä Olemassa olevat relaatiotietokannat eivät ole riittäviä perinteisiä kaupallisia sovelluksia vaativampiin sovellusalueisiin Tietokoneavusteinen suunnittelu (CAD) Tietokoneavusteinen tuotanto (CAM) Tietokoneavusteinen ohjelmistotuotanto (CASE) Toimistojen tietojärjestelmät (OIS) Digitaalinen kustannustoiminta Maantieteelliset tietojärjestelmät (GIS) 78

79 Oliotietokannat Relaatiotietokantojen heikkoudet (1/2) 79 Reaalimaailman olioiden puutteellinen kuvausmahdollisuus Normalisoinnissa oliot (relaatiot) muuntuvat ei-reaalisiksi Merkitysten liikakuormittaminen Kahden relaation välille voidaan luoda vain relaatiomallissa kuvattu yhteys Puutteellinen tuki rajoituksille ja yhtenäisyyden muodostamiselle Kaikki kaupalliset järjestelmät eivät toteuta SQL:n mukaisia rajoitteita ja osa näistä joudutaan rakentamaan sovelluksiin Yhtenäinen tietorakenne Kaikki relaation rivit sisältävät samat ominaisuudet, vaikka niitä ei tarvittaisi Tietyn ominaisuuden arvot kaikilla riveillä ovat peräisin samasta arvojoukosta Rajoitetut operaatiot Relaatio-operaatiot perustuvat joukko ja rivi operaatioihin Johdettujen operaatioiden mahdollisuutta ei ole Joillekin reaalimaailman olioille ei ole operaatioita ollenkaan (esim. pisteiden, viivojen, monikulmioiden operaatiot)

80 Oliotietokannat Relaatiotietokantojen heikkoudet (2/2) 80 Hankalasti hallittavat sisäkkäiset haut Ominaisuuksien jakamattomuus tarkoittaa sitä, ettei ryhmäominaisuuksia sallita Tämä tuottaa ongelmia sisäkkäisissä hakutarpeissa, esimerkiksi haetaan kaikki esimiehet tietylle työntekijälle: SELECT manager_id FROM staff WHERE staff_id = S1 UNION SELECT manager_id FROM staff WHERE staff_id = (SELECT manager_id FROM staff WHERE staff_id = S1 ) Näennäinen yhdistäminen SQL standardin puutteita on paikattu eri tuotteissa eri tavoilla Tietotyyppimuunnokset SQL:n ja sovellusohjelman välillä

81 Oliotietokannat Oliokeskeiset käsitteet Ennen kuin saamme käsitystä oliomallista, tarvitaan taustatietoa joistakin käsitteistä Abstraktio (abstraction) Abstraktiolla tarkoitetaan prosessia, jossa identifioidaan olion tärkeät piirteet Unohdetaan vähemmän tärkeät ominaisuudet Ensin suunnitellaan, mikä olio on ja mitä se tekee, sen jälkeen kuinka se toteutetaan Kapselointi (encapsulation) Kapseloinnilla tarkoitetaan sitä, että olion sisältämät tiedot ja niiden muokkaamiseen tarkoitetut operaatiot on koottu olion sisälle Tiedon piilottaminen (information hiding) Tiedon piilottamisella tarkoitetaan sitä, että olio sisältää sellaisia ominaisuuksia, joita ei ulkomaailma (olion ulkopuolinen) näe Piilotettuihin tietoihin pääsee käsiksi vain olioon liitettyjen operaatioiden avulla 81

82 Oliotietokannat Oliot ja ominaisuudet Useat oliosuuntautuneet käsitteet on johdettu Simula ohjelmointikielestä, joka suunniteltiin Norjassa 1960 luvun puolivälissä Vasta SmallTalk ohjelmointikieli toi olio-ohjelmoinnin todella näkyville 1980 luvulla Olio on yksikäsitteisesti identifioitu kokonaisuus, joka sisältää sekä ominaisuudet, jotka kuvaavat sen ilmentymää todellisessa maailmassa, että operaatiot, jotka ovat yhdistetty siihen Työntekijä Ominaisuudet Operaatiot 82 Nimi Osotie Syntymäaika Laske ikä

83 Oliotietokannat Olioiden yksilöinti Olion määrittelyn avainasioihin kuuluu yksikäsitteinen tunnistaminen Oliosuuntautuneissa järjestelmissä jokainen olio sisältää tunnisteen (OID, Object Identifier), joka on Järjestelmän generoima Numeerinen, jolloin vie vähän tilaa ja nopea käsitellä Ei muodostu useasta ominaisuudesta, kuten relaatioissa on mahdollista Kahdella eri tyyppisellä oliolla ei ole samaa tunnistetta Yksikäsitteinen jokaiselle oliolle Riippumatta siitä, minkä tyyppinen olio on Invariantti eli olion elinkaaren aikana sitä ei voi muuttaa Järjestelmä ei generoi puuttuvia tunnisteita uudestaan Riippumaton olion sisältämistä ominaisuuksista Käyttäjälle näkymätön (ideaalitapauksessa) 83

84 Oliotietokannat Jäsenfunktiot ja viestit Olioon on kapseloituna sekä olion sisältämä tieto että näiden tietojen käsittelyyn tarvittavat funktiot, joita kutsutaan jäsenfunktioiksi (metodit) Jäsenfunktio voi olla esim. method void update_salary(float increment) { salary = saraly + increment; } Jäsenfunktio koostuu nimestä ja funktion rungosta Jäsenfunktioon voidaan tehdä tarkistukset, joiden perusteella päivitys hyväksytään tai hylätään Viesteillä objektit kommunikoivat keskenään, ts. objekti lähettää toiselle objektille viestin päivitä palkka 1000 mk:lla, jolloin viestin saavan objektin jäsenfunktio päivittää ko. tiedon Esim. staff_object.update_salary(1000) 84

85 Oliotietokannat Luokat Luokka käsitteellä voidaan määritellä samanlaiset oliot Oliot, joilla on samat ominaisuudet ja jotka vastaavat samanlaisiin viesteihin, ryhmitellään saman luokan olioiksi Ominaisuudet ja jäsenfunktiot määritellään vain luokalle, joten niitä ei tarvitse määritellä jokaiselle oliolle erikseen Kuitenkin jokaisella oliolla on omat arvonsa olion sisältämille ominaisuuksille Luokan olioita kutsutaan myös luokan ilmentymiksi (instance) Joissakin oliosuuntautuneissa järjestelmissä luokka voidaan käsittää myös jonkinlaiseksi olioksi, jolla on omat luokkaominaisuudet ja luokan jäsenfunktiot Nämä luokan ominaisuudet ovat samoja kaikille luokan ilmentymille (olioille) 85

86 Oliotietokannat Luokan ilmentymät Luokan määrittely --- Luokan ilmentymät Branch bno = B5 street = 22 Deer St city = Sidcup Ominaisuudet bno street city bno = B7 street = 16 Argyll St city = Dyce 86 Jäsenfunktiot print update_tel_no number_of_staff bno = B3 street = 163 Main St city = Partick

87 Oliotietokannat Alaluokat, yliluokat ja perintä Jotkin oliot voivat olla hyvin samankaltaisia, mutta eivät kuitenkaan niin samanlaisia, että ne voisivat olla saman luokan ilmentymiä Jos suuri osa ominaisuuksista ja jäsenfunktioista ovat samanlaisia, ei ole järkevää tehdä täysin erillistä luokkaa, vaan hyödyntää olemassa olevan luokan ominaisuuksia ja jäsenfunktioita Perintä mahdollistaa jonkin luokan määrittelyn samankaltaiseksi kuin olemassa oleva luokka, mutta kuitenkin ko. luokalla voi olla omat lisäominaisuutensa ja jäsenfunktionsa Toisesta luokasta määritelty luokka on aliluokka (subclass) ja luokka, josta tämä on peritty on yliluokka (superclass) Etsittäessä useasta luokasta samoja ominaisuuksia ja tekemällä näille yhteinen yliluokka kyseessä on yleistys (generalization) Määrittelemällä jollekin luokalle erikoistapaus (aliluokka) kyseessä on erikoistuminen (specialization) 87

88 Oliotietokannat Perintä Perintä Person Staff Sales_Staff Manager 88

89 Oliotietokannat Ylikirjoittaminen Joskus yliluokassa on sellainen ominaisuus tai jäsenfunktio, jota tarvitaan aliluokassa, mutta ominaisuudet ovat erilaiset Tällaisessa tilanteessa yliluokan jäsenfunktio ylikirjoitetaan aliluokassa niin, että aliluokassa käytetään omaa jäsenfunktiota, vaikka yliluokassa on samanlainen jäsenfunktio Esim. yliluokassa method void give_commission(float branch_profit) { salary = salary * branch_profit; } Ja aliluokassa method void give_commission(float branch_profit) { salary = salary * branch_profit; } 89

90 Oliotietokannat Ylikuormittaminen Joskus jäsenfunktiot voivat olla hyvin samankaltaisia, mutta kuitenkin toisessa jäsenfunktiossa tarvitaan useampi parametri kuin toisessa Tällaiset jäsenfunktiot voidaan kirjoittaa täysin toisistaan erillisiksi jäsenfunktioiksi, mutta tällöin tehdään turhaan samankaltaisia määrittelyjä Ylikuormittamalla jäsenfunktio voidaan tehdä useampi saman niminen jäsenfunktio, jotka eroavat toisistaan parametriensa suhteen Oliolle tuleva viesti määrää, mitä jäsenfunktiota käytetään, koska viestin mukana tulevat parametrit sopivat vain yhteen jäsenfunktioon Jäsenfunktiot voidaan rakentaa niin, että ne kutsuvat toisiaan, jolloin samaa määritystä ei tarvitse kirjoittaa useaan kertaan 90

91 Tietoverkot ja tietokannat 91 Tähän uutta: Mikä on tietoverkko (internet)? Maailmanlaajuinen kokoelma toisiinsa liitettyjä tietokoneverkkoja Liitetyt tietoverkot eivät ole välttämättä samanlaisia arkkitehtuuriltaan Internet sisältämiin palveluihin kuuluu mm. sähköposti Lyhenteitä TCP/IP (Transmission Control Protocol and Internet Protocol) Tietojen välitykseen tietokoneiden välillä oikein ja oikeaa osoitteeseen FTP (File Transfer Protocol) Käytetään tiedostojen siirtoon SMTP (Simple Mail Transfer Protocol) Sähköpostitietojen välittämiseen Telnet (Telecommunication Network) Pääteyhteys DNS (Domain Name Service) POP (Post Office Protocol)

92 Tietoverkot ja tietokannat 92 Intranet Tietoverkon osa, joka on tietyn organisaation käytettävissä eikä siihen ole pääsyä ulkopuolelta Extranet Tietoverkon osa, joka on tietyn organisaation käytettävissä ja siihen on pääsy myös ulkopuolelta tietyille käyttäjille The World Wide Web Hypermediapohjainen järjestelmä, joka mahdollistaa yksinkertaisten osoita ja napsauta hyperlinkkien olemassaolon dokumenteissa HyperText Transfer Protocol (HTTP) Dokumenttien siirtoon tarkoitettu internet protokolla HyperText Markup Language (HTML) Dokumenttien tekoon tarkoitettu kuvauskieli Uniform Resource Locator URL Merkkijono tai numeerinen osoite internet-resurssiin

93 Tietoverkot ja tietokannat Staattiset sivut HTML dokumentti on staattinen, jos se on tallennettu sellaisessa muodossa, että se näkyy jokaisella katselukerralla samanlaisena Sivu sisältää vain muotoiluun liittyviä HTML määrittelyjä Dynaamiset sivut HTML dokumentti on dynaaminen, jos se generoidaan jokaisella katselukerralla erikseen, jolloin dokumentti voi näyttää hyvinkin erilaiselta eri kerroilla Käyttäjän antamien syötteiden perusteella voidaan generoida sivu; esimerkiksi käyttäjä täyttää lomakkeen ja syötettyjen tietojen perusteella vastauksen Käyttäjäkohtaisesti voidaan näyttää jokin sivu erilaisena eri käyttäjille esimerkiksi käyttäjän aikaisempien käyntikertojen perusteella luodun profiilin avulla Tiedonhallintajärjestelmien kannalta ollaan kiinnostuneita lähinnä dynaamisten sivujen käytöstä, jolloin sivun sisältöön vaikuttaa esim. tietokannasta saatu hakutulos 93

94 Tietoverkot ja tietokannat Tietoverkko tietokantasovelluksen alustana (1/3) 94 Perinteinen kaksitasoinen työasemapalvelin ratkaisu ei kelpaa enää tietoverkkojen kanssa Kaksitasoisessa ratkaisussa tietokantapalvelimeen on kytkeytyneenä työasemia, joilta lähtevät tietokantapyynnöt menevät suoraan tietokantapalvelimelle suoritettavaksi Työasema Käyttäjän liittymä Tiedonkäsittelylogiikka Tietokantapalvelin Palvelimen vahvistus operaatioille Tietokantaoperaatiot Tietokantapalvelin Työasema Tietokantapalvelin Tietokanta

95 Tietoverkot ja tietokannat Tietoverkko tietokantasovelluksen alustana (2/3) 95 Mitä vaatimuksia tietoverkko asettaa tietokantasovelluksille? Mahdollisuus päästä yrityksen tietoihin suojatulla tavalla Mahdollisuus valita tietokantaratkaisu Riippumaton käytettävästä selaimesta ja verkkopalvelimesta Ratkaisun täytyy ottaa huomioon kaikki yrityksen tietokannan eri piirteet Avoin arkkitehtuuri Toimii erilaisilla verkkopalvelimilla Riippumaton käytettävästä protokollasta Ratkaisun tulee olla kannattava, jota voi laajentaa ja muuttaa tarpeiden mukaan Useamman HTTP pyynnön hallinta Sovellus ja istuntokohtainen tunnistaminen Pääkäyttäjän tarpeen minimoiminen Korkean tason työkaluja sovellusten suunnitteluun ja rakentamiseen

96 Tietoverkot ja tietokannat Tietoverkko tietokantasovelluksen alustana (3/3) Kaksitasoisen ratkaisun ongelmia Työaseman suorituskyky Pääkäyttäjän tarve Kolmetasoisessa ratkaisussa on edelliseen seuraavat edut Yksinkertainen työasema Tiedonhallintalogiikka ei ole hajautettu työasemille vaan on keskitetysti hallittavissa Parempi mahdollisuus korvata jokin komponentti toisella Kuormittavuuden tasapainottaminen helpompaa, kun tasoille on jaettu sopivasti tehtäviä Työasema Sovelluspalvelin Tietokantapalvelin 96 Tietokanta

97 Tietoverkot ja tietokannat Yhdyskäytävä (Common Gateway Interface, CGI) Määritelmä tiedon siirtoon verkkopalvelimen ja CGI sovelluksen välille HTTP - TCP/IP HTTP - TCP/IP Työasema Internet Verkkopalvelin Yhdyskäytävä 97 Muita tiedon lähteitä HTML HTML Tietokanta

98 Tietoverkot ja tietokannat Server-Side Includes, SSI Miten SSI liittyy tietokantasovelluksiin? Normaalisti verkkopalvelin ei tutki HTML tiedostoja, jotka se lähettää työasemalle (selaimelle) Verkkopalvelimeen on kuitenkin (usein) mahdollista määritellä, että tietyn tyyppiset sivut täytyy parsia ennen niiden lähettämistä työasemalle Parsinnassa HTML dokumenttiin lisätään lähdetiedostossa olevien määritysten mukaisesti esim. dokumentin muutosaika tai lisätään jokin toinen tiedosto HTML dokumentissa voi olla määritelty sellainen SSI elementti, joka suoritetaan CGI ohjelmana ja ohjelman tulokset lähetetään dokumentin osana Käyttäjä ei näe saamastaan dokumentista, että se on parsittu ja että siinä on esim. tietokannasta tulleita tietoja muuten kuin hakemalla dokumentin uudestaan, jolloin dokumentin sisältö voi olla erilainen 98

99 Tietoverkot ja tietokannat keksit (Cookies) Kekseihin voidaan tallentaa erilaista tietoa käyttäjästä tai hänen valinnoistaan Keksit talletetaan käyttäjän työasemaan, mikäli käyttäjä on tämän sallinut Voidaan käyttää esimerkiksi ostoskoria, johon kerätään palvelusta tietoja sen mukaan, kun käyttäjä on tehnyt valintoja Lopuksi käyttäjä lähettää ostoksensa, jolloin ostoskorin sisältö lähetetään palvelimelle Keksejä voidaan käyttää myös tietokantojen käyttäjätunnusten ja salasanojen tallentamiseen, jolloin käyttäjä tunnistetaan automaattisesti, kun hän vierailee uudestaan samalla sivulla / käyttää samaa sovellusta 99

100 Tietoverot ja tietokannat Mitä Java tuo tietokantasovelluksiin? CGI ohjelmat ajetaan palvelimella, joten suorittaakseen jonkin toimenpiteen käyttäjä lähettää pyynnön palvelimelle, joka lähettää vastauksen Tiedonsiirto voi muodostua pullonkaulaksi Javalla tehty sovellus (applet) toimii työasemassa (selaimessa), joten tiedonsiirtoa ei tarvita samassa mittakaavassa kuin CGI -ohjelmilla Java lähdetiedosto.java Luokkien lataus Tavukoodin tarkistus Java luokkakirjastot Java kääntäjä Java tavukoodi.class Java tulkki Ajettava järjestelmä Reaaliaikakääntäjä Java Virtual Machine 10 0 Käyttöjärjestelmä Laitteisto

101 Tietoverkot ja tietokannat JDBC Java sovellus Java sovellus JDBC API JDBC API JDBC ajurien hallinta JDBC - ODBC silta-ajuri JDBC ajurien hallinta Osittainen Java JDBC ajuri JDBC ajuri JDBC ajuri ODBC 10 1 DBMS middleware DBMS työasemakirjasto DBMS työasemakirjasto

102 Tietoverkot ja tietokannat Turvallisuus Mitä turvallisuusnäkökohtia liittyy tietoverkkoympäristöön? Turvallisuusnäkökohdat liittyvät lähinnä tietojen siirtoon Tietoon saa koskea vain lähettäjä ja vastaanottaja Tietoa ei ole muutettu lähetyksen aikana Vastaanottaja voi luottaa siihen, että tieto tulee lähettäjältä Lähettäjä voi luottaa siihen, että vastaanottaja on aito Lähettäjä ei voi kieltää lähettäneensä tietoa 10 2

103 Tietovarastointi (Data warehousing) Johdantoa 10 3 Mitä tarkoitetaan tietojen varastoinnilla? Yrityksessä käytettävä tietojärjestelmä, jonka avulla tehdään pieniä muutoksia yrityksen tietokantaan päivittäisessä työskentelyssä, on ns. online transaction processing (OLTP) Päivittäisessä käytössä olevan tietokannan koko voi olla pieni (muutama MB), keskikokoinen (muutama GB) tai suuri (muutamasta TB:stä muutamaan PB:hen) Yrityksen päätöksentekijöillä on joskus tarve saada päivittäisten tietojen lisäksi käyttöönsä historiallista tietoa järjestelmässä olleista tiedoista, jolloin aktiivisista tietokannoista saatu tieto ei ole riittävä Tietojen varastointi (Data Warehousing) on syntynyt em. tarpeesta saada yrityksen historiallista tietoa käyttöön Haittoja Tiedon löytäminen Näkymättömät ongelmat esim. tiedon eheydessä nykyiseen järjestelmään Tiedon suojaus / omistus Varastointiprojektin pituus

104 Tietovarastointi Arkkitehtuuri Mitä komponentteja liittyy tietojen varastointiarkkitehtuuriin? OD1 Reporting query, application development Meta LM QM OD2 Summarized OLAP Detailed OD3 WM DM 10 4 Arc/BU

105 Seuraavat luennot ovat uutta vuodelle 2015 Hajautetut tietokannat Tietovarastointi Tietokannat ja tietoturva Ohjelmistojen turvallisuus Tietokantojen uhat Php ja MySQL 10 5

106 Tietokannat ja tietoturva Tietoturvallisuus (tietoturva) on tietojen, järjestelmien ja palveluiden asianmukaista suojaamista sekä normaali- että poikkeusoloissa lainsäädännön ja muiden toimenpiteiden avulla. Tietojen luottamuksellisuutta, eheyttä ja käytettävyyttä suojataan laitteisto- ja ohjelmistovikojen, luonnontapahtumien tai tahallisten, tuottamuksellisten ja tapaturmaisten inhimillisten tekojen aiheuttamilta uhkilta ja vahingoilta. 10 6

107 Tietoturvallisuus 10 7 Saatavuus: (käytettävyys): Järjestelmien tiedot ovat tarvittaessa niihin oikeutettujen käytettävissä. Eheys: Tiedot ja järjestelmät ovat luotettavia, oikeellisia ja ajantasaisia, eivätkä ne ole laitteisto- ja ohjelmistovikojen, luonnontapahtumien tai oikeudettoman inhimillisen toiminnan seurauksena muuttuneet virheellisiksi. Luottamuksellisuus: Tiedot ovat vain niiden käyttöön oikeutettujen saatavissa eikä niitä paljasteta tai muuten saateta sivullisten käyttöön. Aitous: Ominaisuus, joka ilmentää tiedon eheyttä ja sitä, että tiedon alkuperäinen lähde on se, joka sen väitetään olevan. Alkuperäisyyssanaa käytetään toisinaan samassa merkityksessä kuin aitous-termiä.

108 Tietoaineistojen turvallisuus 10 8 Suomen Automaatioseura 2010

109 Ohjelmistojen turvallisuus Tietokantojen huolellisen suunnittelun lisäksi myös tietokantoja käyttävien sovellusten suunnittelun eri vaiheissa on kartoitettava mahdolliset tietoturvariskit ja keinot joilla riskejä ehkäistään (Laine 2010) 10 9

110 Saatavuus Tietokantojen suorituskyky takaa omalta osaltaan sen että tietokantojen tiedot ovat nopeasti ja tehokkaasti niiden käyttäjien saatavilla, joilla on oikeus tietoja käyttää. tietokannan suunnittelu tehokkaaksi (viritys) Tietokantaa käyttävän sovelluksen optimointi Käytettävällä levyjärjestelmällä voidaan myös vaikuttaa nopeuteen ja vikasietoisuuteen. RAID-levyjärjestelmää (Redundant Array of Inexpensive Disks). Suorituskykyyn vaikuttaa myös tietokantapalvelimen prosessoriteho muistin määrä käytettävä yhteys Tietojen varmuuskopiointi 11 0

111 Eheys Tietojen eheys saattaa vaarantua jos tietueita poistetaan tai lisätään ilman että tiedetään mitä ollaan tekemässä, tai tiedetään jos Muutoksia halutaan tehdä vahingoittamistarkoituksella! Laite -ja ohjelmaviat tai sähkökatkokset voivat aiheuttaa sen että tiedot eivät ole enää eheitä tai ristiriidattomia. 11 1

112 Eheys Käyttöoikeuksilla voidaan osittain estää normikäyttäjien tekemät virheet tietokantojen rakenteiden muuttamisessa. Varmuuskopioinnilla, lokitiedostoilla sekä mahdollisuudella tehtyjen muutosten peruuttamiseen voidaan tarvittaessa palauttaa tietokanta takaisin ehjään tilaan (lähtötilanteeseen). Yleisesti käytetty eheysmekanismi on kaksivaiheinen päivitys: aikomus ja päätös ('intent & commitment'). 11 2

113 Luottamuksellisuus Autentikointi (todennus) varmistaa, että vain sallitut käyttäjät pääsevät järjestelmään. Käyttöoikeuksia voidaan myöntää suoraan joillekin henkilöille tai oikeudet voivat liittyä rooliin (Role-based Access Control). Rooliin sisältyy ne käyttöoikeudet joita käyttäjät tehtävässä tarvitsevat. Helpompaa ja nopeampaa myöntää käyttöoikeuksia tietyille käyttäjäryhmille kuin yksittäisille käyttäjille. Tiedon luokittelu Tiedon tärkeys, arkaluontoisuus ja kriittisyys liiketoiminnalle. Tiedon salaus Syö resursseja ja voi aiheuttaa uusia ongelmia 11 3

114 11 4 Tietokantojen uhat (Imperva 2014)

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

Relaatiomalli ja -tietokanta

Relaatiomalli ja -tietokanta Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely

HAAGA-HELIA Heti-09 1 (14) ICT05: Tiedonhallinta ja Tietokannnat O.Virkki Transaktionkäsittely HAAGA-HELIA Heti-09 1 (14) Transaktionkäsittely Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen...

Lisätiedot

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012)

IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) IIO30220 Database Management / Tietokannan hallinta TAPAHTUMIEN HALLINTA JOUNI HUOTARI (7.3.2012) TEHTÄVIÄ/KYSYMYKSIÄ Määrittele tapahtuma (transaction) tapahtumien hallinta Mitä ovat tapahtuman ACIDominaisuudet?

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

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

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas 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ä

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli HAAGA-HELIA heti09 1 (27) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Arvojoukkoeheyssääntö... 8 Pääavain ja yksilön eheyssääntö...

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

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

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

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

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

Tietohakemisto ja Transaktionkäsittely

Tietohakemisto ja Transaktionkäsittely HELIA TIKO-05 1 (18) Tietohakemisto ja Transaktionkäsittely Tietohakemisto...2 Oraclen tietohakemistonäkymät (osa)...3 Yleiset...3 Taulut...3 Säännöt...3 Näkymät...3 Synonyymit...4 Indeksit...4 Sekvenssit...4

Lisätiedot

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

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta Tietokannan hallinta - kurssin tavoite Kurssilla opitaan periaatteet fyysisen tietokannan tallennuksesta ja käsittelystä tietokantakyselyiden muuntamisesta fyysisen tietokannan käsittelyoperaatioiksi kyselyn

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 4 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Relaatiotietokannan suunnitteluprosessin

Lisätiedot

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Järjestelmänvalvontaopas

Järjestelmänvalvontaopas Järjestelmänvalvontaopas Medtronic MiniMed Northridge, CA 91325 USA 800 646 4633 (800-MiniMed) 818 576 5555 www.minimed.com Edustaja EU:n alueella Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen Alankomaat

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

Lisätiedot

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

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää

Lisätiedot

Tietokannan suunnittelu

Tietokannan suunnittelu HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan

Lisätiedot

Fyysinen suunnittelu

Fyysinen suunnittelu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Fyysinen suunnittelu kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003, 2005) luvusta 9 Jouni

Lisätiedot

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001 HELIA 1 (19) Luento 11 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Arvojoukkoeheyssäännöt... 5 Null-arvoista... 6 Viite-eheyssäännöt... 7 Emorelaation päivitys...

Lisätiedot

FuturaPlan. Järjestelmävaatimukset

FuturaPlan. Järjestelmävaatimukset FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

Lisätiedot

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

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP RINT THIS DOCUM ENT Relaatiotietokannat DONOTP Relaatiomalli Perustana rakennetason tietomalli relaatiomalli (the relational model of data) perusteoria: Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun

Lisätiedot

Tietokantojen perusteet

Tietokantojen perusteet Tietokantojen perusteet Johdanto Jouni Huotari & Ari Hovi 2008 TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 7 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 02.10.2017 1/10/17 Helsinki Metropolia University of Applied Sciences 1 Tietokannan

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1. Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30100 TIETOKANTOJEN SUUNNITTELU JA IIO30200 TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI, DOCENDO (2003, 2005), LUKU 9 JOUNI HUOTARI,

Lisätiedot

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Seminaari: Keskusmuistitietokannat Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Sisältö Johdanto Esiteltävien menetelmien taustoja Hajautetun tietokannan spekuloiva samanaikaisuuden

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 4.1 Oliot ja Relaatiot... 2 Relaatiomalli... 2 Oliomalli... 2 Termejä... 4 Yhteensovituksen 3 tapaa... 5 1) Oliot relaatioina / tauluina ja RDBMS... 6 Olioluokka... 7 Olion identiteetti...

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta. Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

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

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Tietokannanhallintajärjestelmä (DBMS)

Tietokannanhallintajärjestelmä (DBMS) HELIA TIKO-05 1 (8) Tietokannanhallintajärjestelmä (DBMS) Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Peräkkäistiedostot... 3 Suorasaantitiedostot... 4 Tiedoston palvelut...

Lisätiedot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä

Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta. Hajautuksen hyötyjä Järjestelmäarkkitehtuuri (TK081702) Hajautettu tietokanta Hajautettu tietokanta Jokainen hajautettu tietokanta muodostaa oman kokonaisuutensa Loogisesti yhtenäinen data on hajautettu tietokantoihin (eri

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

FYYSINEN SUUNNITTELU

FYYSINEN SUUNNITTELU IIO30120 DATABASE DESIGN / TIETOKANTOJEN SUUNNITTELU JA IIO30220 DATABASE MANAGEMENT / TIETOKANNAN HALLINTA FYYSINEN SUUNNITTELU KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI,

Lisätiedot

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri Palomuuri Teoriaa Palomuurin tehtävä on estää ei-toivottua liikennettä paikalliseen verkkoon tai verkosta. Yleensä tämä tarkoittaa, että estetään liikennettä Internetistä paikallisverkkoon tai kotikoneelle.

Lisätiedot

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2017 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 2 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 27/8/17 Helsinki Metropolia University of Applied Sciences 1 Oppitunnin

Lisätiedot

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI 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

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

A271117 TIETOKANNAT, 4 op Kevät 2010 - TI09

A271117 TIETOKANNAT, 4 op Kevät 2010 - TI09 A271117 TIETOKANNAT, 4 op Kevät 2010 - TI09 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005 HELIA 1 (21) Luento 7 Relaatiomallin kertausta... 2 Peruskäsitteet... 2 Relaatio... 4 Määritelmä... 4 Relaatiokaava (Relation schema)... 4 Relaatioinstanssi (Relation instance)... 4 Attribuutti ja arvojoukko...

Lisätiedot

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

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Liite 2 : RAFAELA -aineiston elinkaaren hallinta

Liite 2 : RAFAELA -aineiston elinkaaren hallinta RAFAELA-hoitoisuusluokitus-jär je 1 Liite 2 : RAFAELA -aineiston elinkaaren hallinta Ohje: Lomake täytetään Tilaajan toimesta ja palautetaan Toimittajalle käyttöoikeussopimuksen mukana. 1. Aineiston omistajuus

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI OSIO 02 Tietokantojen perusteita Tietokanta Näistä vaatimuksista seuraa: tietokantaan liittyy ohjelmisto, joka hoitaa sitä tämä ohjelmisto varsinaisesti lukee ja kirjoittaa

Lisätiedot

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki HELIA TIKO-05 1 (28) Relaatiomalli Relaatiomalli...2 Peruskäsitteet...3 Relaatio...5 Attribuutti ja arvojoukko...6 Monikko...7 Säännöt...8 Arvojoukkoeheyssääntö...8 Pääavain ja yksilön eheyssääntö...9

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

Kymenlaakson Kyläportaali

Kymenlaakson Kyläportaali Kymenlaakson Kyläportaali Klamilan vertaistukiopastus Tietoturva Tietoturvan neljä peruspilaria 1. Luottamuksellisuus 2. Eheys 3. Saatavuus 4. (Luotettavuus) Luottamuksellisuus Käsiteltävää tietoa ei paljasteta

Lisätiedot

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt Käyttö 6. Relaatioalgebra (EI TENTTIIN!) Select, Project, Union, Difference, Join 7. (E)ER-mallin muuntaminen relaatioiksi Kaava Mikä on tietomalli? Malli,

Lisätiedot

Käyttöjärjestelmät: prosessit

Käyttöjärjestelmät: prosessit Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

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

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu HELIA 1 (16) Luento 3.2 Suorituskyvyn optimointi jatkuu...... 2 Tietojen tallennusratkaisut... 2 Tiedon tallennuksen yksiköitä... 3 Loogiset... 3 Fyysiset... 3 Tallennusmäärittelyt Oraclessa... 5 Loogiset

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU

Lisätiedot

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

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Taitaja 2015 Windows finaalitehtävä

Taitaja 2015 Windows finaalitehtävä Taitaja 2015 Windows finaalitehtävä Tehtäväkuvaus Tehtävänäsi on siirtää, asentaa ja määritellä yrityksen Windows -ratkaisuihin perustuva IT-ympäristö. Käytä salasanaa Qwerty123, jos muuta ei ole pyydetty.

Lisätiedot

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle 2 Sisällys 1 Palvelunhallinta... 3 1.1 Käyttäjäryhmän luominen... 3 2 Tehtävienhallinta- perustiedot... 4 2.1 Yhtiön perustiedot... 4 2.2 Tehtävä-/

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (17) Luento 4.5 Normalisointi... 2 Tavoitteet... 2 Attribuuttien väliset riippuvuudet... 4 Funktionaalinen / moniarvoinen riippuvuus... 4 Transitiivinen / suora riippuvuus... 6 Täydellinen / osittainen

Lisätiedot