Upload
nikola-milosavljevic
View
15
Download
0
Embed Size (px)
DESCRIPTION
Baze
Citation preview
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