Transakcije su temeljne operacije koje nam omogućuju izmjenu i dohvaćanje podataka. Međutim, kako bi se osigurao integritet baze podataka, važno je da se te transakcije izvršavaju na način koji održava dosljednost, ispravnost i pouzdanost čak i u slučaju kvarova/pogreški. Ovdje dolaze do izražaja svojstva KISELINE.
ACID je kratica za Atomicity Consistency Isolation and Durability.
Svojstva KISELINE:
Postoje četiri svojstva KISELINE
1. Atomičnost
Atomičnost znači da je transakcija sve ili ništa ili su sve njezine operacije uspjele ili nijedna nije primijenjena. Ako bilo koji dio ne uspije, cijela se transakcija vraća kako bi baza podataka bila dosljedna.
- Počiniti : Ako je transakcija uspješna, promjene se trajno primjenjuju.
- Prekid/Vraćanje : Ako transakcija ne uspije, sve promjene napravljene tijekom transakcije se odbacuju.
Primjer : Razmotrite sljedeću transakciju T koji se sastoji od T1 i T2 : Prijenos 0 s računa X na račun I .
ValentnostAko transakcija ne uspije nakon završetka T1, ali prije završetka T2, baza podataka bi ostala u nekonzistentnom stanju. Uz Atomicity, ako bilo koji dio transakcije ne uspije, cijeli se proces vraća u izvorno stanje i ne rade se djelomične promjene.
Dosljednost u transakcijama znači da baza podataka mora ostati u važećem stanju prije i nakon transakcije.
primitivni tipovi podataka u Javi
- Valjano stanje slijedi sva definirana ograničenja pravila i odnose (poput primarnih ključeva stranih ključeva itd.).
- Ako transakcija krši bilo koje od ovih pravila, ona se vraća kako bi se spriječili oštećeni ili nevažeći podaci.
- Ako transakcija oduzima novac s jednog računa, ali ga ne dodaje na drugi (u prijenosu), to krši dosljednost.
Primjer : Pretpostavimo da bi zbroj svih stanja u bankovnom sustavu uvijek trebao biti konstantan. Prije prijenosa ukupni saldo je 0. Nakon transakcije ukupni saldo trebao bi ostati 0. Ako transakcija ne uspije usred (kao što je ažuriranje jednog računa, ali ne i drugog), sustav bi trebao održati svoju dosljednost vraćanjem transakcije unatrag.
Ukupno prije pojavljivanja T = 500 + 200 = 700 .
Ukupno nakon pojave T = 400 + 300 = 700 .
Dosljednost3. Izolacija
Izolacija osigurava da se transakcije odvijaju neovisno bez utjecaja jedna na drugu. Promjene napravljene jednom transakcijom nisu vidljive drugima dok se ne potvrde.
Osigurava da je rezultat istodobnih transakcija isti kao da su pokrenute jedna za drugom čime se sprječavaju problemi poput:
- Dirty glasi: čitanje nepodvrgnutih podataka
- Neponovljivo glasi: promjene podataka između dva čitanja
- Fantom glasi: pojavljuju se novi redovi tijekom transakcije
Primjer : Razmotrimo dvije transakcije T i T''.
- X = 500 Y = 500
IzolacijaObrazloženje:
1. Transakcija T:
- T želi prijeći iz X u Y.
- T glasi I (vrijednost: 500) oduzima od X (novi X = 450) i dodaje Y (novi Y = 550).
2. Transakcija T'':
- t' ' počinje i čita X (500) i Y (500).
- Izračunava zbroj: 500 + 500 = 1000.
- U međuvremenu se vrijednosti X i Y mijenjaju na 450 odnosno 550.
- Dakle, točan zbroj trebao bi biti 450 + 550 = 1000.
- Izolacija osigurava da T'' ne čita zastarjele vrijednosti dok je druga transakcija (T) još u tijeku.
- Transakcije bi trebale biti neovisne i T'' bi trebao pristupiti konačnim vrijednostima tek nakon što se T obvezao.
- Time se izbjegavaju nedosljedni rezultati poput netočnog zbroja izračunatog pomoću T''.
4. Trajnost:
Trajnost osigurava da se nakon izvršenja transakcije njezine promjene trajno spremaju čak i ako sustav padne. Podaci se pohranjuju u trajnu memoriju tako da se baza podataka može oporaviti u svoje posljednje predano stanje bez gubitka podataka.
koji je napravio školu
Primjer : Nakon uspješnog prijenosa novca s računa A na račun B promjene se pohranjuju na disk. Čak i ako dođe do pada odmah nakon predaje, detalji prijenosa će i dalje biti netaknuti kada se sustav oporavi, čime se osigurava trajnost.
Kako ACID svojstva utječu na dizajn i rad DBMS-a
The Svojstva ACID-a u cjelini pružaju mehanizam za osiguravanje ispravnosti i konzistentnosti baze podataka na način da je svaka transakcija grupa operacija koje djeluju kao jedna jedinica i proizvode dosljedne rezultate, djeluju izolirano od drugih operacija, a ažuriranja koja napravi se trajno pohranjuju.
Svojstva ACID-a štite integritet podataka DBMS-a osiguravajući da se transakcije ili uspješno dovrše ili da ne ostavljaju tragove ako su prekinute. Oni sprječavaju da djelomična ažuriranja oštete podatke i osiguravaju da baza podataka prelazi samo između valjanih stanja.
2. Kontrola istodobnosti
ACID svojstva pružaju solidan okvir za upravljanje istodobnim transakcijama. Izolacija osigurava da transakcije ne ometaju jedna drugu sprječavajući anomalije u podacima kao što su izgubljena ažuriranja, privremena nedosljednost i nedodijeljeni podaci.
3. Oporavak i tolerancija na pogreške
Trajnost osigurava da se baza podataka može oporaviti u dosljedno stanje čak i ako se sustav sruši. Zahvaljujući svojstvima Atomicity i Durability ako transakcija ne uspije na pola puta, baza podataka ostaje u dosljednom stanju.
| Vlasništvo | Odgovornost za održavanje imovine |
|---|---|
| Valentnost | Upravitelj transakcija |
| Dosljednost | Programer aplikacija |
| Izolacija | Concurrency Control Manager |
| Izdržljivost | Oporavak |
Kritični slučajevi uporabe za ACID u bazama podataka
U modernim aplikacijama osiguravanje pouzdanosti i dosljednosti podataka je ključno. Svojstva KISELINE temeljna su u sektorima kao što su:
- Bankarstvo : Transakcije koje uključuju pologe ili isplate prijenosa novca moraju održavati strogu dosljednost i trajnost kako bi se spriječile pogreške i prijevare.
- E-trgovina : Osiguravanje ispravnog i dosljednog rukovanja popisom narudžbi i podataka o kupcima čak i tijekom velikog prometa zahtijeva usklađenost s ACID-om.
- zdravstvo : Rezultati testova i recepti iz zapisa pacijenata moraju se pridržavati strogih standarda integriteta i sigurnosti.