Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa



Samankaltaiset tiedostot
HELIA 1 (14) Outi Virkki Tiedonhallinta

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

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

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

CSE-A1200 Tietokannat

SQL - STRUCTURED QUERY LANGUAGE

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

3. Taulujen määrittely ja muuttaminen

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Opiskeluoikeuksien maaran tiedonkeruu

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Tietohakemisto ja Transaktionkäsittely

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

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

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

Tietokannat II -kurssin harjoitustyö

Java ja tietokannan käsittely (JDBC)

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Tietokantakurssit / TKTL

Tikon yksittäismaksujen käsittely

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TILIOTE TOSITTEENA. Säästää aikaa ja vaivaa. Taloushallinnon kumppani Copyright TIKON Oy

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Siirto Yritysasiakkaille. Palvelukuvaus: Siirto-vastaanotto

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

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

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

Yrityksen sisäinen tunnus Henkilönumero tai muu yrityskohtainen tunniste, mikäli tieto on tallennettu verkkopalveluun.

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

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

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

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

Opintopiiritehtävä 3: Verkkohuutokauppa

YHTEYSSUHDE (assosiation)

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

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

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

Siirto Yrityksille Palvelukuvaus: Siirto-vastaanotto

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

Tietokannat II -kurssin harjoitustyö

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

Verkkokaupan varauksen peruutus ja hyvitys

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

Korvausten hakeminen Suomessa syntyneistä sairaanhoitokustannuksista. Hakemusten käsittely Kelassa Muutoksenhaku

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

Uuden tilikarttaversion käyttöönotto

Henkilöasiakkaiden tilinsiirtopalvelu

2017/11/21 17:28 1/2 Tilitapahtumat. Tilitapahtumat... 1 Käyttö:... 1 Asiakirjan kentät:... 1

Dictionary taulut. Miten perus metadataa käytetään koodillisesti joustavuutta lisäämään

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tilannevedoseristyvyydessä esiintyvät eristyvyysanomaliat

SQL:N PERUSTEET MARKKU SUNI

CS-A1150 Tietokannat CS-A1150 Tietokannat / 47

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

Opintopistetiedonkeruu

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

CSE-A1200 Tietokannat

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

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

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

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Kortinhaltijat joilla on maksukeskeytys Maksuryhmään liitettyjen kortinhaltijoiden lukumäärä, joiden maksut ovat tilapäisesti keskeytetty.

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

Testausdokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

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

Looginen tietokanta ja transaktiot

Yrityksen sisäinen tunnus Henkilönumero tai muu yrityskohtainen tunniste, mikäli tieto on tallennettu verkkopalveluun.

Liitokset - haut useaan tauluun

myclub koulutus syksy 2015 Urheilullisia elämyksiä kehittyvässä ja virikkeellisessä yhteisössä

Tietuekuva. Aineistosiirrot XML ISO XML pain MT101 sanomasäännöt

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Siirto Yritysasiakkaille Palvelukuvaus: Siirto-rajapinta

EUROOPAN YHTEISÖJEN KOMISSIO BUDG/A7/2008/D/59274 BRYSSEL 31/10/2008. MÄÄRÄRAHASIIRTO nro DEC41/2008

Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Postimaksukonepalvelun käyttöohje

Transkriptio:

Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa

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

Transaktionaaliset työnkulut pitkäkestoinen tehtävät=transaktiot erilaisia toteutumisvaihtoehtoja vaihtoehtoinen valinta järjestelmävirhe käyttäjän peruutus atomisuus turvattava

Esimerkki Vakuutusyhtiön vakuutuskyvyn tarkistaminen Vakuutuksen verkkomaksu Auto vakuutuksen tyypin valinta Asiakkaan luottotietojen tarkastaminen Vakuutuspäätös Vakuutuksen myöntäminen/ hylkääminen Auton rekisteritietojen hakeminen

Samanaikaisuuden ongelmat Työnkulut voivat lukea toisten keskeneräisten työnkulkujen päivittämää tietoa samanaikaisuuden edellytys työnkulut lukevat likaista tietoa työnkulun peruuntuminen voi olla mahdotonta Järjestelmän resurssien ylivaraus

Työnkulun peruuntuminen kompensaatio Kompensaatio = tehtävän tai tehtävien peruutus W = (t 1,t 2,...,t n ) Tehtävän t i kompensoiva tehtävä t i 1 Kompensoiva tehtävä toteutetaan aina kun pyydetään Palauttaa järjestelmän tilan johonkin aikaisempaan sitoutuneeseen tilaan

Kompensaatio esimerkki Yhteiskäyttöinen tili Käyttäjä A suorittaa tilille panon osana työnkulkua Käyttäjä B veloittaa tililtä käyttäjän A summasta Voidaanko käyttäjän A tilille pano peruuttaa?

Likaisen tiedon muut ongelmat Työnkulun valinnat ja päätökset perustuvat toistokelvottomaan tietoon järjestelmän resurssien ylivaraus virheellinen tieto ongelma vain rajatapauksissa

Esimerkki Vakuutusyhtiön vakuutuskyvyn tarkistaminen Vakuutuksen verkkomaksu Auto vakuutuksen tyypin valinta Asiakkaan luottotietojen tarkastaminen Vakuutuspäätös Vakuutuksen myöntäminen/ hylkääminen Auton rekisteritietojen hakeminen Voiko vakuutusyhtiö myöntää liikaa vakuutuksia?

Optiot Estävät likaisen tiedon lukemisen Työnkulut pyytävät optioita resursseihin Optio alustava varaus resursseista Työnkulun suorituksen lopuksi realisoidaan optiot, muuten hylätään optiot Tehtävät 2 vaiheisiksi preliminäärivaihe positiivinen/negatiivinen kompensaatio

Optiot option määritelmä OPTIO Preliminääritehtävä : <transaktio kutsu> Positiivinen kompensaatio: <transaktiokutsu> Negatiivinen kompensaatio: <transaktiokutsu>

Optiot virheenhallinta Optiot takaavat atomisuuden Ei likaisen tiedon lukua peruuntumisesta työnkulut lukevat vain sitounutta tietoa (realisoidut optiot) muut työnkulut eivät ole voineet lukea peruuntuvat työnkulun päivityksiä

Asiakas A varaa option suorittaa 10 e maksun tililtä a1 tilille a2. Samanaikaisesti Asiakas B suorittaa veloitusta tililtä a2. Asiakas B näkee asiakas A:n maksun tilille a2 vain jos Asiakkaan A työnkulku on suorittanut positiivisen kompensaation (sitounut). Jos asiakkaan A työnkulku peruuntuu, niin optio hylätään eikä tällä ole vaikutusta asiakkaan B työnkulkuun. Esimerkki Viitetiedot virheelliset Maksutiedot (optio) Viitetietojen tarkastus Maksun varmenne (positiivinen kompensaatio) Pankin ja asiakkaan maksukyvyn tarkistaminen Ei maksukykyä Maksun hylkäys (negatiivinen kompensaatio)

Optiot eristäminen Estetään tietorakenteisiin pääsyä estetään resurssien ylivaraus liiketoiminnallinen syy Tiedon haku tilan mukaan sitoutunutta keskeneräinen

Esimerkki Viitetiedot virheelliset Maksutiedot (optio) Viitetietojen tarkastus Maksun varmenne (positiivinen kompensaatio) Pankin ja asiakkaan maksukyvyn tarkistaminen Ei maksukykyä Maksun hylkäys (negatiivinen kompensaatio) Tilin saldo 10 e. Asiakas A varaa option suorittaa 10 e maksun tililtä a1. Samanaikaisesti Asiakas B yrittää varata optiota suorittaa 5 e maksu tililtä a1. Optioiden avulla eroteltu keskeneräiset ja sitoutuneet päivitykset eli optiota ei voida myöntää asiakkaalle B. Näin ollen resurssien ylivaraus ei ole mahdollista.

Optiot WorkMan Työkulunhallintajärjestelmä Optioiden toteutus SQL Tehtävillä taulut eri vaiheille tilarelaatio pyyntörelaatio vastausrelaatio Tehtävien ajastus triggereillä

WorkMan arkkitehtuuri [Pul00]

Preliminääri ja kompensaatiovaihe WorkMan Optiot tehtävien 2 vaiheisuus preliminääritaulu sitoutuneen tiedon taulu Tietokannanhallintajärjestelmä huolehtii päivitystransaktioiden atomisuudesta

Optioiden rajoitteet WorkMan CREATE TABLE premaksut Nro Int AsiakasId Int Tilinumero Char(11) Kohdetili Char(11) Viitenro Int premaksu Int Maksupäivä Date ALTER TABLE Tilitiedot ADD premaksut Int ALTER TABLE Tilitiedot ADD CONSTRAINT tutkisaldo CHECK (saldo PreMaksut >= 0) ALTER TABLE PreMaksut ADD CONSTRAINT yksimaksu CHECK tilinumero,kohdetili,viitenro UNIQUE

Esimerkki Begin transaction Maksutiedot (asiakasid,maksutili,kohdetili2, viitenumero,summa,maksupäivä) INSERT ((select max(nro) from PreMaksut), maksutili, kohdetili2, viitenumero, summa, maksupäivä) into PreMaksut UPDATE Tilitiedot SET premaksut = premaksut + summa where tilinumero = maksutili End transaction Option Maksu Preliminääritehtävä : Maksutiedot Positiivinen kompensaatio: INSERT (Nro, Asiakas, maksutili, kohdetili, summa, viitenumero, maksupäivä) into Maksut DELETE (Nro, Asiakas, maksutili, kohdetili, viitenumero, summa, maksupäivä) FROM PreMaksut UPDATE Tilitiedot SET premaksut = premaksut summa and saldo = saldo summa where tilinumero = maksutili Negatiivinen kompensaatio: DELETE (Nro, Asiakas, maksutili, kohdetili, viitenro, summa, maksupäivä) FROM PreMaksut UPDATE Tilitiedot SET premaksut = premaksut summa where tilinumero = maksutili

Esimerkki

Optioiden ajastus WorkMan Negatiivinen/positiivinen kompensaatio keskitetysti Työnkululla alitehtäviä ja alityönkulkuja Koordinointitehtävä tiedusteluvaihe päätösvaihe

Optiot WAL käytäntö WAL käytäntö peruutetaan aktiiviset realisoimattomat optiot sitoutuneet elvytetään realisoidut optiot Koordinoijatehtävä välittää tiedon sitoutumisesta tai peruuntumisesta Alityönkulut välittävät tiedon edelleen tehtäville ja omille alityönkuluille

Optioiden hyödyt Ei likaisen tiedon lukemista kompensaatio aina mahdollinen Keskeneräisen ja sitoutuneen tiedon erottaminen tiedon eristäminen Optiot operaatiotasolla työnkulkuja voi muuttaa

Optiot määrittelytasoilla

Optioiden ongelmat Keskitetty ratkaisu Ylläpidon lisääntyminen samassa taulussa option tila? Ei estä saman tiedon näkymistä samanaikaisesti Kuinka paljon todellisuudessa tarvetta? työnkulut ihmisvalvonnassa

Yhteenveto Transaktionaaliset työnkulut tukevat semanttista atomisuutta Kompensaatio ongelma Optiot eräs ratkaisu 2 vaiheisuus Voidaan toteuttaa tietokantajärjestelmän välineillä (SQL)