Klient databßzovΘho serveru m∙₧e nastavit stupe≥ izolace vlastnφch transakcφ od transakcφ provßd∞n²ch jin²mi klienty. Izolace transakcφ urΦuje, v jakΘ mφ°e se mohou zm∞ny v databßzi soub∞₧n∞ provßd∞nΘ r∙zn²mi klienty navzßjem ovliv≥ovat.
Stupn∞ izolace transakcφ jsou definovßny svojφ schopnostφ brßnit vzniku t°φ fenomΘn∙, k nim₧ by p°i soub∞₧nΘ prßci klient∙ A a B mohlo dochßzet:
FenomΘn DIRTY READ: Klient A provede zm∞nu dat a prozatφm neukonΦφ transakci. Klient B p°eΦte tato zm∞n∞nß data. PotΘ klient A odvolß svou transakci. Klient B tedy p°eΦetl data, kterß nikdy nebyla potvrzena.
FenomΘn NON-REPEATABLE READ: Klient A p°eΦte data a prozatφm neukonΦφ transakci. Klient B zm∞nφ nebo zruÜφ tato data a ukonΦφ svou transakci. Klient A ve svΘ transakci znovu Φte stejnß data a nenajde je.
FenomΘn PHANTOM: Klient A polo₧φ dotaz, p°eΦte odpov∞∩ na n∞j a prozatφm neukonΦφ transakci. Klient B vlo₧φ do databßze dalÜφ °ßdky vyhovujφcφ podmφnkßm v dotazu klienta A a ukonΦφ svou transakci. Klient A ve svΘ transakci znovu polo₧φ stejn² dotaz a obdr₧φ jinou odpov∞∩.
JednotlivΘ stupn∞ izolace transakcφ jsou definovßny takto:
Stupe≥ izolace / fenomΘn | DIRTY READ | NON-REPEATABLE READ | PHANTOM |
READ UNCOMMITTED | m∙₧e nastat | m∙₧e nastat | m∙₧e nastat |
READ COMMITTED | nem∙₧e nastat | m∙₧e nastat | m∙₧e nastat |
REPEATABLE READ | nem∙₧e nastat | nem∙₧e nastat | m∙₧e nastat |
SERIALIZABLE | nem∙₧e nastat | nem∙₧e nastat | nem∙₧e nastat |
Stupe≥ izolace SERIALIZABLE zaruΦuje, ₧e soub∞₧nΘ transakce budou mφt stejn² efekt, jako by byly provedeny po sob∞. Zßrove≥ vÜak sni₧uje schopnost serveru provßd∞t akce soub∞₧n∞, tudφ₧ m∙₧e snφ₧it propustnost serveru, pokud vφce klient∙ pracuje se stejn²mi daty.
Stupe≥ izolace transakcφ lze nastavit p°i zahßjenφ transakce p°φkazem START TRANSACTION nebo p°ed zahßjenφm transakce p°φkazem SET TRANSACTION.
Intern∞ SQL server WinBase602 implementuje pouze stupn∞ izolace READ COMMITTED a SERIALIZABLE. P°i nastavenφ READ UNCOMMITTED se vnit°n∞ nastavφ READ COMMITTED, p°i nastavenφ REPEATABLE READ se vnit°n∞ nastavφ SERIALIZABLE. Toto chovßnφ je pln∞ v souladu s normou.