HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Tietohakemisto ja Transaktionkäsittely

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

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

Tietokannanhallintajärjestelmä (DBMS)

5. Tapahtumien hallinta. Esim. pankkitilisovelluksen proseduuri tilisiirto(t1, t2, x), joka siirtää x mk tililtä t1 tilille t2:

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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 K2009

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

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

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

Samanaikaisuuden hallinta MySQLtietokannanhallintajärjestelmässä. Vesa Tähkävuori

D B. Transaktionhallinta

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

CSE-A1200 Tietokannat

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

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

HELIA 1 (11) Outi Virkki Tiedonhallinta

Tietokanta (database)

HELIA 1 (1) Outi Virkki Tiedonhallinta :43

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Samanaikaisuuden hallinta Snapshot Isolationin avulla

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

Sisältö. Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat. Abstrakti tietokantamalli. Tietoalkio ACID. Transaktion tilat. Abstrakti tietokantamalli

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

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

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

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

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Maiju Mykkänen Susanna Sällinen

5.2 Samanaikaisuuden hallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

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

Web-palveluiden transaktionaalinen koostaminen

[c] What is the difference between a modified page and a dirty page? Mitä eroa on päivitetyllä sivulla ja likaisella sivulla?

D B. Transaktionhallinta - samanaikaisuus

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

DBTechNet. DBTech VET. SQL Transactions. Teoriaa ja käytännönharjoituksia. Suomeksi

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT


Transaktiot - kertausta

Tietokantakurssit / TKTL

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokantarakenteet ja -algoritmit 3. harjoitus

Transaktioiden eristyvyys

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

SQL-transaktiot Opettajan opas

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

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

SQL-transaktioiden käytännön teoriaa ja harjoituksia

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

SQL Transaktiot Opettajan opas

Tietokantarakenteet ja -algoritmit 6. harjoitus

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Tapahtumanhallinnan pulmakohtia ja ratkaisuja

Hajautettujen transaktioiden hallinta

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Oraclen syvin ydin. Pertti Eiskonen Yleisradio Oy Tietokanta-asiantuntija. OUGF syysseminaari 2002 Sivu 1

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

Muita transaktioiden hallintamenetelmiä

Java ja tietokannan käsittely (JDBC)

Luento 3 Tietokannan tietosisällön suunnittelu

TIETOKANNAT JOHDANTO

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

Samanaikaisuuden hallinta

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Näkymät ja tiedon suojaus

Datahub webinaarit Sopimusmuutokset ja sopimusten päättämiset

D B. Tietokannan hallinta kertaus

Transkriptio:

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 Tapahtuman suunnittelu... 13

HELIA 2 (14) Transaktion / Tapahtuman hallinta Transaction management 1. Estetään tietokannan samanaikaisesta käsittelystä aiheutuvat ongelmat 2. Varmistetaan tietokannan tietojen eheys mahdollisista virhetilanteista huolimatta SQL- liittymä Sovellusohjelma SQL- komentoja SQL- käsittelijä (SQL Processor) Tapahtuman käsittelijä (Transaction Manager) Tilan käsittelijä (Storage Manager) DATA & METADATA

HELIA 3 (14) Taustaa 1. Katoavat päivitykset Lost Update problem Esim. Pankkitilin kartuttaminen samanaikaisesti A Tilino Saldo B 101 202 10 000 220 330 20 000 20 000 20 000 Tilino Saldo + 2 000 101 202 10 000 22 000 220 330 22 000 + 3 000 Tilino Saldo 23 000 101 202 10 000 220 330 23 000

HELIA 4 (14) 2. Holtiton luku / Likaiset luvut Dirty Read problem Esim. Pankkitilin kartuttaminen samanaikaisesti A Tilino Saldo B 101 202 10 000 220 330 20 000 20 000 Tilino Saldo + 2 000 101 202 10 000 22 000 220 330 22 000 22 000 rollback Tilino Saldo 101 202 10 000 220 330 20 000 + 3 000 Tilino Saldo 25 000 101 202 10 000 220 330 25 000

HELIA 5 (14) Tapahtuman käsite Joukko tietokannan käsittelytoimenpiteitä, (kyselyjä, lisäyksiä, muutoksia, poistoja) jotka muodostavat loogisen kokonaisuuden BEGIN TRANSACTION... END TRANSACTION Esim... LENTO(lento_id, lahto, kohde, ) LAHTO(lento_id, pvm, paikkoja, vapaana, ) VARAUS(lento_id, pvm, asiakas, ) BEGIN TRANSACTION Update LAHTO Set VAPAANA = VAPAANA 1 Where LENTO_ID = $lento_id and PVM = $pvm; Insert into VARAUS Values($lento_id, $pvm, $asiakas); END TRANSACTION;

HELIA 6 (14) Ä Tapahtumaan kuuluvat toimenpiteet joko suoritetaan kokonaisuudessaan tai hylätään kokonaisuudessaan COMMIT TRANSACTION ROLLBACK TRANSACTION aloita tapahtuma vahvistus ONNISTUNUT VAHVISTETTU päätä tapahtuma AKTIIVINEN virhe peruutus PÄÄTTYNYT luku kirjoitus EPÄ- ONNISTUNUT PERUUTETTU

HELIA 7 (14) ACID-ominaisuudet Atomicy Consistency Isolation Durability Jakamattomuus / Atomisuus Kaikki tai ei mitään Tapahtumaan kuuluvat toimenpiteet joko suoritetaan kokonaisuudessaan tai hylätään kokonaisuudessaan Eheys / Oikeellisuus Tietokanta säilyy tapahtumassa ehyenä Päivityksen yhteydessä tietokanta siirtyy eheästä tilasta uuteen eheään tilaan Erillisyys / Eristyvyys Tapahtuma suoritetaan ikään kuin se olisi ainoa tapahtuma ko. ajanhetkellä. Ts. muut tapahtumat eivät saa vaikuttaa sen suoritukseen Tapahtuman tekemät muutokset tietokantaan näkyvät muille tapahtumille vasta kun muutokset on vahvistettu (ei ns. likaisia tietoja) Pysyvyys Kun tapahtuma on vahvistettu, tietojen on säilyttävä tietokannassa kaikista mahdollisista virhetilanteista huolimatta.

HELIA 8 (14) Samanaikaisuuden hallinta Concurrency Control Estetään tietokannan samanaikaisesta käsittelystä aiheutuvat ongelmat Ä Vastuu Eheys Erillisyys Tap. A Tap. B Luku Kirjoitus Luku Ei vaaraa Vaara (L) Kirjoitus Vaara (L) Vaara (K) Sarjallistuvuus Rinnakkaisten tapahtumien aiheuttama tietokannan muutos on sellainen, että sama tulos saataisiin aikaan suorittamalla tapahtumat peräkkäin jossain järjestyksessä.

HELIA 9 (14) Lukitukset Locking Samanaikaisen käytön rajoitus Tavallisin tapa huolehtia Eheydestä ja Erillisyydestä a) Luku-lukko - jaettu b) Kirjoitus-lukko eksklusiivinen Nykyisin tyypillisesti rivitasoisia (aiemmin taulutasoisia) Lukkiintumat Deadlock Tilanne, jossa yhtäaikaa suorituksessa olevien ohjelmien lukot estävät ohjelman toiminnan Tiedonhallintajärjestelmä havaitsee ja purkaa lukkiintumat (perumalla yhden tai useamman tapahtuman)

HELIA 10 (14) Toipuminen Recovery Tietokannan palauttaminen eheään tilaan virhetilanteen jälkeen Ä Vastuu Jakamattomuus Pysyvyys Esimerkkejä virhetilanteista Toiminnon peruutus Lukkiintumien purkaminen Käyttövirhe Ohjelmointivirhe Levyvirhe Järjestelmävirhe Fysikaaliset vaaratilanteet Tahallinen vahingoittaminen

HELIA 11 (14) Loki-tiedosto Log Käsittelytoimenpiteet kirjataan lokitiedostoon aloita tapahtuma VAHVISTETTU vahvistus AKTIIVINEN PÄÄTTYNYT peruutus luku kirjoitus PERUUTETTU i Trns ID Opera tion Object Before image After image Prev ptr 1 T1 Start 0 2 T1 Update Tili XX sdfjs lsdfks 1 3 T2 Start 0 4 T2 Insert Asiakas Y ddksl 3 5 T1 Insert Tapaht z lkjlkj 2 6 T2 Commit 4 7 T1 Commit 5

HELIA 12 (14) Ä Lokitiedoston perusteella DBMS voi palauttaa tietokannan eheää tilaan virhetilanteen jälkeen a) Peruutus (Undo) b) Uudelleensuoritus (Redo) T1 T2 T3 T4 aika järjestelmävirhe

HELIA 13 (14) Tapahtuman suunnittelu Ä Tapahtuman suunnittelu on tietokannan suunnittelijan ja ohjelmoijan vastuulla Ä Sovellusalueen tuntemus tärkeää, jotta rakentuu loogisia toimenpidekokonaisuuksia Ä Jos transaktiota ei aloiteta eksplisiittisesti (BEGIN TRANSACTION) sen alku riippuu tiedonhallintajärjestelmän käytännöstä: Solidissa oletusarvona AUTO-COMMIT! Oraclessa tapahtuma alkaa jokaisesta 1. sisäänkirjoittautumisesta, 2. edellisestä Commit/Rollback -toiminnosta 3. tietokannan rakenteen muutostoiminnosta (DDL) Ä Tietokantaan määritellyt eheyssäännöt vastaavat relaatiotietomallin eheyden säilymisestä tapahtumissa

HELIA 14 (14) Suosituksia Pidä päivitystapahtumat (insert, update, delete) pieninä, ts. vahvista (commit) tai peru (rollback) tämän tästä Lukutapahtumat voivat olla pitkiä