Principal
Co jsou to transakce v databázích? Jaké jsou úrovně izolace transakcí, jaký je jejich smysl a jaký je hlavní rozdíl?
sobes.tech AI
Odpověď od AI
Transakce v databázi je logicky propojená posloupnost operací, která se provádí jako jedna celek. Hlavní vlastnosti transakcí jsou popsány zkratkou ACID:
- Atomicita — všechny operace transakce jsou buď úplně dokončeny, nebo vůbec.
- Konzistence — transakce přenáší databázi z jednoho správného stavu do jiného.
- Izolace — paralelní transakce se navzájem neovlivňují.
- Důslednost — po potvrzení (commit) zůstávají změny zachovány i při selhání.
Úrovně izolace transakcí určují míru viditelnosti změn jedné transakce pro ostatní a ovlivňují možné anomálie:
- Read Uncommitted — transakce může vidět nezapracované změny jiných (špinavé čtení).
- Read Committed — jsou viditelné pouze potvrzené změny, ale mohou nastat nevratná čtení.
- Repeatable Read — zaručuje, že opakované čtení stejných dat v transakci dá stejný výsledek, ale mohou nastat fantomové čtení (nové řádky).
- Serializable — nejpřísnější úroveň, transakce jsou prováděny jako by byly sekvenční, eliminují všechny anomálie.
Hlavní rozdíl spočívá v rovnováze mezi výkonem a přísnou izolací. Čím vyšší je úroveň, tím méně paralelismu, ale vyšší integrita dat.