Senior
Aké typy izolácie transakcií existujú a v ktorých je možné špinavé čítanie?
sobes.tech AI
Odpoveď od AI
Typy izolácie transakcií v databázach (napríklad v štandarde SQL):
- Read Uncommitted — najnižšia úroveň izolácie. Umožňuje špinavé čítanie (dirty read), keď transakcia číta údaje, ktoré boli zmenené, ale ešte nie sú potvrdené inou transakciou.
- Read Committed — zakazuje špinavé čítanie, ale umožňuje nevratné čítanie (non-repeatable read) a fantómové čítanie.
- Repeatable Read — zakazuje špinavé čítanie a nevratné čítanie, ale umožňuje fantómové čítanie.
- Serializable — najvyššia úroveň izolácie, zabraňuje všetkým uvedeným anomáliám, vrátane fantómových čítaní.
Špinavé čítanie je možné iba na úrovni Read Uncommitted.
Príklad špinavého čítania:
- Transakcia A mení údaje, ale ich necommit-uje.
- Transakcia B číta tieto zmenené údaje.
- Ak je transakcia A vrátená späť, údaje, ktoré prečítala transakcia B, budú nesprávne.
Väčšina systémov správy databáz, úroveň Read Uncommitted nepodporuje alebo sa štandardne nepoužíva kvôli riziku chýb.