Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija

Baze podataka: transakcije i očuvanje integriteta BP, Skripte od Elektronika

baze - baze

Tipologija: Skripte

2014/2015

Učitan datuma 09.10.2015.

nikolamnp
nikolamnp 🇸🇷

1 dokument

1 / 40

Srodni dokumenti


Delimični pregled teksta

Preuzmite Baze podataka: transakcije i očuvanje integriteta BP i više Skripte u PDF od Elektronika samo na Docsity! a OSinčfgija Baze podataka Transakcije i očuvanje integriteta BP • BP – pravi efekti kada se radi u mrežnom okruženju – BP – zajednički resurs koga istovremeno (konkurentno) koristi veći broj programa • Neželjeni efekti (opasnosti): – Više korisnika pristupa istim podacima (čitanje i izmena) – Otkaz sistema u toku izvršenja programa • Posledica: nekonzistentno stanje BP • Sprečavanje štetnih posledica – SUBP koristi tehnike zaključavanja podataka (Data Locks) • Podaci se zaključavaju samo kod izmena, upit ne sme da blokira druge korisnike Predavanja 2 Transakcije • Česti slučajevi: – Jedan program se izvršava više puta istovremeno nad BP • Npr: Podizanje gotovine – Različiti programi se izvršavaju istovremeno nad istim podacima u BP • Npr. Plaćanje i uplata na isti račun • Osnovni cilj BP je da omogući efikasnu obradu transakcija Predavanja 5 Transakcije BP • Transakcija – Niz operacija nad BP koji odgovara jednoj logičkoj jedinici posla u realnom sistemu – Osnovna programska jedinica kojom se obezbeđuje očuvanje konzistentnosti baze – Zahteva se da transakcija bude atomska (nedeljiva) i da sve instrukcije jedne transakcije moraju biti izvršene ili ni jedna • Skup aktivnosti nad bazom podataka koje se izvršavaju po principu „sve ili ništa“, tj. ili su sve aktivnosti uspešno obavljene ili je baza podataka ostala nepromenjena Predavanja 6 Transakcije • Primer: Podizanje novca sa računa • Kada banka primi zahtev, transakcija obuhvata sledeće korake: 1. Provera bankarske kartice 2. Provera računa (stanje) 3. Ako je stanje ispod minimuma odbija se zahtev, u suprotnom se nastavlja 4. Smanjuje se stanje na računu za zahtevani iznos 5. Generiše se izveštaj o transakciji 6. Isplaćuje se novac i daje izveštaj o transakciji • Transakcija mora da kompletira sve korake, inače bi jedna od strana u transakciji imala štetu Predavanja 7 Transakcije • 2 Problem: gubljenje rezultata ažuriranja – Paralelno se izvršavaju dve transakcije – Transakcija 1 podiže X dinara, a transakcija 2 ulaže Y dinara na isti račun A – Ažuriranje koje izvršila jedna transakcija može da se prebriše ažuriranjem koje izvrši druga transakcija Predavanja 10 Transakcije – Ažuriranje koje je izvršila transakcija T1 u t5, prebriše se ažuriranjem koje izvrši transakcija T2 u trenutku t6 Predavanja 11 Transakcija 1 read(A); A:=A-X; write(A); vreme t1 t2 t3 t4 t5 Transakcija 2 read(A); A:=A+Y; write(A);t6 Transakcije • Problem: nekorektna analiza podataka – Skup problema sledećeg tipa: • Vrši se sračunavanje 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 ažurira iste podatke iz BP – Moguće greške kod sumiranja: • Neki podaci se uzimaju pre ažuriranja, a neki posle – Posledica: nekorektno izračunata suma Predavanja 12 Transakcije • Izolacija (Isolation) – Kada se dve ili više transakcija izvršavaju istovremeno, njihovi efekti moraju biti međusobno izolovani. – Efekti koje izazovu transakcije koje se obavljaju istovremeno moraju biti jednaki efektima nekog njihovog serijskog (jedna posle druge) izvršenja. – Zbog povećanja paralelizma u obradi transakcija dozvoljavaju se različiti nivoi izolovanosti. • Trajnost (Durability) – Kada se transakcija završi (potvrđene promene) njeni efekti ne mogu biti izgubljeni, čak i ako se neposredno po njenom okončanju desi neki ozbiljan otkaz sistema. Ako se desi nasilno prekidanje, transakcija će biti u stanju pre. Predavanja 15 Osobine transakcija • Obezbeđenje ACID osobina transakcije – Transakcija počinje sa BEGIN TRANSACTION – Završava se sa COMMIT – potvrđuju se promene u BP ako su sve instrukcije uspešno izvršene – Završava se sa ROLLBACK – ako sve instrukcije nisu uspešno završene Predavanja 16 Transakcije • ROLLBACK instrukcija može biti i implicitna – SUBP je inicira iz bilo kog razloga, ako dođe do neplaniranog završetka transakcije (overflow, deljenje sa nulom itd.) • Jedan program može predstavljati kolekciju transakcija, ali je najčešće jedan program jedna transakcija • Transakcije mogu biti ugnježdene – COMMIT od najnižeg do najvišeg nivoa – ROLLBACK – dovoljno da se pojavi samo na jednom mestu, poništavaju se promene svih transakcija Predavanja 17 Transakcije Implementacija COMMIT i ROLLBACK • SUBP poseduje i održava specijalnu MEM jedinicu (na spoljnoj memoriji) – LOG ili ŽURNAL (dnevnik transakcija) – Zapisuju se sve promene koje se dešavaju u BP • Za svaku transakciju i za svaki objekat BP koji je ona ažurirala čuva se: – Vrednosti pre ažuriranja (before-image) – Vrednosti posle ažuriranja (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 pročitati vrednosti posle sa log fajla – konzistentno stanje • Oporavak BP – RECOVERY – proces vraćanja BP u korektno stanje Predavanja 21 Oporavak BP • Uzroci otkaza: – Greške u programiranju, – Greške u OS, – Nestanak napajanja, sabotaža, ... • Proces oporavka se zasniva na redudansi podataka (postojanje rezervnih kopija) – Na disku, traci i sl. • Otkaz sistema: – Oštećena BP – rekonstriše se ispravno stanje na osnovu poslednje kopije – Nekonzistentno stanje – poništavaju se nekonzistentne promene, a transakcije se ponavljaju Predavanja 22 Konkurentna obrada transakcija • Serijsko i paralelno izvršavanje transakcija Predavanja 25 Transakcija1 Transakcija2 Transakcija3 Transakcija1 Transakcija2 Transakcija3 vreme Istovremeno izvršavanje sve tri transakcije Serijsko izvršavanje transakcija Paralelno izvršavanje transakcija Transakcioni serveri • Sistemi obrade transakcija (Transaction Processing - TP) – transakcioni serveri – Obezbeđuju šemu nadzora i kontrolu izvršenja transakcionih programa – Obezbeđuju API – mehanizam komunikacije programa i TP servera • Olakšavaju razvoj i izvršavanje aplikativne logike – logičke komponente poslovnog procesa • Korisni su za: – Kritične aplikacije sa velikim brojem konkurentnih korisnika – Obezbeđuju ACID karakteristike za različite (heterogene) BP Predavanja 26 Transakcioni serveri • Idealni su kod izgradnje distribuiranih aplikacija visokih performansi u heterogenom okruženju • Podrška za aplikacije tipa: – E-trgovina – Aplikacije za podršku poslovanju itd. • Nezavisnost od platforme – Hardver, komunikacioni sistem, okruženje BP Predavanja 27 Protokoli zaključavanja • Vrste zaključavanja: – Ekskluzivno (exclusive lock ili write lock) – XL • Kada se izvršava: INSERT, UPDATE, DELETE – Deljivo (shared lock ili read lock) – SL • Kada se izvršava SELECT 1. Eksluzivno zaključavanje – XL – Ako jedna transakcija postavi XL katanac na objekat BP: • Ne može ni jedna druga transakcija da postavi katanac, • Ne može se postaviti ni jedan drugi katanac Predavanja 30 Protokoli zaključavanja 2. Deljivo zaključavanje – SL – Ako jedna transakcija postavi SL katanac na objekat BP: • Druga transakcija može da postavi SL na isti objekat • Ni jedna druga ne može da postavi XL na taj objekat Predavanja 31 Protokoli zaključavanja • Protokol zaključavanja: 1. Transakcija koja čita neki objekat BP (npr. Neku n-torku) mora da postavi SL na taj objekat 2. Transakcija koja želi da ažurira 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 čekanja 4. Transakcija oslobađa XL i SL na kraju, sa COMMIT ili ROLLBACK naredbom • Oba katanca: XL i SL se postavljaju implicitno Predavanja 32 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 • Poželjno je da transakcije kratko traju • Dobra transakcija dozvoljava rad ostalim korisnicima dok traje obrada • Zaključavanje podataka na različitim nivoima: (kolona, zapis, tabela, više tabela, BP) • Nivo zaključavanja – granularnost • Granularnost zavisi i od mogućnosti DBMS-a Predavanja 36 Transakcije Predavanja 37 kolona zapis tabela BP K on ku re nt ni p ris tu p Granularnost
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved