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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Tietohakemisto ja Transaktionkäsittely

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

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

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

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

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

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

Näkymät ja hakemistot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

HELIA 1 (15) 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

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

CSE-A1200 Tietokannat

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

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

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

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

Maiju Mykkänen Susanna Sällinen

Java ja tietokannan käsittely (JDBC)

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

D B. Transaktionhallinta

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

SQL-transaktiot Opettajan opas

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

Samanaikaisuuden hallinta Snapshot Isolationin avulla

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

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

Transaktionhallinta. Transaktionhallinta. Transaktionhallinta. R & G Chapter 17

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

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

TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA

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

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

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tietokanta (database)

käännös käännösvaiheessa tarkasettaan linkitys

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

5.2 Samanaikaisuuden hallinta

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Tietokantakurssit / TKTL

D B. Transaktionhallinta - samanaikaisuus

HELIA 1 (15) Outi Virkki Tiedonhallinta

L2TP LAN to LAN - yhteys kahden laitteen välille

Näkymät ja tiedon suojaus

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TW- EAV510 / TW- EAV510 AC: IPSeC- Ohjeistus

Optima: kirjoitusalue työkalu Opettajalle ohjeet

TIETOKANNAT JOHDANTO

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Lupapiste-palvelua koskeva Yritystilisopimus

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

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

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

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

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

Käyttöjärjestelmät: Virtuaalimuisti

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

5.2 Samanaikaisuuden hallinta

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

Lisää segmenttipuusta

Lue ohjeet huolellisesti ennen laitteen käyttöä.

Pikaohje formaatin valmistamiseen

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

Suomen Lions-liitto ry Käyttäjätunnus ja sisäänkirjautuminen MyLCI - Käyttäjäohje Versio

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

Tosiaikajärjestelmät Luento 11: Tosiaikatietokannat

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

Asteri Kirjanpito Dos ALV% nousu 1 %-yksiköllä Vuosipäivitys

Moodle HOPS-työskentelyn tukena

Sovellusarkkitehtuurit

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

HELIA 1 (17) Outi Virkki Tietokantasuunnittelu

SQL-KIELEN PERUSTEET

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

Tietokannan rakenteen suunnittelu

Hae Opiskelija käyttöohje

SQL - STRUCTURED QUERY LANGUAGE

SKYPE-RYHMÄN LUOMINEN

Mobiiliturva Palvelun käyttöönotto

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

Rekisterinpidon ja käytönvalvonnan haasteet

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

SQL Transaktiot Opettajan opas

D B. Tietokannan hallinta kertaus

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Transkriptio:

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

Tietokantapahtumien hallinta

Tietokantatapahtuma (transaction) Tietokantatapahtumalla tarkoitetaan toimenpidesarjaa, jolla käyttäjä tai sovellusohjelma lukee tai muuttaa tietokannan sisältöä yksittäinen SQL-komento, kuten INSERT tai UPDATE joukko sovellusohjelman suorittamia peräkkäisiä SQL-komentoja Toisin sanoen, tapahtuma on yksi tai useampi yhteenkuuluva ryhmä SQL-komentoja, jotka on suoritettava yhtenä kokonaisuutena Jos jotain tapahtumaan kuuluvista komennoista ei voida suorittaa onnistuneesti loppuun, yhtään muistakaan ei suoriteta Hannu Markkanen Metropolia Ammattikorkeakoulu 3

Tapahtumanhallinta (transaction management) Tietokantojen tapahtumanhallinnan avulla ehkäistään tietojen lisäämiseen, muuttamiseen ja poistamiseen liittyviä ongelmia Monen käyttäjän lukiessa ja kirjoittaessa samaa tietoyksikköä, saavat joku/jotkut käyttäjistä väistämättä käyttöönsä virheellistä tietoa ellei sitä estetä jotenkin Tapahtumanhallinta on eräs tärkeimmistä vaatimuksista yritystason sovelluskehityksessä Moni liiketoiminta, kuten pankit ja sähköinen kaupankäynti, on täysin riippuvaista luotettavasta tapahtumanhallinnasta TKHJ:ssa tapahtumien hallintaa hoitaa nk. tapahtuman käsittelijä (transaction manager), joka valvoo samanaikaisia operaatioita varaa ja vapauttaa tietoyksikköjä huolehtii operaatioiden päättymisestä ja mahdollisesta peruutuksesta

Samanaikaiset tapahtumat SQL-standardi määrittelee neljä samanaikaisiin tapahtumiin liittyvää ongelmaa: 1. Lost Update: Tapahtuman päivitys katoaa, koska toinen ylikirjoittaa sen: Aika Käyttäjä A: Nosto tililtä Tilin saldo Käyttäjä B: Talletus tilille T1 10000 T2 T3 Lue saldo: 10000 Lue saldo: 10000 10000 + 2000 T4 10000-3000 12000 T5 7000 2. Dirty Read: Tapahtuma A lukee tiedon, joka on päivitetty osana saman aikaista tapahtumaa B, jonka B kuitenkin peruuttaa. 3. Non-Repeatable Read (ei-toistettava luku): Tapahtuma B poistaa tai muuttaa rivejä, jotka kuuluivat saman aikaisen tapahtuman A tulosjoukkoon. 4. Phantom (kasvava lukujoukko): Tapahtuma B lisää rivejä, jotka kuuluisivat saman aikaisen tapahtuman A tulosjoukkoon. Hannu Markkanen Metropolia Ammattikorkeakoulu 5

Samanaikaisuuden hallinta Samanaikaisuuden hallinnan tavoitteena on estää yhtäaikaisten tietokantaoperaatioiden haitallinen vuorovaikutus SQL-92 standardin versiosta lähtien on määritelty neljä nk. eristävyystasoa, joiden avulla voidaan hallita samanaikaisten tapahtumien aiheuttamia ongelmia 1. READ UNCOMMITTED: katoava päivitys estetty 2. READ COMMITTED: + likainen luku estetty 3. REPEATABLE READ: + ei toistettava luku 4. SERIALIZABLE: täysin turvallinen Esimerkki eristävyystason asettavasta SQL-komennosta: SET TRANSACTION ISOLATION LEVEL SERIALIZABLE Tiukempi eristyvyystaso huonontaa suorituskykyä, joten sopiva taso valitaan tapauskohtaisesti Hannu Markkanen Metropolia Ammattikorkeakoulu 6

Esimerkki: usean operaation tapahtuma Tililtä nosto -tapahtuma voi muodostua seuraavista kahdesta vaiheesta: 1. Päivitetään tilin saldo 2. Lisätään tilitapahtuma 1. UPDATE tili SET saldo= saldo 1000 WHERE tilinro = 123789; 2. INSERT INTO tili_tapahtuma(tilinro, aika, summa) VALUES(123789, 2011-11-27 12:14:07, -1000.00) Ylläolevat kaksi vaihetta täytyy sitoa yhdeksi tapahtumaksi, jossa suoritetaan molemmat vaiheet tai ei kumpaakaan Lisäksi molempien taulujen ko. rivit on lukittava tapahtuman ajaksi Hannu Markkanen Metropolia Ammattikorkeakoulu 7

Tapahtumanhallinta SQL:ssä SQL:ssä tapahtumia hallitaan COMMIT- ja ROLLBACK-komennoilla: Jos kaikkien tapahtumaan kuuluvien komentojen suoritus sujuu ongelmitta, tapahtuma vahvistetaan COMMIT-komentoa käyttäen COMMITT-komento tallentaa kaikkien tapahtumaan kuuluvien komentojen aiheuttamat muutokset pysyvästi tietokantaan Jos jotakin menee vikaan tapahtuman aikana, se keskeytetään käyttäen ROLLBACK-komentoa ROLLBACK palauttaa tietokannan ennen tapahtuman alkua olleeseen tilaan Jos tapahtuma on vahvistettu (COMMIT), niin sitä ei enää voida palauttaa (ROLLBACK) lähtötilanteessa olleeseen tilaan Tapahtuman aloitus tehdään eri TKHJ-tuotteissa eri tavoin: MySQL: START TRANSACTION tai BEGIN SQL server: BEGIN TRANSACTION Oracle: automaattinen Hannu Markkanen Metropolia Ammattikorkeakoulu 8

Esimerkki: transaktio MySQL:ssä BEGIN; UPDATE tili SET saldo= saldo 1000 WHERE tilinro = 123789; INSERT INTO tili_tapahtuma(tilinro, aika, summa) VALUES(123789, 2011-11-27 12:14:07, -1000.00); COMMIT; Tapahtumien hallintaan liittyviä SQL-käskyjä käytetään pääasiassa sovellusohjelmissa ja tietokannan proseduureissa Transaktioon liittyvät käskyt eivät toimi oikein phpmyadminissa, vaikka niitä voikin käyttää Hannu Markkanen Metropolia Ammattikorkeakoulu 9

Tapahtumanhallinta hajautetuissa tietojärjestelmissä Yritystason tietojärjestelmät ovat tyypillisesti hajautettuja järjestelmiä sekä tiedon varastoinnin että liiketoimintalogiikan toteuttavien sovellusten osalta Tällaisten sovellusten täytyy ylläpitää datan eheyttä (sovelluksen liiketoimintasääntöjen määritteleminä) ottaen huomioon: hajautettu pääsy monesta ohjelmistokomponentista yhteen dataresurssiin pääsy hajautettuihin resursseihin yhdestä ohjelmistokomponentista Usein on välttämätöntä, että hajautettuihin resursseihin kohdistuvat operaatiot pitää käsitellä sovelluksessa yhtenä työyksikkönä Työyksikössä kaikki osallistuvat operaatiot pitää saattaa yhdessä onnistuneiksi tai epäonnistuneiksi eli tapahtumanhallintaan liittyvää logiikkaa joudutaan sisällyttämään (myös) sovellusohjelmaan

Tapahtumanhallinnan ACID ominaisuudet Oikeaoppisella tapahtumanhallinnalla tulisi olla seuraavat neljä ominaisuutta: Atomisuus (Atomicity) Tapahtumiin kuuluvat operaatiot (niiden aiheuttamat päivitykset) tietokantaan tehdään kokonaisuudessaan tai ei ollenkaan Eheys (Consistency) Tietokannan tulee säilyä ehyessä tilassa tapahtuman jälkeen (tapahtuma ei riko eheyssääntöjä) Eristys (Isolation) Tapahtuman tekemät muutokset eivät näy muille ennen kuin tapahtuma on vahvistettu Pysyvyys (Durability) Kun tapahtuma on suoritettu loppuun, sen tallentama tieto ei saa hävitä tai muuttua myöhemmän häiriön vuoksi

Tietokannan metatieto

Systeemihakemisto (tietohakemisto) TKHJ:n täytyy pitää kirjaa kaikista tietokantaobjekteista (taulut, sarakkeet, indeksit, näkymät jne.) Tätä tietoa kutsutaan metatiedoksi (tietoa tiedosta) TKHJ tallentaa metatieto sitä varten tarkoitettuihin tauluihin - joihin voi (tietenkin) tehdä SQL-kyselyjä Systeemihakemisto on tärkeä tietolähde tietokannan suunnittelijoille, ohjelmoijille ja ylläpitäjille Vaikka SQL-92 standardi määrittelee systeemihakemistoon talletettavat tiedot ( information schema ), kaikissa tietokantatuotteissa on kuitenkin omat rakenteensa Hannu Markkanen Metropolia Ammattikorkeakoulu 13

Systeemihakemisto: esimerkkejä MySQL:stä Systeemihakemisto sisältö näkyy phpmyadminin vasemmassa navigointipalkissa (linkki information_schema ) INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA.COLUMNS INFORMATION_SCHEMA. TABLE_CONSTRAINTS INFORMATION_SCHEMA. KEY_COLUMN_USAGE INFORMATION_SCHEMA.VIEWS INFORMATION_SCHEMA. TABLE_PRIVILEGES Taulujen määrittelyt Sarakkeiden määrittelyt Eheyssääntöjen esittely Pää- ja viite-eheyssäännöissä käytettävät sarakkeet ja järjestys Näkymät Taulujen käyttöoikeudet Hannu Markkanen Metropolia Ammattikorkeakoulu 14