Shrnutí na Adatbázis-tranzakciók, SQL és architektúrák
Adatbázis-tranzakciók, SQL és Architektúrák – Komplett Útmutató
Bevezetés
A tranzakciók a relációs adatbázisokkal végzett munka alapegységei. Céljuk az adatok konzisztenciájának biztosítása több felhasználó egyidejű hozzáférése és lehetséges rendszerhibák esetén. Ez az anyag összefoglalja a fogalmakat, a tranzakciók tulajdonságait, az elosztott környezetben való viselkedést, a megerősítési protokollokat, a hibából való helyreállítást és a szinkronizációt.
Definíció: A tranzakció logikailag összefüggő műveletek sorozata, amelyeket vagy mindet, vagy egyet sem kell végrehajtani; az adatbázist egyik konzisztens állapotból a másikba viszi át.
Tranzakciók tulajdonságai (ACID és egyéb)
Atomicitás
- Az operációk teljes sorozata egyetlen logikai egységnek tekintendő. Vagy minden művelet végrehajtódik, vagy a változások visszavonásra kerülnek (ROLLBACK).
Definíció: Az atomicitás azt jelenti, hogy a tranzakció oszthatatlan; a befejezetlen változásokat vissza kell vonni.
Izoláció (kaszkádolt visszavonás elkerülése)
- Egy tranzakció visszavonása nem befolyásolhatja hátrányosan más tranzakciókat. Ha mégis így történne, láncolt visszavonás (cascading rollback) következhet be.
Definíció: Az izoláció (kaszkádolt visszavonás elkerülése) biztosítja, hogy a befejezetlen változások ne legyenek láthatók más tranzakciók számára.
Tartósság
- Az egyszer megerősített (COMMIT) változások tartósan tárolódnak, és nem veszhetnek el.
Definíció: A tartósság azt jelenti, hogy a COMMIT után a változások tartósan rögzítésre kerülnek a tárolón.
Szerializálhatóság
- A tranzakciók párhuzamos végrehajtásának eredménye meg kell, hogy egyezzen ezen tranzakciók valamely soros (szekvenciális) végrehajtásának eredményével.
Definíció: Szerializálhatóság = a párhuzamos futás eredménye visszavezethető valamely soros ütemezés eredményére.
Lokális vs. globális (elosztott) tranzakciók
- Lokális tranzakció csak egyetlen csomóponton lévő adatokhoz fér hozzá.
- Globális (elosztott) tranzakció túlmutat egyetlen csomópont határain, és különböző csomópontokon végrehajtott részleges lokális tranzakciókból áll.
Definíció: A globális tranzakció egy olyan tranzakció, amely több lokális tranzakciót koordinál a csomópontok között.
Elosztott adatbázis-rendszer — alapelvek
- Az adatbázis fragmentált és több csomóponton van allokálva, kommunikációs összeköttetésekkel.
- A globális tranzakció egy elsődleges (koordináló) csomóponton indul, és altranzakciókra bomlik.
- Az elsődleges tranzakció (koordinátor) kezeli a felosztást, a válaszok gyűjtését és a végső döntést (COMMIT/ABORT).
Csomóponti komponensek (áttekintés)
- Alkalmazásprogram
- Tranzakciókezelő modul (koordinációs logika)
- Kommunikációs modul
- Adatkezelő modulok (lokális DBMS)
- Operációs rendszer, hardver
Definíció: A tranzakciókezelő modul feldolgozza a kéréseket, felosztja a globális tranzakciót, gyűjti az aleredményeket és összeállítja a végső választ.
Kétfázisú jóváhagyási protokoll (2PC)
Cél: atomikus jóváhagyást biztosítani egy globális tranzakció számára elosztott környezetben.
1. fázis — szavazás (voting / prepare)
- A koordinátor felkéri az összes altranzakciót, hogy érjék el azt a pontot, ahol jelezni tudják, készen állnak-e a COMMIT-ra (RC - ready to commit).
- Minden altranzakció végrehajtja a lokális előkészítést, és válaszol: RC (ready / prepared) vagy ABORT.
- Az RC után a lokális csomópont még nem teszi elérhetővé a változásokat más tranzakciók számára.
2. fázis — véglegesítés/visszavonás (commit/abort)
- Ha minden válasz RC, a koordinátor globális COMMIT-ot küld, és az altranzakciók végrehajtják a lokális COMMIT-jukat (és a változások láthatóvá válnak).
- Ha legalább egy válasz ABORT, vagy valaki nem éri el az RC-t az időkorláton belül, a koordinátor globális ABORT-ot küld, és minden altranzakció visszavonásra kerül.
Definíció: A 2PC biztosítja, hogy minden érintett csomópont ugyanarra a döntésre jusson: COMMIT vagy ABORT.
Hibák és időtúllépések (timeouts)
Lehetséges helyzetek és megoldá
Already have an account? Sign in
Tranzakció - Áttekintés
Klíčové pojmy: Transakce je logická jednotka provedení operací, Atomičnost: vše nebo nic (ROLLBACK), Izolovaná vratnost zabraňuje cascading rollback, Pernamentnost zajišťuje trvalost po COMMITu, Globální transakce se skládají z lokálních podtransakcí, Dvoufázový protokol (2PC): prepare + commit/abort, Žurnál a checkpointy umožňují UNDO/REDO zotavení, Uzamykání + 2PL zajišťují serializovatelnost, Deadlock se detekuje čekacím grafem (hledání cyklů), Time-stamp metody: Wait-Die a Wound-Wait, SAVEPOINT umožňuje částečný ROLLBACK v SQL