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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2. Samanaikaisuuden hallinta tietokantapalvelimessa Tiedonhallintaa Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 1 Transaktiot eli tapahtuma(sarja)t 2 Transaktio (transaction) on DBMSn

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

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet

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

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

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

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

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,

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

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

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

- Jarjestelmaasiantuntija Markku Jaatinen

- Jarjestelmaasiantuntija Markku Jaatinen SUOMEN KUNTALIITTO Sairaalapalvelut Terveydenhuollon ATK-päivät 26. - 27.5.1 997 Lahti, Kauppahotelli Grand - Jarjestelmaasiantuntija Markku Jaatinen Telecom Finland Tietojenhallinta Intranetin ja Internetin

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI Tarkastellaan Loogista tietokannan suunnittelua vaihe 2 Taulujen määrittely loogisen tietomallin perusteella 2 Suunnittele ja tarkista taulut joka loogisesta

Lisätiedot

KURSSIMONISTE KEVÄT 2015

KURSSIMONISTE KEVÄT 2015 1 CT60A4301 Tietokannat 5 op KURSSIMONISTE KEVÄT 2015 Koonnut: Erja Mustonen-Ollila Lisäykset vuodelle 2015: 1.1.2015/Erja Mustonen-Ollila CT60A4301 Tietokannat -kurssin sisältö ja suorittaminen Kevään

Lisätiedot

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14 Relaatioista Sarakenimistä relaation kaava tulisi olla yksiselitteinen attribuutin roolinimen tulisi auttaa ymmärtämään attribuutin tarkoituksen OSASTO(NIMI,NRO, TNRO, SIJAINTI) mitä tarkoittaa TNRO? viiteavaimella

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

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

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa

Älykästä. kulunvalvontaa. toimii asiakkaan omassa tietoverkossa Älykästä kulunvalvontaa e Acces toimii asiakkaan omassa tietoverkossa Perinteisen kulunvalvonnan seitsemän pullonkaulaa eli miksi useat yritykset eivät ole hankkineet kulunvalvontajärjestelmää? 1. Koska

Lisätiedot

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013 Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

GroupDesk Toiminnallinen määrittely

GroupDesk Toiminnallinen määrittely GroupDesk Toiminnallinen määrittely Tilanne: Paikallinen oppilaitos, kuvitteellinen WAMK, tarvitsee ryhmätyöhön soveltuvan sähköisen asioiden hallintajärjestelmän ja ryhmätyöohjelmiston, jonka ajatuksena

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

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI K2009 http://homes.jamk.fi/~huojo/opetus/iio10200/ TAVOITTEENA ON, ETTÄ OPISKELIJA: Osaa SQL-kielen perusteet Taulujen määrittely-

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

Johdatus rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

29.11.2015. Työasema- ja palvelinarkkitehtuurit IC130301. Storage. Storage - trendit. 5 opintopistettä. Petri Nuutinen

29.11.2015. Työasema- ja palvelinarkkitehtuurit IC130301. Storage. Storage - trendit. 5 opintopistettä. Petri Nuutinen Työasema- ja palvelinarkkitehtuurit IC130301 5 opintopistettä Petri Nuutinen 5 opintopistettä Petri Nuutinen Storage Storage hallinnassa tärkeää saatavuus laajentaminen turvaaminen optimointi Storagen

Lisätiedot

Mikä on internet, miten se toimii? Mauri Heinonen

Mikä on internet, miten se toimii? Mauri Heinonen Mikä on internet, miten se toimii? Mauri Heinonen Mikä on Internet? Verkkojen verkko Muodostettu liittämällä lukuisia aliverkkoja suuremmaksi verkoksi Sivustojen tekemiseen käytetään kuvauskielta HTML

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

Verkottunut suunnittelu

Verkottunut suunnittelu Rintekno Oy / JMM / 10.1.2002 Verkottunut suunnittelu DOKUMENTTI- POHJAINEN Tarkastus ja hyväksyntä Automaattinen dokumenttien luonti MALLIPOHJAINEN 2D:SSÄ JA 3D:SSÄ Tarkastus ja hyväksyntä Virtuaaliset

Lisätiedot

DOORSin Spreadsheet export/import

DOORSin Spreadsheet export/import DOORSin Spreadsheet export/import 17.10.2006 SoftQA Oy http/www.softqa.fi/ Pekka Mäkinen Pekka.Makinen@softqa.fi Tietojen siirto DOORSista ja DOORSiin Yhteistyökumppaneilla ei välttämättä ole käytössä

Lisätiedot

Macintosh (Mac OS X 10.2) Verkkoasetukset Elisa Laajakaista yhteyksille:

Macintosh (Mac OS X 10.2) Verkkoasetukset Elisa Laajakaista yhteyksille: 1 (13) Macintosh () Verkkoasetukset Elisa Laajakaista yhteyksille: Valitse Omenavalikosta Järjestelmäasetukset. Järjestelmäasetuksista Verkko 2 (13) Verkkoasetuksista (1.) Kytkentä Ethernet ja (2.) Määrittelytapa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS NORMALISOINTI HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 5 JOUNI HUOTARI & ARI HOVI SUUNNITTELUPUTKI Käyttäjien näkemykset Näytöt, ikkunat

Lisätiedot

010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva

010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva 010627000 Tietoturvan Perusteet Yksittäisen tietokoneen turva Pekka Jäppinen 31. lokakuuta 2007 Pekka Jäppinen, Lappeenranta University of Technology: 31. lokakuuta 2007 Tietokone Koostuu raudasta ja ohjelmista

Lisätiedot

Tikon ostolaskujen käsittely

Tikon ostolaskujen käsittely Toukokuu 2014 1 (8) Toukokuu 2014 2 (8) Sisällysluettelo 1. Käyttäjäasetukset... 3 2. Yleiset parametrit... 3 3. Kierrätysasetukset... 3 4. palvelimen tiedot... 4 5. lähetyksen aktivointi... 5 6. Eräajot

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Yritysturvallisuuden perusteet. 11. Luento Tietotekninen turvallisuus

Yritysturvallisuuden perusteet. 11. Luento Tietotekninen turvallisuus Yritysturvallisuuden perusteet Teemupekka Virtanen Helsinki University of Technology Telecommunication Software and Multimedia Laboratory teemupekka.virtanen@hut.fi 11. Luento Tietotekninen turvallisuus

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

Ajankohtaista peltolohkorekisterissä

Ajankohtaista peltolohkorekisterissä Ajankohtaista peltolohkorekisterissä Ajantasaistus keväällä 2009 Talvella 2008-2009 maataloushallinto teki ajantasaistusta yhteensä 104 kunnan alueella. Kaikkia kuntia ei ole ajantasaistettu kokonaisuudessaan,

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

Autentikoivan lähtevän postin palvelimen asetukset

Autentikoivan lähtevän postin palvelimen asetukset Autentikoivan lähtevän postin palvelimen asetukset - Avaa Työkalut valikko ja valitse Tilien asetukset - Valitse vasemman reunan lokerosta Lähtevän postin palvelin (SM - Valitse listasta palvelin, jonka

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

KURSSIMONISTE KEVÄT 2009

KURSSIMONISTE KEVÄT 2009 1 CT20A4301 Tietokannat 5 op KURSSIMONISTE KEVÄT 2009 Koonnut: Erja Mustonen-Ollila CT20A4301 Tietokannat -kurssin sisältö ja suorittaminen Kevään luento- ja harjoitusaikataulu 2 16.12.2008 - Mustonen-Ollila

Lisätiedot

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN VERKKOKÄYTTÄJÄN OPAS Tulostuslokin tallennus verkkoon Versio 0 FIN Oppaassa käytetyt kuvakkeet Tässä käyttöoppaassa käytetään seuraavaa kuvaketta: Vinkki kertoo, miten toimia tietyissä tilanteissa, tai

Lisätiedot

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

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki 12.10.2006 HELIA TIKO-05 1 (22) SQL / DML SQL / DML...2 Tiedon haku eli -lause...4 Distinct-määre...7 Lasketut sarakkeet...8 Sarakkeen uudelleen nimeäminen...9 SQL:n funktioita... 10 Merkkijonofunktiot... 10 Päivämääräfunktiot...

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

Transaktiot - kertausta

Transaktiot - kertausta Hajautettujen järjestelmien perusteet Transaktiot - kertausta Distributed Systems, Concepts and Design, George Coulouris, Jean Dollimore, Tim Kindberg Addison-Wesley 1988,1994. Pearson Education 2001 ISBN:

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

TIEDONHALLINTAJÄRJESTELMÄN KÄYTTÖÖNOTTO JA SOVELLUSTEN INTEGROINTI PROSESSITEOLLISUUDEN SUUNNITTELU- JA KONSULTOINTIYRITYKSESSÄ

TIEDONHALLINTAJÄRJESTELMÄN KÄYTTÖÖNOTTO JA SOVELLUSTEN INTEGROINTI PROSESSITEOLLISUUDEN SUUNNITTELU- JA KONSULTOINTIYRITYKSESSÄ Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma Diplomityö Timo Rauta TIEDONHALLINTAJÄRJESTELMÄN KÄYTTÖÖNOTTO JA SOVELLUSTEN INTEGROINTI PROSESSITEOLLISUUDEN

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

IHTE-1900 Seittiviestintä

IHTE-1900 Seittiviestintä IHTE-1900 Seittiviestintä Tietokannat 15.11. Päivän aiheet Tietokantojen perusteita Mihin tietokantoja voidaan käyttää? Mitä hyötyä tietokannoista on? Esimerkkejä tietokantojen käytöstä Mihin tietokantoja

Lisätiedot

IHTE-1900 Seittiviestintä

IHTE-1900 Seittiviestintä IHTE-1900 Seittiviestintä Tietokannat 15.11. Päivän aiheet Tietokantojen perusteita Mihin tietokantoja voidaan käyttää? Mitä hyötyä tietokannoista on? Esimerkkejä tietokantojen käytöstä 1 Mihin tietokantoja

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

SecGo. Sähköinen allekirjoitus ja sen käyttö. Ari-Pekka Paananen, SecGo VE Oy Director,technology ari-pekka.paananen@secgo.com

SecGo. Sähköinen allekirjoitus ja sen käyttö. Ari-Pekka Paananen, SecGo VE Oy Director,technology ari-pekka.paananen@secgo.com SecGo Sähköinen allekirjoitus ja sen käyttö Ari-Pekka Paananen, SecGo VE Oy Director,technology ari-pekka.paananen@secgo.com Turvallinen Sähköinen Tiedonkulku Tunnistetut käyttäjät tietojärjestelmiin Pääsyoikeudet

Lisätiedot