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)

  1. 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).
  2. 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)

  1. 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).
  2. 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á

Sign up for the full summary
FlashcardsKnowledge testSummaryPodcastMindmap
Start for free

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

## 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) 1. 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). 2. 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) 1. 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). 2. 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á