Toisinnetun tietokannan hallinta

Koko: px
Aloita esitys sivulta:

Download "Toisinnetun tietokannan hallinta"

Transkriptio

1 Toisinnetun tietokannan hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut , luvun 24 (implementing distributed transactions) kohta 24.7 (replicated databases). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Sixth Edition. McGraw-Hill, 2010; sivut , kohta 16.9 (remote backup systems); sivut ja , kohdan 19.5 (concurrency control in distributed databases) alakohdat (primary copy), (majority protocol), (biased protocol) ja (quorum consensus protocol), (replication with weak degrees of consistency) sekä kohta 19.6 (availability); sivu 1188, luvun 28 (Oracle) alakohta (replication); sivut , luvun 29 (IBM DB2 Universal Database) kohta (replication, distribution, and external data); sivut , luvun 30 (Microsoft SQL Server) kohta 30.9 (replication). A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006; sivut , kohta 17.9 (remote backup systems); sivut , ja , kohdan 22.5 (concurrency control in distributed databases) alakohdat (primary copy), (majority protocol), (biased protocol) ja (quorum consensus protocol), (replication with weak degrees of consistency) sekä kohta 22.6 (availability); sivut , luvun 27 (Oracle) alakohta (replication); sivut , luvun 28 (IBM DB2 Universal Database) kohta (replication, distribution, and external data); sivut , luvun 29 (Microsoft SQL Server) kohta 29.9 (replication). 121

2 Tietoalkioiden toisintaminen, s Toisinteiden johdonmukaisuus, s Tahdistavasti päivittävä toisintaminen, s Päätösvaltaan perustuva toisintaminen, s Tahdistamatta päivittävä toisintaminen, s Pääkopiotoisintaminen, s Ryhmätoisintaminen, s Oraclen toisintamiskäytännöt, s Julkaisuun ja tilauksiin perustuva toisintaminen, s Etävarmistusjärjestelmät, s

3 Tietoalkioiden toisintaminen Tietokannan tietoalkion toisintamisella (replication) tarkoitetaan tietoalkion kopion eli toisinteen (replica) ylläpitämistä hajautetun tietokantajärjestelmän useammassa eri pisteessä. Toisintamisen yhtenä tarkoituksena on parantaa tiedon saatavuutta (data availability) häiriötilanteissa: Jos järjestelmän jokin piste romahtaa tai jää vaille yhteyttä muihin pisteisiin verkon osittumisen vuoksi, pisteessä säilytettävän tietoalkion toisinne voi kuitenkin olla saatavilla jostakin toisesta pisteestä. Toisintaminen voi myös parantaa tiedon saatinopeutta ja sitä kautta lisätä järjestelmän transaktiosuoritustehoa (transaktioiden lukumäärää sekunnisssa) sekä vähentää vasteaikaa, koska transaktio voi operoida tietoalkion lähimpään toisinteeseen, parhaimmassa tapauksessa paikalliseen kopioon. Esimerkkinä esitetyssä verkkokauppasovelluksessa asiakkaiden tietoja sisältävän customer-taulu on ositettu vaakasuorasti kaikkiin varastopisteisiin ja lisäksi toisinnettu kokonaisuudessaan päätoimipisteeseen. Asiakkaan tavaratilauksen toimittamiseen liittyvä transaktio suoritetaan varastopisteessä käyttäen sinne sijoitettua palasta customerrelaatiosta, kun taas kuukausittaisen postituksen kaikille asiakkaille toteuttava transaktio käyttää päätoimipisteeseen toisinnettua taulua. 123

4 Toisintamisella on hintansa. Tallennustilaa tarvitaan enemmän. Järjestelmästä tulee monimutkaisempi toisinnetun tiedon hallinnan vuoksi. Jos kahden transaktion annetaan lukea ja mahdollisesti myös kirjoittaa saman tietoalkion eri toisinteita, kumpikin saattaa olla tietämätön toisen tekemästä luvusta tai päivityksestä, mikä voi johtaa erilaisiin eristyvyysanomalioihin ja tietokannan eheyden rikkoutumiseen. Tietoa toisintavan järjestelmän täytyy taata, että tietoalkion päivitys tavalla tai toisella ohjataan tietoalkion kaikkiin toisinteisiin ja että transaktion tietoalkioon kohdistama lukuoperaatio tyydytetään palauttamalla sopiva arvo. Verkkokauppasovelluksessa toisinnettua asiakastietoa on tarpeen päivittää vain silloin, kun kauppaan tulee uusi asiakas tai kun entisen asiakkaan tiedot (esim. osoite) muuttuvat. 124

5 Tietoalkio on täysin toisinnettu (totally replicated), jos siitä on toisinne jokaisessa pisteessä. Tietoalkio on osittain toisinnettu (partially replicated), jos siitä on toisinteita joissakin muttei kaikissa pisteissä. Jos tietokannan hallintajärjestelmä ei tarjoa toisintamismekanismia, sovellus voi itse toisintaa tietoalkioita. Järjestelmä on silloin tietämätön siitä, että jotkin eri pisteiden eri tietoalkioista ovatkin yhden ja saman tietoalkion toisinteita. Jos pisteen s 1 tietoalkio (x,v 1 ) ja pisteen s 2 tietoalkio (x,v 2 ) ovat saman tietoalkion toisinteita, kunkin transaktion pitää eksplisiittisesti pitää yllä eheysrajoitetta v 1 = v 2. Pisteen s 1 transaktion T 1 = BW[x,v 1,v 1 ]C, joka siis päivittää toisinnetta (x,v 1 ), täytyy eksplisiittisesti käynnistää pisteessä s 2 alitransaktio T 2 = BW[x,v 1,v 1 ]C, joka huolehtii toisen toisinteen päivittämisestä. Tietoalkion lukevan transaktion pitää eksplisiittisesti kertoa, mikä toisinne luetaan, ts. luetaanko tietoalkio pisteessä s 1 vai pisteessä s 2 toimivan alitransaktion osana. 125

6 Useimmat nykyisistä tunnetuista tietokannan hallintajärjestelmistä vapauttavat sovellussuunnittelijan eksplisiittisestä toisinteiden hallinnasta transaktioissa ja tarjoavat sen sijaan automaattisen toisinteiden valvonnan (replica control), jolloin toisintaminen ei näy sovellukseen. Toisinteiden valvonta tietää, missä tietoalkion kaikki toisinteet sijaitsevat. Kun transaktio pyytää saada lukea tai kirjoittaa tietoalkion, se ei määritä mitään erityistä toisinnetta. Pyynnön käsittelee toisinteiden valvonta, joka automaattisesti kääntää sen pyynnöksi operoida sopivaan toisinteeseen tai toisinteisiin ja välittää pyynnön edelleen paikalliselle samanaikaisuuden hallinnalle (jos toisinne on paikallinen) ja/tai johonkin tai joihinkin niistä etäpisteistä, joissa toisinne sijaitsee. Kun samanaikaisuuden hallinta perustuu lukitukseen, toisinteita lukitaan kuten tavanomaisia tietoalkioita kun niihin operoidaan. Samanaikaisuuden hallinta on tietämätön siitä, että tietoalkio saattaa oikeastaan olla toisinne toisessa pisteessä sijaitsevasta tietoalkiosta. 126

7 Toisinteiden valvonnan ja samanaikaisuuden hallinnan välinen suhde: 1. Transaktio T pyytää toisinteiden valvonnalta saada operoida tietoalkioon x. 2. Toisinteiden valvonta lähettää operointipyynnön pisteisiin s 1,...,s n (yksi tai useampi x:n toisinteiden sijaintipisteistä). 3. Kunkin pisteen s i (i = 1,...,n) samanaikaisuuden hallinta hankkii T :n s i :ssä toimivalle alitransaktiolle operoinnin oikeuttavan lukon x:ään. 4. Operaatio toteutetaan s i :ssä sijaitsevaan x:n toisinteeseen (i = 1,...,n). 127

8 Toisinteiden johdonmukaisuus Kaupallisen tietokannan hallintajärjestelmien toisinteiden valvonta yrittää ylläpitää toisinteiden kesken ainakin jonkinlaista keskinäistä johdonmukaisuutta (mutual consistency). Vahva keskinäinen johdonmukaisuus (strong mutual consistency) tarkoittaa, että tietoalkion kaikilla sitoutuneilla toisinteilla on aina sama arvo. Valitettavasti järjestelmän suorituskykyvaatimukset tekevät vahvan keskinäisen johdonmukaisuuden tavoitteesta epärealistisen. Niinpä useimmat toisinteiden valvonnat ylläpitävät vaatimattomampaa tavoitetta, heikkoa keskinäistä johdonmukaisuutta (weak mutual consistency): tietoalkion kaikki sitoutuneet toisinteet tulevat lopulta samanarvoisiksi, vaikka tiettynä hetkenä kahdella tai useammalla sitoutuneella toisinteella saattaakin olla eri arvot. Keskinäisen johdonmukaisuuden ylläpitämiseksi on esitetty erilaisia algoritmeja. 128

9 Yksinkertaisimmassa toisinteiden valvontajärjestelmässä luetaan yksi ja kirjoitetaan kaikki (read-one/write-all). Kun transaktio haluaa lukea tietoalkion, toisinteiden valvonta voi tarjota luettavaksi minkä tahansa luultavasti lähimmän toisinteen. Täysin toisinnetussa järjestelmässä lukutransaktio (so. transaktio, joka ei lainkaan kirjoita) on aina paikallinen ja siis oletettavasti hyvin nopea. Jos taas transaktio haluaa kirjoittaa tietoalkion, toisinteiden valvonnan on suoritettava algoritmi, joka lopulta aiheuttaa kaikkien toisinteiden päivityksen. Tämä on menetelmän vaikea tapaus, ja eri algoritmeilla on erilaiset ominaisuudet. Yleisesti ottaen yhden lukemiseen ja kaikkien kirjoittamiseen perustuva järjestelmä on toisintamatonta hajautettua järjestelmää tehokkaampi, jos eri tietoalkioihin kohdistuvat lukuoperaatiot ovat huomattavasti yleisempiä kuin päivitykset. (Oletamme, että lukuoperaatiot kohdistuvat etäpisteiden tietoihin.) Toisinteet voidaan päivittää tahdistetusti tai tahdistamatta. 129

10 Tahdistavasti päivittävä toisintaminen Tahdistavasti päivittävässä toisintamisessa (synchronous-update replication, synchronous replication) eli innokkaassa toisintamisessa (eager replication) transaktion T päivittäessä tietoalkiota x tämän kaikki toisinteet päivitetään T :n sisällä, siis osana yhtä ja samaa hajautettua transaktiota T. Jos x:stä on toisinne pisteissä s 1,...,s n, transaktiolla T on siis alitransaktio T i kaikissa näissä pisteissä ja tähän alitransaktioon sisältyy x:n päivitys. Alitransaktioiden sitoutuminen koordinoidaan kaksivaiheisella sitoutumiskäytännöllä. Menettely takaa toisinteiden vahvan keskinäisen johdonmukaisuuden. Koordinoija s 0 : Osallinen s 1 : Osallinen s 2 : T,B lokiin lock(t, x, X); T :n päivitys W[x]; T 1,s 0,T,B lokiin; T 2,s 0,T,B lokiin; lock(t 1,x,X); lock(t 2,x,X); T 1 :n päivitys W[x]; T 2 :n päivitys W[x]; 130

11 Toisinteiden lukinta ja operointijärjestys voidaan toteuttaa pessimistisesti tai optimistisesti. Pessimistisessä menetelmässä (josta esimerkki edellä) operoinnin kohteena olevan tietoalkion kaikki toisinteet lukitaan ennen kuin operointi voi siirtyä transaktion seuraavaan luku- tai päivitysoperaatioon. Optimistisessa menetelmässä transaktio voi edetä lukittuaan ja päivitettyään yhden toisinteen; muut toisinteet lukitaan ja päivitetään myöhemmin, mutta kuitenkin ennen transaktion sitoutumista. Kummassakin menetelmässä voi esiintyä yhdestä tietoalkiosta johtuva lukkiuma (one-item deadlock), vaikkei lukkojen korotuksia esiinny. Kaksi samaa tietoalkiota päivittävää, samanaikaisesti käynnissä olevaa transaktiota voi näet kumpikin onnistua kirjoituslukitsemaan osan tietoalkion toisinteista muttei kaikkia. 131

12 Innokkaassa toisintamisessa hajautettu transaktio joutuu hankkimaan paljon lukkoja, koska toisinnetun tietoalkion kaikki toisinteet on lukittava (toisinteen sijaintipisteessä toimivan alitransaktion nimiin). Tämä lisää lukkiuman vaaraa. Sitä paitsi vasteaika lisääntyy huomattavasti useiden lukkopyyntöjen vuoksi ja siksi, että transaktio ei voi sitoutua ennen kuin kaikkien toisinteiden päivityksen pysyvyys on taattu (kaksivaiheisella sitoutumisella). Näiden suorituskykyyn negatiivisesti vaikuttavien tekijöiden vuoksi innokkaan toisintamisen soveltuvuus on käytännössä rajattua. 132

13 Päätösvaltaan perustuva toisintaminen Tahdistettu yhden lukemiseen ja kaikkien kirjoittamiseen perustuva toisintaminen voi lisätä tiedon saatavuutta lukijoille, mutta ei auta päivittäjiä. Kaikkien kirjoittamisen vaatimuksesta seuraa, että päivitystä ei saada päätökseen, jos jonkin toisinteen sijaintipiste romahtaa. Tarkastellaan tahdistetun toisintamisen muunnelmaa, jossa minkään operaation ei tarvitse operoida tietoalkion kaikkiin toisinteisiin, niin että tietoalkio saattaa olla saatavilla, vaikka jokin sen toisinteista ei ole. Tämän tavoitteen saavuttaminen edellyttää, ettei toisinteita pidetä edes heikosti keskinäisesti johdonmukaisina. Tietoalkion kaikille toisinteille ei siis taata samaa arvoa. 133

14 Sovittuun päätösvaltaan (quorum consensus) perustuvassa käytännössä toisinnetun tietoalkion lukua tai kirjoitusta pyytävälle transaktiolle lukitaan ensin sovitun kokoinen osajoukko toisinteita. Tietoalkion lukuoperaatiota varten lukittavaa osajoukkoa (tai sen kokoa) kutsutaan tietoalkion lukuvallaksi (read quorum) ja kirjoitusoperaatiota varten lukittavaa osajoukkoa (tai sen kokoa) kokoa kutsutaan tietoalkion kirjoitusvallaksi (write quorum). Lukuoperaation tulos konstruoidaan lukuvaltaan kuuluvista toisinteista. Kirjoitusoperaatio toteutetaan kirjoitusvaltaan kuuluviin toisinteisiin. Jos tietoalkion lukuvaltaan kuuluu p toisinnetta ja kirjoitusvaltaan q toisinnetta, vaaditaan p + q > n ja q > n/2, missä n on tietoalkion toisinteiden kokonaislukumäärä. Tämä takaa, että minkä tahansa lukuvallan ja minkä tahansa kirjoitusvallan leikkaus on epätyhjä ja että minkä tahansa kahden kirjoitusvallan leikkaus on epätyhjä. 134

15 Tietoalkion x lukemista yrittävä transaktio joutuu siis odottamaan ainakin yhdessä x:n toisinteen sijoituspisteessä, jos jokin toinen transaktio on kirjoittamassa x:ää, ja x:n kirjoittamista yrittävä transaktio joutuu odottamaan ainakin yhdessä pisteessä, jos jokin toinen transaktio on lukemassa tai kirjoittamassa x:ää. Yhden lukemiseen ja kaikkien kirjoittamiseen perustuva käytäntö on itse asiassa päätösvaltaan perustuva käytäntö, jossa lukuvallan toisinteiden lukumäärä on yksi ja kirjoitusvallan n. Päätösvaltaan perustuvassa toisintamisessa on mahdollista tasapainoilla tiedon saatavuuden ja operointikustannuksen välillä. Mitä pienempi on lukuvallan koko p, sitä paremmin tietoalkio on saatavilla lukemista varten ja sitä alempi on lukuoperaation kustannus. Mitä pienempi on kirjoitusvallan koko q, sitä paremmin tietoalkio on saatavilla kirjoittamista varten ja sitä alempi on kirjoitusoperaation kustannus. Lukujen ja kirjoitusten saatavuudet ovat kuitenkin toisiinsa sidoksissa. Mitä paremmin saatavilla ja mitä tehokkaampi lukuoperaatio on, sitä vähemmän saatavilla ja tehottomampi on kirjoitusoperaatio, ja kääntäen. 135

16 Kun tietoalkion x kirjoitusvalta on hankittu, vain siihen kuuluvat x:n toisinteet päivitetään. Toisinteiden keskinäistä johdonmukaisuutta ei ylläpidetä, koska kaikkia x:n toisinteita ei päivitetä. Joillakin x:n toisinteista on ajantasainen arvo, toisilla ei. Koska x:n jokainen lukuvalta leikkaa jokaista kirjoitusvaltaa, jokainen lukuvalta leikkaa erikoisesti sitä kirjoitusvaltaa, johon perustuu x:n viimeisin kirjoitus. Niinpä x:n jokainen lukuvalta sisältää ainakin yhden x:n toisinteen, jolla on ajantasainen arvo. Miten toisinteiden valvonta osaa identifioida x:n ajantasaisen toisinteen? 136

17 Oletamme, että tietoalkion x jokaisessa toisinteessa ylläpidetään juoksevaa versionumeroa. Kun kirjoitusvaltaan kuuluvat x:n toisinteet päivitetään, kaikkien näiden toisinteiden uudeksi versionumeroksi asetetaan n + 1, missä n on kirjoitusvallan toisinteiden versionumeroiden maksimi. Kirjoitus edellyttää siis kirjoitusvallan kaikkien toisinteiden versionumeroiden lukemista. Kun kirjoitettava arvo riippuu tietoalkion entisestä arvosta, tämä entinen arvo luetaan sellaisesta toisinteesta, jossa versionumero on lukutai kirjoitusvallan suurin. Luku- ja kirjoitusvalloilta vaaditut ehdot takaavat, että luetuksi tulee aina tuorein toisinne, so. toisinne, jonka versionumero on suurin kaikista. Näin myös kirjoitus perustuu aina tuoreimpaan toisinteeseen, ja versionumeroiden sarja on kussakin toisinteessa nouseva. 137

18 Pessimistiseen lukitukseen ja päätösvaltaan perustuva toisintaminen toimii seuraavasti: 1. Kun pisteessä s i suorituksessa oleva transaktio T i tekee tietoalkion x luku- tai kirjoituspyynnön, pisteen s i toisinteiden valvonta lähettää pyynnön x:n luku- tai kirjoitusvallan toisinteiden sijoituspisteisiin. Jos kaikissa valtapisteissä samanaikaisuuden hallinta myöntää tarvittavan lukon x:n toisinteeseen, x:n operaatio suoritetaan ja vastaus palautetaan s i :n toisinteiden valvonnalle. Lukuoperaation tapauksessa vastaus sisältää toisinteen arvon ja versionumeron. 2. Kun pisteen s i toisinteiden valvonta on saanut vastauksen kaikilta valtapisteiltä, transaktio voi edetä. Jos kyseessä oli lukuoperaatio, s i :n toisinteiden valvonta palauttaa transaktiolle suurimmalla versionumerolla varustetun x:n toisinteen arvon. 3. Transaktio sitoutuu kaksivaiheisella sitoutumiskäytännöllä, jossa osallistujina ovat kaikki pisteet, joissa transaktiolla (tai oikeammin sen alitransaktiolla) on varattuna luku- tai kirjoituslukko. 138

19 Päätösvaltakäytännön suoritus voi edetä, vaikka häiriöitäkin sattuisi, niin kauan kuin toisinteiden valvonta pystyy kokoamaan operaatiota varten tarvittavan päätösvallan. Kun piste romahtaa ja aikanaan elpyy häiriöstä, joillakin sen toisinteilla saattaa olla hyvin vanha versionumero. Pisteen ei kuitenkaan ole tarpeen tehdä mitään erityisiä toimenpiteitä (tavanomaisen elvytysalgoritmin lisäksi), koska vanhentuneita toisinteita ei mikään transaktio kuitenkaan käytä ennen kuin jokin myöhempi transaktio on kirjoittanut niille uuden arvon, jolloin ne sitten ovatkin ajantasaisia. Edellä esitetyn kaltainen päätösvaltaan perustuva toisintaminen ei kuitenkaan ole saavuttanut järjestelmätoimittajien laajaa hyväksyntää, joten toteutukset ovat harvinaisia. 139

20 Tahdistamatta päivittävä toisintaminen Tahdistamatta päivittävässä toisintamisessa (asynchronous-update replication, asynchronous replication) eli laiskassa toisintamisessa (lazy replication) transaktion T päivittäessä tietoalkiota x toisinteiden valvonta päivittää T :n sisällä x:n joitakin muttei kaikkia toisinteita. Useimmiten vain yksi x:n toisinne päivitetään T :n sisällä. Muut toisinteet päivitetään erillisten toisinteiden ylläpitotransaktioiden toimesta vasta T :n sitouduttua. Toisinteet pidetään siis korkeintaan heikosti keskinäisesti johdonmukaisina. Toisinteiden myöhemmät päivitykset herätetään T :n sitoutumiskäytännön yhteydessä tai suoritetaan aika ajoin tiettyinä kiinnitetyinä ajankohtina. 140

21 Koska osa toisinteiden päivityksistä siis tapahtuu päivittävän transaktion ulkopuolella, ei tietokannan eheyttä voida taata. Esimerkki. 1. Transaktio T kirjoittaa x:n toisinteen pisteessä s 1 ja y:n toisinteen pisteessä s 2 ja sitoutuu kaksivaiheisesti (osalliset s 1 ja s 2 ). 2. Transaktio T lukee x:n toisinteen pisteestä s 3 ja y:n toisinteen pisteestä s 2 ja sitoutuu. T siis lukee x:n vanhan ja y:n tuoreen arvon, ts. mahdollisesti näkee tietokannan epäjohdonmukaisena. 3. Toisinteiden ylläpitotransaktio T päivittää x:n ja y:n kaikki toisinteet, mukaan lukien y:n toisinteen pisteessä s

22 Toisintamisen yhteydessä sieppauksella (capture) tarkoitetaan prosessia, jolla toisinteiden valvonta tunnistaa toisinnetun tietoalkion päivityksen tapahtuneen. Sieppaus voidaan toteuttaa kahdella tavalla: (1) Tietokannan lokia tarkkaillaan ja toisinnettuihin tietoalkioihin kohdistuneet päivitykset merkitään muistiin. (2) Tietokantaan asennetaan herättimiä (trigger) toisinnettuihin tietoalkioihin kohdistuvien päivitysten kirjaamiseksi. Siepatut päivitykset levitetään (propagate) myöhemmin toisinteisiin. 142

23 Eri sovelluksilla on erilaiset vaatimukset tahdistamattomalle toisintamiselle. Joissakin tapauksissa on tarpeen pitää toisinteet mahdollisimman tahdissa, vaikkei globaalia sarjallistuvuutta taatakaan. Tavoitteena on minimoida aikaväli, jona tietoalkion yhtä toisinnetta päivitetään ja päivitys saadaan levitetyksi muihin toisinteisiin. Hajautettu sovellus, joka ylläpitää tili- tai asiakaspalvelutietoa saattaa kuulua tähän sovellusryhmään; puhutaan ryhmä-, vertais- tai moniisäntätoisintamisesta. Toisissa sovelluksissa tiukka tahdistaminen ei ole ratkaisevaa. Yrityksellä saattaa olla laaja myyntiorganisaatio kentällä, josta aika ajoin otetaan yhteys päätoimipisteeseen ja kopioidaan sen tietokannasta kohtuullisen ajantasainen näkymä. Tässä tapauksessa usein käytettävää toisintamista kutsutaan pääkopiotoisintamiseksi. Kolmas toisintamisen muoto, proseduraalinen toisintaminen, soveltuu tapauksiin, joissa hyvin suuri määrä tietoa päivitetään. 143

24 Pääkopiotoisintaminen Pääkopiotoisintamisessa (primary-copy replication) eli isännältä orjalle toisintamisessa (master-slave replication) tietoalkion toisinteista yksi nimetään tietoalkion pääkopioksi (primary copy) ja sen sijaintipiste pää- eli isäntäpisteeksi (primary site, master site); muita toisinteita kutsutaan oheiskopioiksi eli toissijaisiksi kopioiksi (secondary copy) ja niiden sijaintipisteitä oheis- eli orjapisteiksi (secondary site, slave site). Oheiskopioita luodaan tilaamalla (subscribe) pääkopioon tehtävät päivitykset. Transaktio voi lukea minkä tahansa toisinteen mutta päivittää vain pääkopiota. Eräässä pääkopiotoisintamisen toteutuksessa transaktion T on hankittava kirjoituslukko tietoalkion x pääkopioon halutessaan päivittää x:ää, ja T :n on myös päivitettävä pääkopio heti. Vain x:n pääkopio riittää päivittää. Vaikka x:stä olisi oheiskopio T :n suorituspisteessä, sitä ei päivitetä välittömästi. Jos siis kaksi transaktiota haluaa päivittää x:ää, toisen täytyy sitoutua ja vapauttaa x:n pääkopion kirjoituslukko ennen kuin lukko voidaan myöntää toiselle. Transaktioiden kirjoitusoperaatiot näin ollen sarjallistuvat, mutta lukuoperaatiot eivät. 144

25 Toisessa toteutuksessa sovellus (pääkopion kirjoituslukon saatuaan) yksinkertaisesti lähettää pääkopion sijaintipisteeseen pääkopion päivitykset myöhemmin toteutettaviksi. T :n päivitykset x:n oheiskopioihin levitetään tahdistamatta ja epäsarjallistuvasti T :n sitouduttua. Koska T ja päivitysten levitys oheiskopioihin eivät muodosta yhtä eristettyä kokonaisuutta, toisinteet päivitetään epäsarjallistuvasti. Koska lukuoperaatio voidaan tyydyttää mielivaltaisesta toisinteesta, samanaikaiset transaktiot saattavat nähdä epäjohdonmukaisen näkymän tietokannasta ja niin muodoin toimia väärin. 145

26 Pääkopiotoisintamisessa kaikki päivitykset kanavoidaan tietoalkioiden pääkopioiden kautta. Kun T päivittää x:ää, x:n pääkopion sijaintipiste suorittaa toisinteen ylläpitotransaktion tai -transaktioita levittääkseen T :n päivitykset T :n sitouduttua. Yksi ylläpitotransaktio voi päivittää kaikki toisinteet tai kunkin toisinteen päivittämistä varten voidaan käynnistää oma transaktio. Jos toisinteiden ylläpitotransaktiot suoritetaan kussakin pisteessä samassa järjestyksessä kuin pääkopiota päivitetään, taataan toisinteille heikko keskinäinen johdonmukaisuus. 146

27 Pääkopiotoisintamisen eräässä muunnelmassa pisteen s i transaktio T, joka haluaa päivittää tietoalkion x, josta on paikallinen oheiskopio, kirjoituslukitsee sekä paikallisen toisinteen että pääkopion ja päivittää molemmat osana transaktiota. Muut oheiskopiot päivitetään kuten edellä T :n sitoutumisen jälkeen. Menettelyn etuna on, että pisteessä s i toimiva sovellus voi suorittaa uusia, x:n paikallisen toisinteen lukevia transaktioita tarvitsematta odottaa T :n päivityksen leviämistä pääkopiosta takaisin s i :hin. 147

28 Päivitykset voidaan levittää vaihtoehtoisesti myös niin, että kunkin pisteen toisinteiden valvontajärjestelmä aika ajoin yleislähettää (broadcast) pääkopioittensa nykyarvot muihin pisteisiin. Yleislähetyksen pitäisi olla transaktiojohdonmukainen, niin että siihen sisältyy kaikki viime yleislähetyksen jälkeen sitoutuneiden transaktioiden päivittämät pääkopiot. Joissakin toteutuksissa kukin oheispiste voi esitellä näkymän pääkopioon, jolloin ainoastaan tämä näkymä lähetetään. Tämä on erityisen hyödyllistä, kun oheispiste kommunikoi pääpisteen kanssa hitaan yhteyden välityksellä, jolloin on tärkeää, että kuhunkin pisteeseen toisinnetaan vain tarpeellinen tieto. 148

29 Edellä esitetyt päivitysten levitysmenetelmät ovat kaikki työntöstrategioita (push strategy) siinä mielessä, että pääpiste automaattisesti työntää tietoalkion päivityksen oheispisteisiin. Työntöstrategialle vastakkaisessa vetostrategiassa (pull strategy) päivityksiä ei levitetä automaattisesti pääpisteestä oheispisteisiin, vaan kunkin oheispisteen pitää vetää tieto pääpisteestä eli eksplisiittisesti pyytää näkymänsä virkistämistä (view refresh). Vetostrategia on erityisen sopiva tapauksissa, joissa oheispiste on vain silloin tällöin kytkeytyneenä verkkoon, kuten esim. liikkuva (käsivarainen) työasema. 149

30 Myyntimies päivittää koneessaan säilytettävät oheiskopiot kytkeydyttyään verkkoon. Koska kaistanleveys on pieni, hän määrittelee näkymän, joka sisältää ainoastaan hänen myyntialuettaan koskevaa tietoa. Tässä sovelluksessa toisinteet saattavat olla jonkin verran (minuutteja tai tunteja) vanhoja. Lukuoperaatiot ovat vallitsevia. Kirjoitusoperaatioita esiintyy vain silloin, kun uusi sopimus allekirjoitetaan, ja uusi tieto lähetetään ensin pääpisteeseen, josta se vedetään myöhemmin oheispisteisiin. Oheispisteen näkymään vaikuttava päivitys, joka tehdään oheispisteen ollessa irti verkosta, pitää säilyttää, kunnes oheispiste jälleen kytkeytyy verkkoon. 150

31 Ryhmätoisintaminen Pääkopiotoisintamisessa vain tietoalkion pääkopiota voitiin päivittää. Ryhmätoisintamisessa (group replication) eli moni-isäntätoisintamisessa (multimaster replication) eli missä tahansa päivittävässä toisintamisessa (update-anywhere replication) päivitys voidaan kohdistaa mihin tahansa toisinteeseen, oletettavasti lähimpään. Jos tietokanta on täysin toisinnettu, sekä päivitys- että lukutransaktiot voidaan saada päätökseen operoimalla ainoastaan paikallisen pisteen tietoihin. Transaktion tekemät päivitykset levitetään myöhemmin muihin toisinteisiin. Levittäminen on tahdistamatonta, joten globaalia sarjallistuvuutta ei voida taata. 151

32 Ellei päivityksiä levitetä oikeassa järjestyksessä, menettely ei takaa heikkoakaan keskinäistä johdonmukaisuutta. Esim. Täysin toisinnetussa tietokannassa on pisteet s 1, s 2, s 3 ja s 4. Piste s 1 : Piste s 2 : Piste s 3 : Piste s 4 : päivitys T 1 : W[x]; päivitys T 4 : W[x]; T 1 :W[x]:n lähetys T 4 :W[x]:n lähetys pisteisiin s 2,s 3,s 4 ; pisteisiin s 1,s 2,s 3 ; T 4 : W[x] s 4 :stä; T 1 : W[x] s 1 :stä; T 4 : W[x] s 4 :stä; T 4 : W[x] s 4 :stä; T 1 : W[x] s 1 :stä; T 1 : W[x] s 1 :stä; Kuten tässä, päivitysten saapumisjärjestys voi vaihdella eri pisteissä. Toisinteen lopullinen arvo on viimeisen päivitysviestin sisältämä arvo, joten toisinteet eivät säily keskinäisesti johdonmukaisina. Toisintamisen terminologiassa sanotaan konfliktin sattuneen ja että toisinteiden valvontajärjestelmän pitää soveltaa jotain konfliktinratkaisustrategiaa (conflict-resolution strategy) toisinteiden konvergenssin takaamiseksi ja keskinäisen johdonmukaisuuden säilyttämiseksi. 152

33 Toisinteiden heikko keskinäinen johdonmukaisuus voidaan taata algoritmilla, joka liittää yksilöivän aikaleiman jokaiseen päivitykseen ja jokaiseen toisinteeseen. Päivityksen aikaleimana on ajankohta, jona päivitystä pyydettiin. Toisinteen aikaleimana on siihen viimeksi sovelletun päivityksen aikaleima. Heikko keskinäinen johdonmukaisuus voidaan taata siten, että toisinteen sijoituspiste yksinkertaisesti hylkää saapuvan päivityksen, jos sen aikaleima on toisinteen nykyistä aikaleimaa pienempi. Kunkin toisinteen arvo konvergoi lopulta suurimmalla (eli tuoreimmalla) aikaleimalla varustetun päivityksen arvoon. Päivitysten menetykset ovat kuitenkin mahdollisia: kaksi transaktiota kumpikin lukevat ja kirjoittavat saman tietoalkion eri toisinteet, mutta vain yhden tuottama tulos jää voimaan. Algoritmi ei siis ole sopiva kaikkiin sovelluksiin. 153

34 Joissakin sovelluksissa sopiva konfliktinratkaisustrategia on ilmeinen. Jos esimerkiksi hakemisto on toisinnettu ja samanaikaiset transaktiot lisäävät eri hakusanoja hakemistoon, hakemiston kaikkien toisinteiden lopullisen arvon pitää sisältää molemmat hakusanat. Konfliktinratkaisustrategia tiettyyn sovellukseen onkin usein mahdollista suunnitella. Yleisessä tapauksessa toisinteiden valvontajärjestelmä voi ilmoittaa käyttäjälle havaitsemastaan konfliktista ja antaa käyttäjän ratkaista se. Koska ei ole olemassa yleistä oikeellista konfliktinratkaisustrategiaa, jotkin kaupalliset järjestelmät tarjoavat useampia vaihtoehtoisia erikoistrategioita, kuten vanhin päivitys voittaa (oldest update wins), nuorin päivitys voittaa (youngest update wins), korkeimman prioriteetin pisteen päivitys voittaa (update from the highest priority site wins) ja käyttäjä antaa konfliktinratkaisumenetelmän (user provides a procedure for conflict resolution). 154

35 Oraclen toisintamiskäytännöt Oraclessa toisinnetun tietokannan päivitykset kohdistuvat isäntäpisteeseen (master site), josta päivitykset leviävät orjapisteisiin (slave site). Orjapisteet on yhdistetty isäntäpisteisiin tietokantalinkein. Oraclen standardiversiossa isäntäpisteitä voi olla vain yksi, mutta yritysversiossa isäntäpisteitä voi olla useita ja päivitykset voivat kohdistua mihin tahansa niistä. Toisinnettavat tietoalkiot voivat olla relaatiotietokannan tauluja, näkymiä, herättimiä, tietokantaproseduuripakkauksia, hakemistoja tai synonyymejä. Yksinkertaisimmillaan isäntäpisteen tietoa toisinnetaan orjapisteeseen luomalla orjapisteeseen transaktiojohdonmukainen tilannevedos (snapshot) jostakin isäntäpisteen taulusta tai näkymästä. Tilannevedos on transaktiojohdonmukainen (transaction-consistent), so. siinä on mukana sitoutuneiden transaktioiden päivitykset johonkin transaktioon asti sarjallistuvuusjärjestyksessä, muttei minkään myöhemmän transaktion päivityksiä. 155

36 Tilannevedos voi olla luku- tai päivityskelpoinen. Lukukelpoinen tilannevedos (read-only snapshot) on orjapisteessä sijaitseva, isäntäpisteen tietokannasta laskettu materiaalistettu näkymä, joka aika ajoin virkistetään (refresh) eli saatetaan ajan tasalle johdonmukaiseksi isäntäpisteen päivitysten kanssa. Päivityskelpoinen tilannevedos (updatable snapshot) luodaan samaan tapaan kuin lukukelpoinen tilannevedos, mutta tilannevedoksen sijaintipiste voi myös päivittää vedosta ja lähettää päivityksiään aika ajoin takaisin isäntäpisteeseen. 156

37 Esim. verkkokaupan Helsingin varastopisteen asiakaskunnan asiakastiedot sisältävä palanen päätoimipisteen taulusta customer(customer-number, name, address, location) lukukelpoisena tilannevedoksena: create snapshot customer refresh fast start with sysdate next sysdate + 7 with primary key as select from customer@hq.grocer.com where location = Helsinki ; Tilannevedoksen virkistystapana on tässä nopea (fast), ja vedos tulee virkistää viikon välein alkaen vedoksen luontipäivästä. Vedoksen luontipisteeseen järjestelmä luo taulun snap$ customer, joka on isäntäpisteen taulun customer kaavion mukainen, sekä tauluun snap$ customer määritellyn näkymän customer. 157

38 Tilannevedoksen virkistystapoja on kolme: täydellinen, nopea ja pakotettu virkistys. (1) Täydellisessä virkistyksessä (complete refresh) tilannevedos virkistetään laskemalla koko vedoksen määrittelevä kysely uudestaan isäntäpisteessä ja sijoittamalla kyselyn tulos vedoksen sijaintipisteeseen, jossa se korvaa vedoksen entisen sisällön. (2) Nopeassa virkistyksessä (fast refresh) vedos virkistetään vähittäin (incrementally), so. identifioimalla isäntäpisteen tauluun edellisen virkistyksen jälkeen tulleet muutokset ja soveltamalla ne vedokseen. (3) Pakotetussa virkistyksessä (force refresh) yritetään ensin nopeaa virkistystä; jos tämä ei ole mahdollista, suoritetaan täydellinen virkistys. 158

39 Nopea virkistys on mahdollista vain, jos isäntäpisteen tauluun on määritelty erityinen tilannevedosloki (snapshot log): create snapshot log on customer with primary key tablespace... Tilannevedoslokiin järjestelmä kirjaa (herättimen avulla) automaattisesti taulun jokaisesta päivityksestä (insert, update, delete) rivin, joka sisältää mm. päivityksen tyypin, päivitetyn attribuutin vanhan ja uuden arvon sekä päivityksen ajankohdan. 159

40 Oraclen moni-isäntätoisintamisessa (multimaster replication) taulu toisinnetaan useampaan isäntäpisteeseen, joissa kaikissa sitä voidaan päivittää. Toisinnuksessa isäntäpisteet esiintyvät toistensa vertaisina (peer), ja yhden isäntäpisteen toisinteeseen kohdistetut päivitykset levitetään toisiin. Päivitysten levitys voi olla tahdistettua tai tahdistamatonta. Tahdistetussa toisintamisessa päivitys levitetään kaikkiin muihin pisteisiin välittömästi saman transaktion sisällä (kaksivaiheista sitoutumista käyttäen). Tahdistamattomassa levityksessä päivityksiä lähetetään erissä päivittävän transaktion ulkopuolella sovellettaviksi muissa pisteissä. Konfliktien ratkaisuun Oracle tarjoaa joukon valmiita strategioita sekä antaa mahdollisuuden käyttäjälle kirjoittaa liiketoimintasääntöihinsä perustuvia strategioita. 160

41 Julkaisuun ja tilauksiin perustuva toisintaminen Microsoftin SQL-palvelimesta on peräisin julkaisuun ja tilauksiin perustuva toisintamismalli (publish-subscribe replication model). Julkaisija (publisher) on palvelin, joka asettaa tietoa muiden saataville, so. toisinnettavaksi muihin palvelimiin. Julkaisijalla voi olla yksi tai useampia julkaisuja (publication), joista kukin esittää loogisesti yhteenkuuluvan joukon tietoa ja tietokantaolioita. Julkaisun yksittäisiä oliota, kuten tauluja, tallennettuja proseduureja, käyttäjän määrittelemiä funktioita, näkymiä, materiaalistettuja näkymiä ynnä muita, kutsutaan artikkeleiksi. Lisättäessä artikkeli julkaisuun voidaan määritellä artikkelin toisinnustapa, ketkä käyttäjät voivat tilata artikkelin ja kuinka artikkelin sisältö suodatetaan taulusta vaakasuorasti (valinnalla) tai pystysuorasti (projisioimalla). 161

42 Tilaaja (subscriber) on palvelin, joka vastaanottaa toisinnettua tietoa julkaisijalta. Tilaajat voivat tilata vain niitä julkaisuja, joita tarvitsevat. Valituista toisinnusvaihtoehdoista riippuen tilaaja voi tyytyä joko lukukelpoiseen (read-only) toisinteeseen tai varata mahdollisuuden myös päivittää tilattuja artikkeleita, jolloin päivitykset levitetään automaattisesti artikkelin kaikkiin muihin toisinteisiin. Tilaaja voi myös julkaista uudelleen tilaamaansa tietoa. Jakelija (distributor) on palvelin, jota käytetään historia- ja virhetilatiedon tallennuspisteenä sekä etappivälitysjonona (store-andforward queue) mitoittamaan tilaajille toimitettavaa toisinnettua hyötykuormaa. 162

43 Tilannevedostoisintamisessa (snapshot replication) tilatun julkaisun artikkelit kopioidaan ja jaellaan vedoksen luontihetken sisältöisinä. Tilaajan tilannevedos virkistetään täydellisesti aika ajoin; vähittäistä virkistystä ei käytetä, joten myöskään mitään julkaisun muutosten jäljitystä (tilannevedoslokia tms.) ei tarvita. Päivityskelpoista tilannevedosta tilaaja voi päivittää ja levittää päivitykset takaisin julkaisijalle. Tilannevedostoisintaminen sopii parhaiten pieniin julkaisuihin ja tapauksiin, joissa päivitykset koskettavat niin suurta osaa tiedosta, että täydellinen virkistys on tehokasta. 163

44 Transaktionaalisessa toisintamisessa (transactional replication) julkaisija levittää julkaisun ensimmäisen tilannevedoksen tilaajille ja sen jälkeen toimittaa vähittäiset muutokset tilaajille erillisinä transaktioina tai komentoina. Julkaisun muutokset jäljitetään SQL-palvelimessa ytimessä, joka merkkaa toisinnettuja artikkeleita päivittäneet transaktiot julkaisijan tietokannan lokissa. Lokinlukija-agentiksi (log reader agent) kutsuttu prosessi lukee näin merkattujen transaktioiden kirjauksia lokista, mahdollisesti suodattaa osan niistä ja tallentaa suodattimen läpäisseet kirjaukset jakelutietokantaan, joka toimii etappivälitysperiaatteella toimivan transaktionaalisen toisintamisen pysyvänä jonona. Jakeluagentiksi (distribution agent) kutsuttu prosessi toimittaa muutokset edelleen kullekin tilaajalle. Kuten tilannevedostoisintamisessa, transaktionaalisessa toisintamisessa tilaaja voi tehdä päivityksiä, jotka joko peilataan julkaisijan tietokantaan tahdistetusti kaksivaiheisella sitoutumisella tai viedään jonoon levitettäväksi myöhemmin tahdistamatta julkaisijan tietokantaan. Transaktionaalinen toisintaminen sopii tilanteisiin, joissa on tarpeen säilyttää useiden päivitysten välitiloja. 164

45 Lomitustoisintamisessa (merge replication) kukin toisinne toimii täysin autonomisesti siitä riippumatta, onko toisinteen sijaintipiste verkkoon kykeytyneenä vai ei. Järjestelmä jäljittää julkaisu- ja tilauspisteiden julkaistuihin artikkeleihin tulleita päivityksiä, ja toisinnusagentti (replication agent) lomittaa päivitykset yhteen toisinteita tahdistettaessa ja takaa tiedon konvergenssin havaiten ja ratkaisten konfliktit automaattisesti. Toisinnusagentti sisältää lukuisia vaihtoehtoisia konfliktinratkaisukäytäntöjä, ja räätälöityjä ratkaisukäytäntöjä voidaan kirjoittaa mm. tallennettuja proseduureja käyttäen. Lomitustoisintamisessa ei levitetä kaikkia päivitysten välitiloja, vaan tiedon tila tahdistushetkellä. Lomitustoisintaminen sopii tilanteisiin, joissa toisinteiden pitää voida tehdä autonomisia päivityksiä ollessaan kytkettynä irti verkosta. 165

46 Etävarmistusjärjestelmät Etävarmistusjärjestelmä (remote backup system) on toisinnettu tietokantajärjestelmä, jonka tarkoituksena on suojata tavanomainen keskitetty tietokantajärjestelmä luonnonkatastrofeilta, kuten tulipalolta, tulvilta ja maanjäristyksiltä. Etävarmistusjärjestelmässä kaikki transaktionkäsittely tapahtuu yhdessä pisteessä, järjestelmän pääpisteessä (primary site), josta päivitykset sitten toisinnetaan etävarmistuspisteeseen (remote backup site). Toisinnus tapahtuu lähettämällä pääpisteen päivitysten lokikirjaukset etävarmistuspisteeseen ja toteuttamalla niiden perusteella päivitykset etävarmistuspisteen tietokantaan. Tällainen lokikirjausten välitykseen ja toistoon perustuva toisintaminen on huomattavasti tehokkaampaa kuin tavanomainen toisintaminen, sillä (1) kaksivaiheista sitoutumista ei lainkaan tarvita ja (2) päivitettävän tietoalkion hakupolun pituus on mahdollisimman lyhyt: lokikirjauksesta saadaan suoraan tietoalkion sisältävän sivun tunniste. 166

47 Etävarmistuspiste pidetään pääpisteestä fyysisesti erillään, eri paikkakunnalla, jolloin pääpisteen sijaintipaikassa tapahtuva katastrofi ei vahingoita etävarmistuspistettä. Kun pääpiste joutuu häiriötilaan, etävarmistuspiste ottaa transaktionkäsittelyn hoitaakseen. Sitä ennen etävarmistuspiste suorittaa elvytyksen käyttäen omaa (epäajantasaista) toisinnettaan tietokannasta sekä pääpisteeltä saatuja lokikirjauksia. Etävarmistuspiste suorittaa likipitäen samat elvytystoimenpiteet kuin pääpiste suorittaisi, mikäli elpyisi häiriöstä. Kun elvytys on valmis, etävarmistuspiste ryhtyy ottamaan vastaan uusia transaktioita. Jotta katastrofitilanteessa transaktionkäsittely saataisiin mahdollisimman pian uudelleen käyntiin, on etävarmistuspisteen jatkuvasti sovellettava pääpisteeltä saamiaan lokikirjauksia omaan toisinteeseensa tietokannasta ja otettava myös tarkistuspisteitä riittävän usein. 167

48 Jotta sitoutuneen transaktion päivitykset jäisivät pysyviksi pääpisteen katastrofista huolimatta, transaktiota ei saisi julistaa sitoutuneeksi ennen kuin sen lokikirjaukset ovat ehtineet etävarmistuspisteeseen. Tämä taas hidastaa transaktion sitoutumista. Eräät järjestelmät sallivatkin alempiasteisen pysyvyyden. Pysyvyysasteet (degrees of durability) luokitellaan seuraavasti: (1) Epävarma (one-safe): transaktio sitoutuu heti kun sen sitoutumistietue on viety pääpisteen lokilevylle. (2) Varma (two-safe): transaktio sitoutuu vasta kun sen sen sitoutumistietue on viety pääpisteen lokilevylle ja lisäksi, mikäli etävarmistuspiste on aktiivisena, myös sen lokilevylle. (3) Hyvin varma (two-very-safe): transaktio sitoutuu vasta kun sen sitoutumiskirjaus on viety sekä pääpisteen että etävarmistuspisteen lokilevylle. 168

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

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

Lisätiedot

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

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

Muita transaktioiden hallintamenetelmiä

Muita transaktioiden hallintamenetelmiä Muita transaktioiden hallintamenetelmiä H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on

Lisätiedot

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

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

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Lisätiedot

Tietokantarakenteet ja -algoritmit 6. harjoitus

Tietokantarakenteet ja -algoritmit 6. harjoitus Tietokantarakenteet ja -algoritmit 6. harjoitus Malliratkaisut 1.. a) T1 = B I[b, r 2, 0, 0] IX-lukitaan järjestelmä s, tietokanta b ja relaatio (b, r 2 ) (tässä järjestyksessä), X-lukitaan (b, r 2, 0)

Lisätiedot

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

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

Lisätiedot

Tietokantarakenteet ja -algoritmit 3. harjoitus

Tietokantarakenteet ja -algoritmit 3. harjoitus Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.

Lisätiedot

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat Pasi Oja-Nisula Helsinki 19.9.2006 Tietokannat nyt -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto 1 2 Tilannevedoseristyvyyden

Lisätiedot

Hajautettu versionhallinta Gitillä

Hajautettu versionhallinta Gitillä Ohjelmistotekniikka Henrik Hedberg Tietojenkäsittelytieteiden laitos Versionhallintajärjestelmä Hallitsee tiedostot ja niiden eri versiot ts. muutokset Mahdollisuus rinnakkaisiin historioihin ts. haaroihin

Lisätiedot

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

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

Lisätiedot

Hajautettujen transaktioiden hallinta

Hajautettujen transaktioiden hallinta Hajautettujen transaktioiden hallinta M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Pearson Addison Wesley, 2006; sivut 1005 1028, luvun 24

Lisätiedot

Tiedon hajauttaminen ja hajautettu kyselynkäsittely

Tiedon hajauttaminen ja hajautettu kyselynkäsittely Tiedon hajauttaminen ja hajautettu kyselynkäsittely M. Kifer, A. Bernstein & P. M. Lewis: Database Systems. An Application-Oriented Approach. Complete Version. Second Edition. Pearson Addison Wesley, 2006;

Lisätiedot

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas Visma Liikkuvan työn ratkaisut Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan

Lisätiedot

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo.

R 2 [0] ei ole likainen luku, sillä avaimelle 0 on jo palautettu sen alkuperäinen arvo. Tietokantarakenteet ja -algoritmit 5. harjoitus Malliratkaisut 1. B 1 : T 1 alkaa. I 1 [1]: T 1 :lle pitkäkestoinen X-lukko avaimeen 1 ja lyhytkestoinen X-lukko avaimen 1 seuraajaan. B 2 : T 2 alkaa. I

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

Tietohakemisto ja Transaktionkäsittely

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

Lisätiedot

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

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

Visma Avendon asennusohje

Visma Avendon asennusohje Visma Avendon asennusohje 1 Versio 5.21 On tärkeää, että käytössäsi on aina uusin toimittamamme versio ohjelmistosta. Asentamalla viimeisimmän version saat käyttöösi ohjelman tuoreimmat ominaisuudet ja

Lisätiedot

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

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

Lisätiedot

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Lisätään avainarvo 6, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

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

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset

Lisätiedot

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

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

Lisätiedot

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet

Lisätiedot

Transaktioiden eristyvyys

Transaktioiden eristyvyys Transaktioiden eristyvyys H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O Neil & P. O Neil: A critique of ANSI SQL isolation levels. Proc. of the 1995 ACM SIG- MOD Internat. Conf. on Management of

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

Visma Liikkuvan työn ratkaisut

Visma Liikkuvan työn ratkaisut Visma Liikkuvan työn ratkaisut Päivitysohje Pääkäyttäjän opas Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta.

Lisätiedot

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

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

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Lisätiedot

E-kirjan kirjoittaminen

E-kirjan kirjoittaminen 1 E-kirjan kirjoittaminen Ohjeet e-kirjan kirjoittamiseen Tämän ohjeistuksen tavoitteena on auttaa sinua luomaan yksinkertainen e-kirja (pdftiedosto) asiakkaallesi. Kirja näyttää hänelle kuinka hyvin ymmärrät

Lisätiedot

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus

D B. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus. Transaktionhallinta - samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin yhdenkään

Lisätiedot

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

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

Lisätiedot

Tietokanta (database)

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

Lisätiedot

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

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

Sähköpostitilin käyttöönotto

Sähköpostitilin käyttöönotto Sähköpostitilin käyttöönotto Versio 1.0 Jarno Parkkinen jarno@atflow.fi Sivu 1 / 16 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.2 Tietojen

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

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen...

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen... Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen... 3 Käsiteltävät sanomat... 4 Yhdisteltävät sanomat... 5 Sanoman historia

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Tietokantakurssit / TKTL

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

Lisätiedot

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

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 15.4.2019 CS-A1150 Tietokannat 15.4.2019 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen

Lisätiedot

Keskusmuistitietokantojen samanaikaisuuden hallinta

Keskusmuistitietokantojen samanaikaisuuden hallinta Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen Helsinki 09.03.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI

Lisätiedot

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

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

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta ja Subversion 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta yleisesti Ongelma: lähdekoodin ja muun materiaalin säilyttäminen siten, että: se on kaikkien saatavilla tuorein versio

Lisätiedot

Samanaikaisuuden hallinta Snapshot Isolationin avulla

Samanaikaisuuden hallinta Snapshot Isolationin avulla hyväksymispäivä arvosana arvostelija Samanaikaisuuden hallinta Snapshot Isolationin avulla Olli Korhonen Helsinki 4.3.2009 Seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum

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

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE 1) Navita Budjettijärjestelmä asennetaan palvelimelle asennetusta Navita\NavitaSetup kansiosta Setup komennolla tämä mahdollistaa Navita-työasemien automaattisen

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

Action Request System

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

Lisätiedot

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

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

Sivupalvelin- ja yhteislevyjärjestelmät

Sivupalvelin- ja yhteislevyjärjestelmät Sivupalvelin- ja yhteislevyjärjestelmät C. Mohan & I. Narang 1994: ARIES/CSA: a method for database recovery in client-server architectures. Proc. of the 1994 ACM SIG- MOD Internat. Conf. on Management

Lisätiedot

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

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

Lisätiedot

Työasemien hallinta Microsoft System Center Configuration Manager 2007. Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS

Työasemien hallinta Microsoft System Center Configuration Manager 2007. Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS Työasemien hallinta Microsoft System Center Configuration Jarno Mäki Head of Training Operations M.Eng, MCT, MCSE:Security, MCTS IT Education Center Agenda Yleistä työasemien hallinnasta Työasemien hallinta

Lisätiedot

Automaster tai MBS. 2. ODBC - ajurin asennus (jos ei ole jo asennettu)

Automaster tai MBS. 2. ODBC - ajurin asennus (jos ei ole jo asennettu) 1 GHTransaction-ohjelman asennusohje Copyright Grey-Hen Oy. All rights reserved. Sisältö: 1. Johdanto 2. ODBC - ajurin asennus 3. GH Transaction ohjelman asennus Automaster tai MBS 1. Johdanto GHTransaction

Lisätiedot

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

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

Lisätiedot

25.4.05. Helsingin yliopisto/tktl Tietokannan hallinta, kevät 2005. Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus

25.4.05. Helsingin yliopisto/tktl Tietokannan hallinta, kevät 2005. Harri Laine 1 D B. Transaktionhallinta - samanaikaisuus Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (= käyttäviä prosesseja). On toivottavaa, että yhdenkään käyttäjän toiminta ei hidastuisi kohtuuttomasti, vaikka muita käyttäjiä olisi runsaastikin

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

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon KA1-kurssi on ehkä mahdollista läpäistä, vaikkei osaisikaan piirtää suoraa yhtälön perusteella. Mutta muut kansiksen kurssit, no

Lisätiedot

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Lisätään avainarvo 1, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta). Matematiikan laitos Johdatus Diskreettiin Matematiikaan Harjoitus 1 03.11.2010 Ratkaisuehdotuksia Aleksandr Nuija 1. Tarkastellaan joukkoja A = {1,3,4}, B = {2,3,7,9} ja C = {2, 5, 7}. Määritä joukot (a)

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

BaseMidlet. KÄYTTÖOHJE v. 1.00

BaseMidlet. KÄYTTÖOHJE v. 1.00 KÄYTTÖOHJE v. 1.00 KUVAUS BaseMidlet on matkapuhelimessa toimiva sovellus jolla voi etäkäyttää Tiimi 7000 sarjan säätimiä. Copyright Team-Control Oy, oikeudet muutoksiin pidätetään. TiiMi on Team-Control

Lisätiedot

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Esimerkkinä Excel-taulukkona ladattavat Helsingin pysäköintilippuautomaatit Viimeksi muokattu 27. huhtikuuta

Lisätiedot

edocker PUBLISH! -paketinhallinnan käyttöohje 9/2015

edocker PUBLISH! -paketinhallinnan käyttöohje 9/2015 edocker PUBLISH! -paketinhallinnan käyttöohje 9/2015 Uusien EDTPLIB- ja PDF -pakettien vienti ohjatulla toiminnolla...3 Tiedoston tarkistus...3 Kohdejulkaisun valinta... 4 Numeron tiedot... 5 Yhteenveto...6

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

Uutta Remote Support Platform 3.0 -versiossa

Uutta Remote Support Platform 3.0 -versiossa Uutta Remote Support Platform for SAP Business One Asiakirjaversio: 1.0 2012-10-08 Kaikki maat Typografiset merkintätavat Kirjasintyyli Esimerkki Näytöstä lainatut sanat tai merkit. Näitä ovat kenttien

Lisätiedot

Nimettömien tietojen lähettäminen Lenovolle

Nimettömien tietojen lähettäminen Lenovolle Nimettömien tietojen lähettäminen Lenovolle Sisältö Nimettömien tietojen lähettäminen Lenovolle... 1 Harmony... 1 Lenovo Companion 3.0... 2 Lenovo Customer Engagement Service... 3 Lenovo Experience Improvement

Lisätiedot

NXT Infrapuna-sensori

NXT Infrapuna-sensori NXT Infrapuna-sensori Joissakin tilanteissa on hyödyllistä, jos robotti tunnistaa ympäristöstä tulevaa infrapunavaloa. Tämä tieto on välttämätön esim. RCJ:n robottijalkapallossa. Tässä esitellään vain

Lisätiedot

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

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

Lisätiedot

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna.

ARKIPÄIVÄN SUOMEA-ohjelma vaatii toimiakseen multimedia-pc:n, jossa on seuraavat tekniset ominaisuudet ja ohjelmat asennettuna. ASENNUS Ennen ARKIPÄIVÄN SUOMEA-ohjelman käytön aloittamista se on asennettava tietokoneeseen. Asentaminen suoritetaan alla esitettävien ohjeiden mukaisesti. Huom: ARKIPÄIVÄN SUOMEA-ohjelmasta on saatavana

Lisätiedot

Lisenssin hakeminen PTC:n verkkosivun kautta

Lisenssin hakeminen PTC:n verkkosivun kautta 10.4.13 (rev. 2) Lisenssin hakeminen PTC:n verkkosivun kautta Kun haetaan ensimmäisen kerran Mathcad-lisenssi, sen voi tehdä PTC: kotisivulta. Kun konetta vaihdetaan, voi Mathcadin lisenssin voi käydä

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 12.4.2016 CSE-A1200 Tietokannat 12.4.2016 1 / 42 Oppimistavoitteet: tämän luennon jälkeen Tiedät, mitä tarkoitetaan hakemistolla ja mitä hyötyä hakemistosta on. Tiedät, miten voidaan

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

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

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko.

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko. SUBSTANTIIVIT 1/6 juttu joukkue vaali kaupunki syy alku kokous asukas tapaus kysymys lapsi kauppa pankki miljoona keskiviikko käsi loppu pelaaja voitto pääministeri päivä tutkimus äiti kirja SUBSTANTIIVIT

Lisätiedot

1. päivä ip Windows 2003 Server ja vista (toteutus)

1. päivä ip Windows 2003 Server ja vista (toteutus) 1. päivä ip Windows 2003 Server ja vista (toteutus) Olette pomosi kanssa tarkastaneet asiakkaan tekemän ja sinun korjaaman suunnitelman ja tehneet oman versionsa siitä. Noudata siis tätä tekemäänne uutta

Lisätiedot

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA JOUNI HUOTARI MARTTI LAIHO (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) JOHDANTO Tietokannanhoitaja

Lisätiedot

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

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

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja.

/ ta. Osaa kvalitatiivisella tasolla arvioida sovelluksen hajauttamisen hyötyjä ja haittoja. Hajautetut järjestelmät 7.3.2006 / ta Pääteema Esitiedot Lähestyy oppimistavoitteita Hajautuksen tavoitteet ja ongelmat Hajautetun järjestelmän rakenne Käyttöjärjestelmät ja tietoliikenne: - hallitsee

Lisätiedot

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP]

HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP] HOWTO: Tulospalveluohjelman asetusten määrittely verkkokäytössä 1/5 HOW-TO: Kuinka saan yhdistettyä kaksi tulospalvelukonetta keskenään verkkoon? [Windows XP] Kaksi tietokonetta saa kytkettyä keskenään

Lisätiedot

5.2 Samanaikaisuuden hallinta

5.2 Samanaikaisuuden hallinta Tietokannan hallinta 29 5. Tapahtumien hallinta Tietokannan hallinta 30 5. Tapahtumien hallinta 5.2 Samanaikaisuuden hallinta Tietokannalla on tyypillisesti useita samanaikaisia käyttäjiä (ohjelmia/ihmisiä).

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

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

Versionhallinta MIKSI?

Versionhallinta MIKSI? Versionhallinta MIKSI? Versionhallinta Miten jakaa tiedostot ihmisten kesken? Miten pitää tiedostot ajan tasalla? Miten hoitaa päällekkäiset muutokset samaan tiedostoon? Miten muistaa, mitä on tehty? Miten

Lisätiedot