SQL transakcija je niz jedne ili više SQL operacija (npr.INSERT UPDATE DELETE) izvedeno kao jedna radna jedinica. Transakcije osiguravaju da sve operacije uspiju ili da nijedna nije primijenjena održavajući cjelovitost podataka.
Ključna svojstva SQL transakcija: ACID
Integritet SQL transakcija reguliran je ACID svojstvima koja jamče pouzdane transakcije baze podataka. Ova četiri svojstva rade zajedno kako bi jamčila da baza podataka ostaje dosljedna i pouzdana.
- Valentnost: Ishod transakcije može biti potpuno uspješan ili potpuno neuspješan. Cijela se transakcija mora vratiti ako jedan njezin dio ne uspije.
- Dosljednost: Transakcije održavaju ograničenja integriteta pomicanjem baze podataka iz jednog važećeg stanja u drugo.
- Izolacija: Konkurentne transakcije su izolirane jedna od druge čime se osigurava točnost podataka.
- Izdržljivost: Nakon što se transakcija izvrši, njezine izmjene ostaju na snazi čak i u slučaju kvara sustava.
SQL naredbe za kontrolu transakcija
U SQL-u naredbe za kontrolu transakcija upravljaju izvršavanje SQL operacija koje osiguravaju cjelovitost i pouzdanost transakcija baze podataka. Ove naredbe pomažu upravljati početnim uvrštavanjem i vraćanjem promjena napravljenih u bazi podataka. Ispod su ključne naredbe za kontrolu transakcija u SQL-u objašnjene sintaksom i primjerima za svaku.
1. Naredba ZAPOČNI TRANSAKCIJU
TheBEGIN TRANSACTIONnaredba označava početak nove transakcije. Sve SQL izjave koje slijede ovu naredbu bit će dio iste transakcije sve dok aCOMMIT ili ROLLBACK se susreće. Ova naredba ne čini nikakve promjene u bazi podataka, ona samo pokreće transakciju.
Sintaksa:
BEGIN TRANSACTION transaction_name ;Primjer SQL transakcije sa scenarijem bankovnog prijenosa
Pogledajmo primjer bankovnog prijenosa između dva računa. Ovaj primjer pokazuje korištenje višestrukih upita u jednoj transakciji.
BEGIN TRANSACTION;
-- Deduct 0 from Account A
UPDATE Accounts
SET Balance = Balance - 150
WHERE AccountID = 'A';
-- Add 0 to Account B
UPDATE Accounts
SET Balance = Balance + 150
WHERE AccountID = 'B';
-- Commit the transaction if both operations succeed
COMMIT;
Ako se pojavi bilo kakva pogreška kao što je problem sUPDATEupit koji možete koristitiROLLBACKza poništavanje svih promjena napravljenih tijekom transakcije:
ROLLBACK;To osigurava da sustav ne završi u nekonzistentnom stanju kao što je oduzimanje novca s jednog računa bez dodavanja na drugi.
BEGIN TRANSACTION TransferFunds;2. Naredba COMMIT
TheCOMMITnaredba se koristi za spremanje svih promjena napravljenih tijekom trenutne transakcije u bazu podataka. Nakon što se transakcija izvrši, promjene su trajne.
Sintaksa:
COMMIT;Primjer
Evo uzorkaStudenttablica koja će se koristiti za izvođenje operacija u ovom primjeru. Ova tablica sadrži osnovne pojedinosti o učeniku kao što su ID ime dob i druge relevantne informacije kojima će se manipulirati korištenjem raznih naredbe za kontrolu transakcija.
Studentski stolSlijedi primjer koji bi izbrisao one zapise iz tablice koji imaju starost = 20 i zatim OBAVEZIO promjene u bazi podataka.
DELETE FROM Student WHERE AGE = 20;
COMMIT;
Izlaz
izlaz3. Naredba ROLLBACK
TheROLLBACKnaredba se koristi za poništavanje svih promjena napravljenih u trenutnoj transakciji. Koristi se kada se pojavi greška ili kada se željene promjene ne mogu izvršiti. Baza podataka će se vratiti u stanje u kojem je bila prije BEGIN TRANSACTION je izvršena.
Sintaksa:
ROLLBACK;Primjer
Obrišite one zapise iz tablice koji imaju starost = 20 i zatim ROLLBACK promjene u bazi podataka. U ovom slučaju DELETE operacija je poništena i promjene u bazi podataka nisu spremljene.
DELETE FROM Student WHERE AGE = 20;
ROLLBACK;
Izlaz:
izlaz4. Naredba SAVEPOINT
ASAVEPOINTkoristi se za stvaranje a kontrolna točka unutar transakcije. Možemo se vratiti na određenoSAVEPOINTumjesto vraćanja cijele transakcije. To nam omogućuje da poništimo dio transakcije umjesto cijelu transakciju.
Sintaksa:
SAVEPOINT SAVEPOINT_NAME;Primjer
SAVEPOINT SP1;
//Savepoint created.
DELETE FROM Student WHERE AGE = 20;
//deleted
SAVEPOINT SP2;
//Savepoint created.
Izlaz:
izlazObrazloženje:
Iz gornjeg primjera Uzorak tablice1 Izbrišite one zapise iz tablice koji imaju starost = 20, a zatim VRATITE promjene u bazi podataka zadržavajući točke spremanja. Ovdje je SP1 prva SAVEPOINT stvorena prije brisanja. U ovom primjeru došlo je do jednog brisanja. Nakon brisanja ponovno se stvara SAVEPOINT SP2.
5. VRAT NA TOČKU SPREMANJA
TheROLLBACK TO SAVEPOINTnaredba nam omogućuje vraćanje transakcije na određenu točku spremanja učinkovito poništavajući promjene napravljene nakon te točke.
Sintaksa:
ROLLBACK TO SAVEPOINT SAVEPOINT_NAME;Primjer
Do brisanja je došlo, pretpostavimo da smo se predomislili i odlučili VRATITI NA SAVETOČKU koju smo identificirali kao SP1 koja je prije brisanja. Dakle, u ovom slučajuDELETEoperacija se poništava i transakcija se vraća u stanje u kojem je bila u trenutkuSP1točka spremanja.
ROLLBACK TO SP1;
//Rollback completed
Izlaz:
izlaz6. RELEASE SAVEPOINT naredba
Ova se naredba koristi za uklanjanje SAVEPOINT-a koji smo stvorili. Nakon što je SAVEPOINT otpušten, više ne možemo koristiti ROLLBACK naredba za poništavanje transakcija izvršenih od posljednjeg SAVEPOINT-a. Koristi se za pokretanje transakcije baze podataka i za određivanje karakteristika transakcije koja slijedi.
Sintaksa:
RELEASE SAVEPOINT SAVEPOINT_NAME;Primjer
Nakon točke spremanjaSP2je pušten više se ne možemo vratiti na njega.
RELEASE SAVEPOINT SP2; -- Release the second savepoint.Zašto koristiti transakcije u bankarstvu?
U ovom slučaju bez transakcije riskirate scenarije u kojima se novac oduzima s jednog računa, ali se ne dodaje na drugi, ostavljajući sustav u nekonzistentnom stanju. Transakcije osiguravaju izbjegavanje takvih problema jamčeći da obje operacije uspiju ili ne uspiju zajedno.
Vrste SQL transakcija
Postoje različite vrste transakcija na temelju njihove prirode i specifičnih operacija koje obavljaju:
- Čitajte transakcije : Koristi se samo za čitanje podataka koji se obično koriste
SELECTupite. - Pišite transakcije : Oni uključuju modificiranje podataka u bazi podataka s
INSERTUPDATEiliDELETEoperacije. - Distribuirane transakcije : Ove transakcije obuhvaćaju više baza podataka i osiguravaju dosljednost među njima.
- Implicitne transakcije : Automatski pokreće SQL Server za određene operacije.
- Eksplicitne transakcije : Ručno kontrolirane transakcije gdje korisnik započinje i završava transakciju pomoću
BEGIN TRANSACTIONCOMMITiROLLBACK.
Praćenje i optimiziranje SQL transakcija
Za održavanje performansi i sprječavanje problema razmotrite sljedeće tehnike:
java programi
1. Brave za monitor : Pratite ponašanje zaključavanja i prilagodite upite kako biste smanjili sukobe zaključavanja.
2. Ograničite opseg transakcije : Ograničite broj redaka ili zapisa na koje utječe transakcija kako biste ubrzali obradu.
3. Koristite skupnu obradu : Ako rukujete velikim količinama podataka, razdvojite operacije na manje transakcije ili serije kako biste izbjegli preopterećenje sustava.
Predloženi kviz Uredi kviz 5 pitanjaKoji od sljedećih scenarija najbolje opisuje kršenje svojstva 'Izolacija' u ACID-u?
- A
Transakcija ostavlja bazu podataka u stanju koje krši ograničenje primarnog ključa.
- B
Dvije transakcije koje se izvode istovremeno čitaju i pišu iste podatke što dovodi do nedosljednih rezultata.
- C
Korisnik uspješno ažurira zapis, ali pad sustava briše promjenu.
top 10 hentai
- D
Transakcija ne uspije usred puta i sve se njezine promjene poništavaju.
Ovo je klasičan primjer kršenja izolacije gdje je međustanje jedne transakcije vidljivo drugoj.
U bankarskoj aplikaciji prijenos sredstava uključuje terećenje jednog računa i odobravanje drugog. Koje ACID svojstvo osigurava da se obje operacije dovrše ili da nijedna?
- A
Izolacija
- B
Valentnost
- C
Izdržljivost
- D
Dosljednost
Atomicity osigurava da su sve operacije unutar transakcije uspješno dovršene; inače se cijela transakcija vraća unatrag.
Transakcija se izvršava i izdaje se 'COMMIT'. Odmah nakon nestanka struje. Koje ACID svojstvo jamči da su promjene napravljene transakcijom i dalje prisutne nakon ponovnog pokretanja sustava?
- A
Dosljednost
- B
Valentnost
- C
Izdržljivost
- D
Izolacija
Trajnost je svojstvo koje osigurava da će transakcija jednom izvršena ostati takva čak i u slučaju gubitka napajanja ili pada sustava.
Koja je primarna svrha naredbe 'SAVEPOINT' u transakciji?
- A
Obavezati dio transakcije.
- B
Za označavanje točke u transakciji na koju se kasnije možete vratiti.
- C
Za trajno spremanje stanja transakcije.
- D
Završiti transakciju i učiniti sve promjene trajnim.
'SAVEPOINT' omogućuje djelomično vraćanje unutar transakcije.
Razmotrite sljedeću transakciju: 'POČNI TRANSAKCIJU; INSERT ...; TOČKA SPREMA A; AŽURIRANJE ...; TOČKA SPREMA B; IZBRIŠI ...; VRAT NA TOČKU SPREMA A;' Kakvo je stanje transakcije nakon naredbe 'ROLLBACK'?
- A
Cijela transakcija je vraćena.
- B
Poništava se samo 'DELETE'.
- C
Dolazi do pogreške jer se ne možete vratiti na točku spremanja koja nije posljednja.
- D
'INSERT' je spremljen, ali 'UPDATE' i 'DELETE' su poništeni.
Vraćanje na 'TOČKU SPREMA A' poništava sve promjene napravljene nakon te točke spremanja, a to su 'AŽURIRANJE' i 'BRISANJE'.
Kviz uspješno završen Vaš rezultat: 2/5Točnost: 0%Prijavite se za pregled objašnjenja 1/5 1/5 < Previous Dalje >