bp lekcija 12 transakcije

Upload: nikola-milosavljevic

Post on 07-Jan-2016

12 views

Category:

Documents


0 download

DESCRIPTION

Baze

TRANSCRIPT

  • Baze podatakaBaze podatakaTransakcije i

    ouvanje integriteta BP

  • BP pravi efekti kada se radi u mrenom okruenju BP zajedniki resurs koga istovremeno (konkurentno) koristi vei

    broj programa

    Neeljeni efekti (opasnosti): Vie korisnika pristupa istim podacima (itanje i izmena) Otkaz sistema u toku izvrenja programa

    Posledica: nekonzistentno stanje BP Spreavanje tetnih posledica SUBP koristi tehnike

    zakljuavanja podataka (Data Locks) Podaci se zakljuavaju samo kod izmena, upit ne sme da

    blokira druge korisnike

    Predavanja 2

    Transakcije

  • Zbog moguih problema SUBP mora da pravi rezervne kopije i da vodi dnevnik auriranja

    Najee: sve promene izazvane sa SQL odraavaju se samo na radnu MEM

    Ako se ele promene nad stvarnim podacima (na disku servera) potrebno je potvrditi ovakve promene (transakcije) COMMIT potvrda prenos dejstva transakcije na BP ROLLBACK odustajanje ponitavanje dejstva transakcije na BP

    Predavanja 3

    Transakcije

  • Transakcija - opreracija kojom se izvodi serija izmena nad jednom ili vie tabela u BP izvrenje operacija nekog programa (npr., SELECT, UPDATE,

    INSERT, DELETE)

    Transakcija logika jedinica posla koja se izvrava do kraja ili se ponitava u celini (izvrenje jednog celog programa)

    Neke transakcije traju veoma dugo! U jednom trenutku nad BP se moe izvravati vie

    transakcija

    Predavanja 4

    Transakcije

  • esti sluajevi: Jedan program se izvrava vie puta istovremeno nad BP

    Npr: Podizanje gotovine Razliiti programi se izvravaju istovremeno nad istim podacima u

    BP Npr. Plaanje i uplata na isti raun

    Osnovni cilj BP je da omogui efikasnu obradu transakcija

    Predavanja 5

    Transakcije

    BP

  • Transakcija Niz operacija nad BP koji odgovara jednoj logikoj

    jedinici posla u realnom sistemu Osnovna programska jedinica kojom se obezbeuje

    ouvanje konzistentnosti baze Zahteva se da transakcija bude atomska (nedeljiva) i da

    sve instrukcije jedne transakcije moraju biti izvrene ili ni jedna

    Skup aktivnosti nad bazom podataka koje se izvravaju po principu sve ili nita, tj. ili su sve aktivnosti uspeno obavljene ili je baza podataka ostala nepromenjena

    Predavanja 6

    Transakcije

  • Primer: Podizanje novca sa rauna Kada banka primi zahtev, transakcija obuhvata sledee

    korake:1. Provera bankarske kartice2. Provera rauna (stanje)3. Ako je stanje ispod minimuma odbija se zahtev, u suprotnom se

    nastavlja4. Smanjuje se stanje na raunu za zahtevani iznos5. Generie se izvetaj o transakciji6. Isplauje se novac i daje izvetaj o transakciji

    Transakcija mora da kompletira sve korake, inae bi jedna od strana u transakciji imala tetu

    Predavanja 7

    Transakcije

  • 1 Problem: otkaz sistema u toku obrade transakcije Prenos novca (X dinara) komintenta banke sa rauna A

    na B Transakcija mora da obavi i podizanje i ulaganje novca Otkaz sistema u nekom trenutku moe da prouzrokuje:

    Novac se skida sa rauna A Novac nije prebaen na raun B

    Predavanja 8

    Transakcije

  • Otkaz sistema u trenutku t5 prouzrokuje: Novac se skida sa rauna A Novac nije prebaen na raun B

    Predavanja 9

    Transakcija 1

    read(A);A:=A-X;

    write(A);read(B);

    (Neobavljeno) B:=B+X;(Neobavljeno) write(B);

    vreme

    t1t2

    t3t4t5 Otkaz!!!

    Transakcije

    t6t7

  • 2 Problem: gubljenje rezultata auriranja Paralelno se izvravaju dve transakcije Transakcija 1 podie X dinara, a transakcija 2 ulae Y

    dinara na isti raun A Auriranje koje izvrila jedna transakcija moe da se

    prebrie auriranjem koje izvri druga transakcija

    Predavanja 10

    Transakcije

  • Auriranje koje je izvrila transakcija T1 u t5, prebrie se auriranjem koje izvri transakcija T2 u trenutku t6

    Predavanja 11

    Transakcija 1

    read(A);A:=A-X;

    write(A);

    vreme

    t1t2t3t4

    t5

    Transakcija 2

    read(A);A:=A+Y;

    write(A);t6

    Transakcije

  • Problem: nekorektna analiza podataka Skup problema sledeeg tipa:

    Vri se sraunavanje u transakciji 1 Transakcija 2 promeni vrednost argumenta koji je prva ve

    obradila

    Primer: Sumiraju se neki podaci iz BP u okviru transakcije 1 Transakcija 2 aurira iste podatke iz BP Mogue greke kod sumiranja:

    Neki podaci se uzimaju pre auriranja, a neki posle Posledica: nekorektno izraunata suma

    Predavanja 12

    Transakcije

  • Atomnost (Atomicity) Skup aktivnosti nad BP po principu sve ili nita Ili su sve aktivnosti uspeno obavljene, ili BP ostaje nepromenjena Pored atomnosti transakcija SUBP mora da garantuje atomnost

    svake aktivnosti (pojedinane operacije) zbog skupovnih operacija

    Konzistentnost (Consistency) Transakcija treba da prevede BP iz jednog u drugo konzistentno

    stanje. Za vreme obavljanja transakcije konzistentnost BP moe da bude naruena.

    Predavanja 13

    Osobine transakcija

  • Primer Sa rauna A se na raun B prebacije 1.000 din Poetno stanje:

    A=20.000 dinara B=10.000 dinara

    Zavrno stanje: A=19.000 dinara B=11.000 dinara

    A+B=30.000 dinara odreuje konzistentnost baze

    Predavanja 14

    1.000 dinara

    Konzistentnost

  • Izolacija (Isolation) Kada se dve ili vie transakcija izvravaju istovremeno, njihovi efekti

    moraju biti meusobno izolovani. Efekti koje izazovu transakcije koje se obavljaju istovremeno moraju

    biti jednaki efektima nekog njihovog serijskog (jedna posle druge) izvrenja.

    Zbog poveanja paralelizma u obradi transakcija dozvoljavaju se razliiti nivoi izolovanosti.

    Trajnost (Durability) Kada se transakcija zavri (potvrene promene) njeni efekti ne mogu

    biti izgubljeni, ak i ako se neposredno po njenom okonanju desi neki ozbiljan otkaz sistema. Ako se desi nasilno prekidanje, transakcija e biti u stanju pre.

    Predavanja 15

    Osobine transakcija

  • Obezbeenje ACID osobina transakcije Transakcija poinje sa BEGIN TRANSACTION Zavrava se sa COMMIT potvruju se promene u BP ako su sve

    instrukcije uspeno izvrene Zavrava se sa ROLLBACK ako sve instrukcije nisu uspeno

    zavrene

    Predavanja 16

    Transakcije

  • ROLLBACK instrukcija moe biti i implicitna SUBP je inicira iz bilo kog razloga, ako doe do neplaniranog zavretka transakcije (overflow, deljenje sa nulom itd.)

    Jedan program moe predstavljati kolekciju transakcija, ali je najee jedan program jedna transakcija

    Transakcije mogu biti ugnjedene COMMIT od najnieg do najvieg nivoa ROLLBACK dovoljno da se pojavi samo na jednom mestu,

    ponitavaju se promene svih transakcija

    Predavanja 17

    Transakcije

  • 3 Problem: nepotvrene promene Problem se javlja kada transakcija 2 ita (menja)

    podatak, a transakcija 1 aurira isti podatak a jo nije izdata potvrda

    Posledica: Transakcija 2 moe da proita nepostojeu vrednost

    (nepotvreno, prljavo itanje) nekorektno auriranje

    Predavanja 18

    Transakcije

  • Transakcija 2 je proitala nepostojeu vrednost A (nepotvreno, prljavo itanje) nekorektno auriranje

    Predavanja 19

    Transakcija 1

    read(A);A:=A-X;write(A);

    vreme

    t1t2t3t4t5

    Transakcija 2

    read(A);A:=A+Y;write(A);t6

    Rollback; t7

    Transakcije

  • Implementacija COMMIT i ROLLBACK

    SUBP poseduje i odrava specijalnu MEM jedinicu (na spoljnoj memoriji) LOG ili URNAL (dnevnik transakcija) Zapisuju se sve promene koje se deavaju u BP

    Za svaku transakciju i za svaki objekat BP koji je ona aurirala uva se: Vrednosti pre auriranja (before-image) Vrednosti posle auriranja (after-image)

    Predavanja 20

  • Implementacija COMMIT i ROLLBACK

    Na naredbu Rollback, SUBP koristi vrednosti pre za datu transakciju

    Pre Commit naredbe sistem prvo upisuje vrednosti pre i posle u log fajl

    Ako se prekine Commit naredba, mogu se proitati vrednosti posle sa log fajla konzistentno stanje

    Oporavak BP RECOVERY proces vraanja BP u korektno stanje

    Predavanja 21

  • Oporavak BP

    Uzroci otkaza: Greke u programiranju, Greke u OS, Nestanak napajanja, sabotaa, ...

    Proces oporavka se zasniva na redudansi podataka (postojanje rezervnih kopija) Na disku, traci i sl.

    Otkaz sistema: Oteena BP rekonstrie se ispravno stanje na osnovu poslednje

    kopije Nekonzistentno stanje ponitavaju se nekonzistentne promene, a

    transakcije se ponavljaju

    Predavanja 22

  • Konkurentna obrada transakcija

    Nad modernim BP transakcije se ne obavljaju u izolovanosti ve konkurentno

    Vie transakcija mogu istovremeno zahtevati iste resurse, isti rekord BP, itd.

    Nekontrolisan meusobni uticaj transakcija moe da dovede do nekonzistentnog stanja

    Komponente SUBP 1. Menader transakcija (Transaction manager) upravlja

    celokupnim izvrenjem transakcija2. Planer (Scheduler) - vodi rauna o redosledu akcija nad BP kada

    se transakcije konkurentno izvravaju

    Predavanja 23

  • Konkurentna obrada transakcija

    Planer: Ako itanje ili upisivanje moe da narui integritet BP, zahtev se:

    odlae (vremenski), ili ponitava se cela transakcija

    Serijsko izvravanje transakcija: Nema preplitanja transakcija Prvo se zavri jedna, zatim druga itd.

    Serijsko izvravanje korektan rezultat Konkurentno izvravanje transakcija je serijabilno (linearno)

    ako daje isti rezultat kao i serijsko izvravanje svih transakcija

    Predavanja 24

  • Konkurentna obrada transakcija

    Serijsko i paralelno izvravanje transakcija

    Predavanja 25

    Transakcija1

    Transakcija2

    Transakcija3

    Transakcija1 Transakcija2 Transakcija3

    vreme

    Istovremeno izvravanje sve tri transakcije

    Serijsko izvravanjetransakcija

    Paralelnoizvravanjetransakcija

  • Transakcioni serveri

    Sistemi obrade transakcija (Transaction Processing - TP) transakcioni serveri Obezbeuju emu nadzora i kontrolu izvrenja transakcionih

    programa Obezbeuju API mehanizam komunikacije programa i TP servera

    Olakavaju razvoj i izvravanje aplikativne logike logike komponente poslovnog procesa

    Korisni su za: Kritine aplikacije sa velikim brojem konkurentnih korisnika Obezbeuju ACID karakteristike za razliite (heterogene) BP

    Predavanja 26

  • Transakcioni serveri

    Idealni su kod izgradnje distribuiranih aplikacija visokih performansi u heterogenom okruenju

    Podrka za aplikacije tipa: E-trgovina Aplikacije za podrku poslovanju itd.

    Nezavisnost od platforme Hardver, komunikacioni sistem, okruenje BP

    Predavanja 27

  • Transakcioni serveri

    Predavanja 28

    Prezentacioni nivo(klijent)

    Relacioni DBMS

    DISK

    Prezentacioni nivo(klijent)

    Relacioni DBMS1

    DISK

    Relacioni DBMS2

    DISK

    TP server

  • Protokoli zakljuavanja

    Velika je verovatnoa da, ako nema ogranienja, izvravanje transakcija nee biti serijabilno

    Provera serijabilnosti se teko moe obaviti u realnom vremenu NP problem (nije polinomijalan)

    Mehanizam zakljuavanja (locking) nasilno ostvarivanje serijabilnosti

    Transakcija zakljuava objekat BP kome je pristupila Onemogueno je drugim transakcijama da nekorektno operiu

    Dobra transakcija dozvoljava rad ostalim korisnicima dok traje obrada

    Predavanja 29

  • Protokoli zakljuavanja

    Vrste zakljuavanja: Ekskluzivno (exclusive lock ili write lock) XL

    Kada se izvrava: INSERT, UPDATE, DELETE Deljivo (shared lock ili read lock) SL

    Kada se izvrava SELECT1. Eksluzivno zakljuavanje XL

    Ako jedna transakcija postavi XL katanac na objekat BP:

    Ne moe ni jedna druga transakcija da postavi katanac,

    Ne moe se postaviti ni jedan drugi katanac

    Predavanja 30

  • Protokoli zakljuavanja

    2. Deljivo zakljuavanje SL Ako jedna transakcija postavi SL katanac na objekat

    BP: Druga transakcija moe da postavi SL na isti objekat Ni jedna druga ne moe da postavi XL na taj objekat

    Predavanja 31

  • Protokoli zakljuavanja

    Protokol zakljuavanja:1. Transakcija koja ita neki objekat BP (npr. Neku n-torku) mora da

    postavi SL na taj objekat2. Transakcija koja eli da aurira neki objekat mora da postavi XL. Ako

    je ta transakcija postavila SL treba da ga promeni u XL.3. Ako transakcija nije postavila katanac, zato to je to pre uradila neka

    druga, prelazi u stanje ekanja4. Transakcija oslobaa XL i SL na kraju, sa COMMIT ili ROLLBACK

    naredbom

    Oba katanca: XL i SL se postavljaju implicitno

    Predavanja 32

  • Reenje problema nepotvrenih promena

    Predavanja 33

    Transakcija 1

    read(A);

    write(A);

    vreme

    t1

    t2

    t3

    t4

    t5

    Transakcija 2

    read(A);ekanje,ekanje

    t6

    Rollback;

    t7

    A=A-X;

    read(A);A:=A+Y;write(A);

    Commit;

    Postavlja se SL

    Postavlja se XL

    Trai se SL

    Postavlja se SL

    Postavlja se XL

    Oslobadja se XL

  • Mrtvi vor

    Predavanja 34

    Transakcija 1

    read(A);A:=A-X;

    write(A);ekanjeekanjeekanjeekanje

    vreme

    t1t2t3t4

    t5

    Transakcija 2

    read(A);A:=A+Y;

    write(A);ekanjeekanjeekanjeekanje

    t6

    Postavlja se SL

    Postavlja se SL

    Trai se XL

    Trai se XL

    Reenje problema: Prekid transakcije posle isteka vremenskog ogranienja

  • Podaci A

    Podaci B

    Predavanja 35

    ------------------

    Zahtev Podaci A---------------------------

    Zahtev Podaci B------------------

    ------------------

    Zahtev Podaci B---------------------------

    Zahtev Podaci A------------------

    Transakcija A Transakcija B

    Tabela X

    Uslovi za deadlock

  • Transakcije

    Poeljno je da transakcije kratko traju Dobra transakcija dozvoljava rad ostalim korisnicima dok

    traje obrada Zakljuavanje podataka na razliitim nivoima: (kolona,

    zapis, tabela, vie tabela, BP) Nivo zakljuavanja granularnost Granularnost zavisi i od mogunosti DBMS-a

    Predavanja 36

  • Transakcije

    Predavanja 37

    kolona zapis tabela BP

    Kon

    kure

    ntni

    pris

    tup

    Granularnost

  • Transakcije

    Zakljuavanje na nivou kolone: Maksimalna mogunost konkurentnog rada Zahteva se vie resursa od SUBP optereenje

    Zakljuavanje na nivou BP Najmanje optereenje BP Baza dostupna samo korisniku koji ju je zakljuao

    Administartor BP odreuje nivo granularnosti za svaki objekat

    LOCK TABLE naredba u sastavu SUBP za ponitavanje granularnosti (npr. za startovanje Transakcije bez konkurentnog pristupa drugih pocesa)

    Predavanja 38

  • Transakcije

    Vreme ekanja za oslobaanje podataka Spreava se beskonano ekanje Prekida se transakcija i oslobaa svoja zakljuavanja (moda blokira

    ostale) Transakcija se ponavlja

    itanje prljavih podataka Kada se ne zahteva 100% aurnost podataka Npr. prosena vrednost stanja svih rauna Smanjuje se optereenje SUBP

    Predavanja 39

  • Transakcije

    Tehnike programiranja Smanjiti vreme ekanja nakon zakljuavanja Odlaganje sekvenci auriranja do pred kraj transakcije

    Odloena (batch) obrada Nije potrebna interakcija sa korisnicima Periodino izvravanje naredbe COMMIT

    Da bi se oslobodila nepotrebna zakljuavanja Administrator BP odluuje o vremenu startovanja, da bi smanjio

    optereenje sistema Ovakvi programi se startuju van radnog vremena

    Predavanja 40