Sobes.tech
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:

  1. Read Uncommitted — transakce může vidět nezapracované změny jiných (špinavé čtení).
  2. Read Committed — jsou viditelné pouze potvrzené změny, ale mohou nastat nevratná čtení.
  3. Repeatable Read — zaručuje, že opakované čtení stejných dat v transakci dá stejný výsledek, ale mohou nastat fantomové čtení (nové řádky).
  4. 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.