Firebird 2.díl, Transakce

Napsal O webu (») 15. 10. 2007 v kategorii Databáze, přečteno: 2951×
Tento článek je psán za podpory webhostingu banan.cz, který Firebird plně podporuje.

Transakce

Firebird je relační databázový systém založený na architektuře server-klient. Jeho hlavním rysem je, že klientské aplikace nepracují přímo s databází, ale komunikují se systémem pro správu databáze – serverem – prostřednictvím požadavků a následného zpracování odpovědí. Požadavky jsou uspořádány do bloků, které jsou označovány jako transakce.


Co jsou transakce a k čemu jsou dobré?


Transakce jsou považovány za největší přínos moderních databází typu klient-server přispívající k vyšší bezpečnosti uložených dat. Transakce neochrání data před jejich poškozením nebo před poškozením databáze, ať už v důsledku selhání serveru nebo kolapsu klientské aplikace, ale mohou do jisté míry omezit utrpěné škody. To je také vše, co od transakčního zpracování můžeme očekávat. Účelem transakce je zabezpečit konzistenci dat. Je to tedy obecný koncept, který si klade za cíl zabezpečit konzistenci dat při přechodu z jednoho konzistentního stavu do druhého. Konzistentním stavem se rozumí klidový stav databáze, který je ve shodě s definicí pravidel (např. jedinečnost hodnot, vzájemné vztahy hodnot v řádku nebo mezi tabulkami, omezující podmínky,…) daných již při návrhu databáze v datovém modelu.


Data v databázi nejsou statická, procházejí transformacemi, a to v podobě přidávání, změně nebo zrušením údajů. Transformace dat je tedy sled konkrétních operací prováděných s daty databáze, které jsou označovány jako transakce. Po skončení libovolné transformace se data musí opět nacházet v konzistentním stavu. Z výše uvedeného vyplývá, že transakce není nic jiného, než sada nástrojů a technik, která zajišťuje provádění transakcí/transformací tak, aby i v případě selhání jakékoliv zúčastněné strany zůstaly data v databázi konzistentní. Celý systém transakčního zpracování je navržen tak, aby se při selhání klienta v žádné případě databáze nemohla dostat do nekonzistentního stavu. To ovšem neplatí v případě selhání databázového serveru.

Charakteristika transakce

Transakce charakterizují čtyři základní vlastnosti – atomicita, konzistence, izolovanost a trvalost. Podle anglických názvů těchto vlastností (Atomicity, Consistency, Isolation, Durability) je charakteristika transakcí také známá pod názvem ACID. Nyní se pojďme podívat na jednotlivé vlastnosti blíže.


Atomicita – je základní vlastností transakčního systému zpracování, která zajišťuje při chybě nebo zrušení operace obnovu původního stavu databáze před zahájením transakce bez ohledu na počet doposud provedených operací s daty. To z pohledu klienta přináší jednu velice významnou možnost a to kdykoliv zrušit provádění transakce.


Konzistence – je velmi komplexní vlastnost, jejíž naplnění má v rukou vždy programátor. V standardu SQL je definován velice komplexní aparát pro zajištění konzistence dat v databázi. Můžeme definovat pravidla pro jednotlivé sloupce tabulek, vztahy dat v rámci tabulek a základní vztahy mezi tabulkami. Tato pravidla jsou následně automaticky spouštěna při každé operaci s daty, jejichž porušení je oznámeno jako chyba. Automatické spuštění pravidel ovšem vede k většímu zatížení databázového serveru.


Izolovanost – Každá transakce je zcela izolována od operací prováděných jinými transakcemi, jako by měla výhradní přístup k celé databázi. Cílem izolace transakcí je zamezit interferencí mezi transakcemi a následné ztrátě dat nebo jejich chybné interpretaci (čtení nepotvrzených údajů). Interferenci lze zcela zamezit pouze postupným zpracováním transakcí, což má ovšem negativní dopad na výkonnost systému a v praxi je to neakceptovatelné. Proto je v praxi nutné udělat kompromis mezi korektností zpracováním data a celkovou propustností systému. K uspokojení těchto protichůdných požadavků implementují databázové systémy, včetně Firebirdu, nějakou formu synchronizace současného zpracování transakcí. Ve standardu SQL je definován pojem úroveň izolace transakce (transaction isolation level), kde jsou definovány jednotlivé úrovně izolace reprezentující různé varianty tohoto kompromisu.


Trvalost – po úspěšném (důležité je až po!) zpracování transakce jsou všechny změny provedené během transakce trvale zapsány do databáze.


Autor: Robert Habrman
Štítky: Firebird
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel deset a pět