Upravljanje transakcijama u DBMS-u: stanja, tipovi i ACID

โšก Pametni saลพetak

Upravljanje transakcijama baze podataka tretira jednu ili viลกe operacija baze podataka kao jednu logiฤku jedinicu koja premjeลกta bazu podataka iz jednog konzistentnog stanja u drugo. Oslanja se na ACID svojstva, definirana stanja transakcija i rasporede kako bi se odrลพao ispravan istodobni pristup.

  • ๐Ÿ” Osnovna jedinica: Transakcija grupira povezane operacije ฤitanja i pisanja tako da uspiju ili ne uspiju zajedno, nikada na pola puta.
  • ๐Ÿงช Svojstva KISELINE: AtomLiฤnost, konzistentnost, izolacija i trajnost jamฤe ispravne rezultate ฤak i u sluฤaju kvara ili konkurentnosti.
  • ๐Ÿšฆ Stanja transakcije: Aktivna, djelomiฤno potvrฤ‘ena, potvrฤ‘ena, neuspjeลกna i prekinuta opisuju ลพivotni ciklus transakcije.
  • ๐Ÿ‘ฅ Zaลกto istodobnost: Baza podataka je dijeljena, pa se mnogo transakcija izvrลกava istovremeno i ne smiju meฤ‘usobno oลกtetiti podatke.
  • ๐Ÿ“‹ Rasporedi: Raspored odreฤ‘uje redoslijed operacija paralelnih transakcija uz oฤuvanje unutarnjeg slijeda svake transakcije.
  • ๐Ÿ”— Serijalizabilnost: Konkurentni raspored je ispravan kada je njegov rezultat jednak nekom serijskom izvrลกavanju, procijenjenom konfliktom ili ekvivalencijom prikaza.
  • โ†ฉ๏ธ Oporavak: Neuspjeลกna transakcija se poniลกtava tako da njezini djelomiฤni zapisi nikada ne doฤ‘u do potvrฤ‘ene baze podataka.

Upravljanje transakcijama u DBMS-u

ล to je transakcija baze podataka?

A Transakcija baze podataka je logiฤka jedinica obrade u DBMS-u koja podrazumijeva jednu ili viลกe operacija pristupa bazi podataka. Ukratko, transakcije baze podataka predstavljaju stvarne dogaฤ‘aje bilo kojeg poduzeฤ‡a.

Sve vrste operacija pristupa bazi podataka koje se drลพe izmeฤ‘u poฤetne i zavrลกne naredbe transakcije smatraju se jednom logiฤkom transakcijom u DBMS-u. Tijekom transakcije baza podataka je nekonzistentna. Tek nakon ลกto je transakcija potvrฤ‘ena, stanje se mijenja iz jednog konzistentnog stanja u drugo.

Transakcija baze podataka koja se kreฤ‡e izmeฤ‘u konzistentnih stanja
Transakcija baze podataka

ฤŒinjenice o transakcijama baze podataka

  • Transakcija je programska jedinica ฤije izvrลกenje moลพe ali ne mora promijeniti sadrลพaj baze podataka.
  • Koncept transakcije u DBMS-u se izvodi kao jedna jedinica.
  • Ako operacije baze podataka ne aลพuriraju bazu podataka, veฤ‡ samo dohvaฤ‡aju podatke, ova vrsta transakcije naziva se transakcija samo za ฤitanje.
  • Uspjeลกna transakcija moลพe promijeniti bazu podataka iz jednog KONZISTENTNOG STANJA u drugo.
  • Transakcije DBMS-a moraju biti atomske, konzistentne, izolirane i trajne.
  • Ako je baza podataka prije transakcije bila u nedosljednom stanju, ostala bi u nedosljednom stanju i nakon transakcije.

Zaลกto vam je potrebna konkurentnost u transakcijama?

Baza podataka je zajedniฤki resurs. Koriste je mnogi korisnici i procesi istovremeno. Primjeri ukljuฤuju bankarske sustave, sustave rezervacija ลพeljeznica i avionskih karata, praฤ‡enje burze te inventuru i blagajne u supermarketima.

Neupravljanje istodobnim pristupom moลพe stvoriti probleme kao ลกto su:

  • Kvar hardvera i pad sustava.
  • Istodobno izvrลกavanje iste transakcije, zastoj, ili spore performanse.

Kontroliranje ovog zajedniฤkog pristupa je zadatak kontrola istodobnosti, koji koristi zakljuฤavanje i vremenske oznake za sigurno ispreplitanje transakcija. Prije toga, korisno je znati kroz koja stanja transakcija prolazi.

Stanja transakcija

Dolje su navedena razliฤita stanja koncepta transakcije u DBMS-u:

Drลพava Description
Aktivno stanje Transakcija ulazi u aktivno stanje kada zapoฤne proces izvrลกavanja. Tijekom ovog stanja mogu se izvoditi operacije ฤitanja ili pisanja.
Djelomiฤno predano Transakcija prelazi u djelomiฤno potvrฤ‘eno stanje nakon zavrลกetka transakcije.
Posveฤ‡ena drลพava Kada transakcija dostigne potvrฤ‘eno stanje, njezino izvrลกenje je uspjeลกno zavrลกeno i sve njezine promjene trajno se biljeลพe u bazu podataka.
Propala drลพava Transakcija se smatra neuspjelom kada bilo koja od provjera ne uspije ili ako je transakcija prekinuta dok je u aktivnom stanju.
Raskinuto stanje Stanje transakcije dostiลพe stanje zavrลกetka kada transakcija napusti sustav i ne moลพe se ponovno pokrenuti.

Dijagram prijelaza stanja za transakciju baze podataka

Prouฤimo jedan dijagram prijelaza stanja koji naglaลกava kako se transakcija kreฤ‡e izmeฤ‘u tih razliฤitih stanja.

  1. Nakon ลกto se transakcija zapoฤne izvrลกavati, ona postaje aktivna. Moลพe izdati operaciju ฤŒITANJA ili PISANJA.
  2. Nakon ลกto su operacije ฤŒITANJA i PISANJA zavrลกene, transakcija doseลพe djelomiฤno potvrฤ‘eno stanje.
  3. Nadalje, neki protokoli za oporavak moraju osigurati da kvar sustava neฤ‡e rezultirati nemoguฤ‡noลกฤ‡u trajnog biljeลพenja promjena transakcije. Ako ova provjera uspije, transakcija se potvrฤ‘uje i ulazi u potvrฤ‘eno stanje.
  4. Ako provjera ne uspije, transakcija prelazi u neuspjeลกno stanje.
  5. Ako se transakcija prekine dok je u aktivnom stanju, prelazi u neuspjeลกno stanje. Transakciju treba poniลกtiti kako bi se poniลกtio uฤinak njezinih operacija pisanja na bazu podataka.
  6. Prekinuto stanje odnosi se na transakciju koja napuลกta sustav.

ล to su ACID svojstva?

Svojstva KISELINE koriste se za odrลพavanje integriteta baze podataka tijekom obrade transakcija. ACID u DBMS-u je kratica za Atomiฤnost, Cupornost, Iutjeha, i Durabilnost.

  • Atomgrad: Transakcija je jedna jedinica operacije. Ili ga izvrลกite u cijelosti ili ga uopฤ‡e ne izvrลกite. Ne moลพe biti djelomiฤne ovrhe.
  • Dosljednost: Nakon ลกto se transakcija izvrลกi, trebala bi prijeฤ‡i iz jednog dosljednog stanja u drugo.
  • Izolacija: Transakcija bi se trebala izvrลกavati odvojeno od drugih transakcija. Tijekom istodobnog izvrลกavanja, meฤ‘urezultati istovremeno izvrลกenih transakcija ne bi smjeli biti dostupni jedni drugima.
  • Trajnost: Nakon uspjeลกnog zavrลกetka transakcije, promjene u bazi podataka trebale bi ostati saฤuvane, ฤak i u sluฤaju kvara sustava.

ACID svojstvo u DBMS-u s primjerom

U nastavku je primjer svojstva ACID u DBMS-u:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

Transakcija 1 prenosi 50 USD s raฤuna X na raฤun Y.

Transakcija 2 je kreditiranje svakog raฤuna s plaฤ‡anjem kamata od 10%.

Ako se obje transakcije poลกalju zajedno, ne postoji jamstvo da ฤ‡e se Transakcija 1 izvrลกiti prije Transakcije 2 ili obrnuto. Bez obzira na redoslijed, rezultat mora biti kao da se transakcije odvijaju serijski, jedna za drugom.

Vrste transakcija

Na temelju podruฤja primjene:

  • Nedistribuirano vs. distribuirano.
  • Kompenzacijske transakcije.
  • Vremenski okvir transakcije.
  • Online u odnosu na serijsko.

Na temelju radnji:

  • Dvostepeno.
  • Ograniฤen.
  • Model akcije.

Na temelju strukture:

  • Jednostavne ili ravne transakcije: sastoje se od niza primitivnih operacija izvrลกenih izmeฤ‘u poฤetne i zavrลกne operacije.
  • Ugnijeลพฤ‘ene transakcije: transakcija koja sadrลพi druge transakcije.
  • Tijek rada.

ล to je raspored?

Raspored je proces stvaranja jedne grupe viลกe paralelnih transakcija i njihovog izvrลกavanja jedne po jedne. Trebao bi oฤuvati redoslijed kojim se instrukcije pojavljuju u svakoj transakciji. Ako se dvije transakcije izvrลกavaju istovremeno, rezultat jedne transakcije moลพe utjecati na izlaz druge.

Primjer

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

Ako se Transakcija 2 izvrลกi prije Transakcije 1, oฤitat ฤ‡e se zastarjeli podaci o koliฤini proizvoda. Stoga su potrebni rasporedi.

Paralelno izvrลกavanje u bazi podataka je neizbjeลพno. Ali paralelno izvrลกavanje je dopuลกteno kada postoji odnos ekvivalencije meฤ‘u transakcijama koje se istovremeno izvrลกavaju. Ta ekvivalencija je tri vrste.

Ekvivalencija rezultata: Ako dva rasporeda prikazuju isti rezultat nakon izvrลกenja, to se naziva raspored ekvivalentnog rezultata. Mogu ponuditi isti rezultat za neke vrijednosti i razliฤite rezultate za drugi skup vrijednosti. Na primjer, jedna transakcija aลพurira koliฤinu proizvoda, dok druga aลพurira podatke o kupcu.

Prikaลพi ekvivalenciju: Ekvivalencija prikaza dogaฤ‘a se kada transakcije u oba rasporeda izvode sliฤnu radnju. Na primjer, jedna transakcija ubacuje detalje o proizvodu u tablicu proizvoda, dok druga transakcija ubacuje detalje o proizvodu u arhivsku tablicu. Transakcija je ista, ali su tablice razliฤite.

Ekvivalencija sukoba: U ovom sluฤaju, dvije transakcije aลพuriraju ili pregledavaju isti skup podataka. Postoji sukob meฤ‘u transakcijama jer ฤ‡e redoslijed izvrลกavanja utjecati na izlaz.

ล to je serijalizabilnost?

Serijalizabilnost je proces traลพenja konkurentnog rasporeda ฤiji je izlaz jednak serijskom rasporedu gdje se transakcije izvrลกavaju jedna za drugom. Ovisno o vrsti rasporeda, postoje dvije vrste serijalizabilnosti:

  • Serijalizabilnost konflikta.
  • Prikaลพi serijalizabilnost.

Njih dvoje se razlikuju po tome koliko strogo procjenjuju ekvivalenciju, kao ลกto je saลพeto u nastavku.

Aspekt Serijalizabilnost konflikta Prikaลพi serijalizabilnost
Temelj Redoslijed sukobljenih operacija Odnosi ฤitanja iz i konaฤnog pisanja
test Graf prioriteta mora biti acikliฤan Prikaz ekvivalentnosti serijskog rasporeda
Strogost Stroลพi, podskup ล ire, ukljuฤuje pisanje na slijepo
Troลกak provjere Efikasan Raฤunalno teลกko

Svaki raspored koji se moลพe serijalizirati za konflikt je takoฤ‘er serijalizirajuฤ‡i za pogled, ali ne i obrnuto, zbog ฤega je serijalizabilnost konflikta praktiฤni test koji primjenjuje DBMS.

Pitanja i odgovori

Potvrdi (Commit) trajno pohranjuje promjene transakcije u bazi podataka. Poniลกtavanje (Rollback) poniลกtava svaku promjenu od poฤetka transakcije, vraฤ‡ajuฤ‡i bazu podataka u konzistentno stanje koje je postojalo prije njenog poฤetka.

Atomiฤnost. Ako se pad dogodi usred izvrลกavanja, atomiฤnost osigurava da se djelomiฤni rad odbaci, pa se transakcija tretira kao da se nikada nije ni izvrลกila. Trajnost zatim ลกtiti potvrฤ‘eni rad nakon oporavka.

Umjetna inteligencija analizira ฤekanja zakljuฤavanja i grafove zastoja kako bi uoฤila transakcije koje blokiraju druge, a zatim preporuฤuje razinu izolacije ili promjenu indeksa koja smanjuje sukob bez slabljenja ispravnosti.

Do odreฤ‘ene mjere. Uฤenjem obrazaca zahtjeva za zakljuฤavanje koji su prethodili proลกlim zastojima, model moลพe rano oznaฤiti riziฤnu kombinaciju transakcija, omoguฤ‡ujuฤ‡i rasporeฤ‘ivaฤu da odgodi ili promijeni redoslijed prije formiranja ciklusa.

Serijski raspored izvrลกava jednu transakciju u potpunosti prije nego ลกto zapoฤne sljedeฤ‡a, tako da ispreplitanje ne moลพe oลกtetiti podatke. Spor je, zbog ฤega je cilj istovremeni raspored koji se moลพe serijalizirati prema njemu.

Saลพmite ovu objavu uz: