21-09-2011 00:00 - Zdroj: php.vrana.cz
U některých operací v reálném světě bych docela uvítal, když by probíhaly v transakci:
Vynesení smetí a vložení nového sáčku
Vyprání osušky a pověšení čisté
Vypotřebování toaletního papíru a instalace nového
Sebrání nákupního seznamu a nákup (to je obzvlášť zákeřné)
A tak dále, další příklady vás jistě napadnou samotné. Co by transakce vlastně měla splňovat?
AtomicitaProvede se buď všechno, nebo nic. Pokud třeba nanejdeme nový sáček na smetí, tak v koši raději zůstane ten plný.
KonzistencePo dokončení systém zůstane neporušen. Tedy nový pytlík v koši nebude děravý.
IzolovanostNení vidět mezistav. To znamená, že se nikdo nesetká se situací, kdy by v koši nebyl žádný pytlík. Dá se to vyřešit čekáním.
TrvalostZměny se neztratí. Tedy když nám systém (např. spolubydlící) řekne, že operace je dokončena, tak už o ni nepřijdeme.
V reálném světě ale bohužel většina lidí pracuje v autocommit režimu…
Příště si povíme něco o reportování chyb a zotavování z nich, které bych v reálném světě také trochu poupravil.
Přijďte si o tomto tématu popovídat na školení Návrh a používání MySQL databáze. -
Pokračovat...