Transaktioner og ACID-egenskaber
It A · STX · A-niveau · Databaser og datamodellering
💻 Transaktioner og ACID-egenskaber
Transaktion (database) = en serie SQL-operationer der udføres som ÉN logisk enhed — enten ALLE eller INGEN. Klassisk eksempel: pengeoverførsel mellem 2 konti. Træk 100 kr fra konto A. Læg 100 kr til konto B. Hvis det første lykkes men det andet fejler → 100 kr forsvundet! Transaktioner sikrer at BÅDE eller INGEN sker.
SQL-syntaks: BEGIN TRANSACTION; ... ; COMMIT; (eller ROLLBACK hvis fejl).
ACID-egenskaberne (Härder + Reuter 1983):
1.
Atomicity (Atomicitet) — transaktionen er udelelig. Hvis én operation fejler, ROLLBACK alt.
2.
Consistency (Konsistens) — databasens INTEGRITETSREGLER bevares. Fx: konto-saldo må ikke være negativ.
3.
Isolation (Isolering) — samtidige transaktioner forstyrrer ikke hinanden.
Isolation levels (svagest→stærkest): READ UNCOMMITTED (dirty reads tilladt), READ COMMITTED, REPEATABLE READ, SERIALIZABLE. Højere isolation = højere korrekthed men lavere parallelisme.
4.
Durability (Varighed) — efter COMMIT er data PERMANENT gemt (overlever power loss). Implementeres via transaktions-log + write-ahead logging (WAL).
Concurrency-problemer: Dirty read (læser ucommitted data), Non-repeatable read (samme query 2 gange = forskellige resultater), Phantom read (nye rækker dukker op).
Lock-mekanismer: shared locks (read), exclusive locks (write), deadlocks (2 transaktioner venter på hinanden).
Distribuerede transaktioner: 2-phase commit (2PC).
Mod-eksempel — NoSQL: mange NoSQL-databaser (MongoDB pr
Læringsmål
- Redegøre for ACID-egenskaberne: atomicitet, konsistens, isolation, holdbarhed
- Forklare hvorfor transaktioner er nødvendige i en database
- Give eksempler på situationer hvor transaktioner sikrer dataintegritet
Sådan kan du arbejde med emnet
- Forklar de fire ACID-egenskaber med et bankoverførselseksempel for hver
- Skriv en SQL-transaktion, der overfører penge fra en konto til en anden med COMMIT og ROLLBACK
- Diskutér, hvad der kan gå galt, hvis en database ikke har ACID-garantier
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis