FAGPORTALEN

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

Sådan kan du arbejde med emnet

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

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.