Upravljanje transakcijama u DBMS-u: Što su ACID svojstva?

Što je transakcija baze podataka?

A Transakcija baze podataka je logička jedinica obrade u DBMS-u koja uključuje jednu ili više operacija pristupa bazi podataka. Ukratko, transakcije baze podataka predstavljaju događaje u stvarnom svijetu bilo kojeg poduzeća.

Sve vrste operacija pristupa bazi podataka koje se drže između početnih i završnih transakcijskih izjava smatraju se jednom logičkom transakcijom u DBMS-u. Tijekom transakcije baza podataka je nedosljedna. Tek kada je baza podataka predana, stanje se mijenja iz jednog dosljednog stanja u drugo.

Transakcija baze podataka
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 KONSISTENTNOG STANJA u drugo
  • DBMS transakcije moraju biti atomske, dosljedne, 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 kojem se pristupa. Istodobno ga koriste mnogi korisnici i procesi. Na primjer, bankarski sustav, željeznički i zračni sustavi rezervacija, nadzor tržišta dionica, zalihe supermarketa i blagajne, itd.

Neupravljanje istodobnim pristupom može stvoriti probleme kao što su:

  • Kvar hardvera i pad sustava
  • Istodobno izvršavanje iste transakcije, zastoj, ili spor rad

Stanja transakcija

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

Država Vrste transakcija
Aktivno stanje Transakcija ulazi u aktivno stanje kada započne proces izvršenja. Tijekom ovog stanja mogu se izvoditi operacije čitanja ili pisanja.
Djelomično predano Transakcija prelazi u djelomično odobreno stanje nakon završetka transakcije.
Posvećena država Kada je transakcija predana stanju, ona je već uspješno dovršila svoje izvršenje. Štoviše, sve njegove promjene trajno se bilježe u bazi podataka.
Propala država Transakcija se smatra neuspješnom kada bilo koja od provjera ne uspije ili ako je transakcija prekinuta dok je u aktivnom stanju.
Raskinuto stanje Stanje transakcije doseže prekinuto stanje kada se određene transakcije koje napuštaju sustav ne mogu ponovno pokrenuti.
Dijagram prijelaza stanja
Dijagram prijelaza stanja za transakciju baze podataka

Proučimo a dijagram prijelaza stanja koji naglašava kako se transakcija kreće između tih različitih stanja.

  1. Nakon što transakcija navede izvršenje, ona postaje aktivna. Može izdati operaciju READ ili WRITE.
  2. Nakon završetka operacija READ i WRITE, transakcije postaju djelomično predane.
  3. Zatim, neki protokoli oporavka moraju osigurati da kvar sustava neće rezultirati nemogućnošću trajnog bilježenja promjena u transakciji. Ako je ova provjera uspješna, transakcija se obvezuje i ulazi u predano stanje.
  4. Ako je provjera neuspješna, transakcija prelazi u stanje Neuspjelo.
  5. Ako se transakcija prekine dok je u aktivnom stanju, prelazi u neuspjelo stanje. Transakciju treba vratiti kako bi se poništio učinak njenih 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 transakcije. ACID u DBMS-u je skraćenica 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: Transakciju treba izvršiti odvojeno od drugih transakcija (bez zaključavanja). Tijekom istovremenog izvršavanja transakcija, međurezultati transakcija iz istovremeno izvršenih transakcija ne bi trebali biti dostupni jedni drugima. (Razina 0,1,2,3)
  • Trajnost:· Nakon uspješnog završetka transakcije, promjene u bazi podataka trebale bi postojati. Čak iu slučaju kvarova sustava.

Svojstvo ACID u DBMS-u s primjerom

Ispod 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 predaju zajedno, nema jamstva 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

  • Nedistribuirani vs. distribuirani
  • Kompenzacijski poslovi
  • Vrijeme transakcija
  • On-line nasuprot seriji

Na temelju radnji

  • Dvokorak
  • Ograničen
  • Akcijski model

Na temelju strukture

  • Ravne ili jednostavne transakcije: Sastoje se od niza primitivnih operacija koje se izvode između početnih i završnih operacija.
  • Ugniježđene transakcije: Transakcija koja sadrži druge transakcije.
  • Workflow

Što je raspored?

Raspored je proces koji stvara jednu grupu od više paralelnih transakcija i izvršava ih jednu po jednu. Trebao bi sačuvati redoslijed u kojem se upute pojavljuju u svakoj transakciji. Ako se dvije transakcije izvode u isto vrijeme, 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 izvođenje u bazi podataka je neizbježno. Ali, paralelno izvršenje je dopušteno kada postoji odnos ekvivalencije među transakcijama koje se istovremeno izvršavaju. Ova ekvivalencija ima 3 vrste.

EKVIVALENTNOST REZULTATA:

Ako dva rasporeda prikazuju isti rezultat nakon izvršenja, to se naziva raspored ekvivalentan rezultatu. Oni mogu ponuditi isti rezultat za neku vrijednost i različite rezultate za drugi skup vrijednosti. Na primjer, jedna transakcija ažurira količinu proizvoda, dok druga ažurira podatke o kupcu.

Prikaz ekvivalencije

Prikaz ekvivalencije događa se kada transakcija u oba rasporeda izvodi sličnu radnju. Na primjer, jedna transakcija umeće pojedinosti o proizvodu u tablicu proizvoda, dok druga transakcija umeće pojedinosti o proizvodu u arhivsku tablicu. Transakcija je ista, ali su tablice različite.

KONFLIKT Ekvivalencija

U ovom slučaju, dvije transakcije ažuriraju/pregledavaju isti skup podataka. Postoji sukob među transakcijama jer će redoslijed izvršenja utjecati na izlaz.

Što je serijalizabilnost?

Serializabilnost je proces traženja paralelnog rasporeda čiji je izlaz jednak serijskom rasporedu gdje se transakcije izvršavaju jedna za drugom. Ovisno o vrsti rasporeda, postoje dvije vrste serijalizacije:

  • Sukob
  • Pogled

Rezime

  • Upravljanje transakcijama je logična jedinica obrade u DBMS-u koja uključuje jednu ili više operacija pristupa bazi podataka
  • Transakcija je programska jedinica čije izvršenje može ali ne mora promijeniti sadržaj baze podataka.
  • Neupravljanje istodobnim pristupom može stvoriti probleme poput kvara hardvera i pada sustava.
  • Aktivno, djelomično odobreno, odobreno, neuspjelo i prekinuto važna su stanja transakcije.
  • Puni oblik ACID Properties u DBMS is Atomcjelovitost, dosljednost, izolacija i trajnost
  • Tri tipa DBMS transakcija su Base on Application Areas, Action i Structure.
  • Raspored je proces koji stvara jednu grupu od više paralelnih transakcija i izvršava ih jednu po jednu.
  • Serializabilnost je proces traženja paralelnog rasporeda čiji je izlaz jednak serijskom rasporedu gdje se transakcije izvršavaju jedna za drugom.