Streszczenie Transakcje bazodanowe, SQL i architektury

Transakcje bazodanowe, SQL i Architektury – Kompletny Przewodnik

Wprowadzenie

Transakcje są podstawową jednostką pracy z relacyjną bazą danych. Służą do zapewnienia spójności danych przy jednoczesnym dostępie wielu użytkowników oraz w przypadku możliwych błędów systemu. Niniejszy materiał podsumowuje pojęcia, właściwości transakcji, zachowanie w środowisku rozproszonym, protokoły zatwierdzania, odzyskiwanie po awarii oraz synchronizację.

Definicja: Transakcja to sekwencja logicznie powiązanych operacji, które muszą zostać wykonane albo wszystkie, albo żadna; przenosi bazę danych z jednego spójnego stanu do drugiego.

Właściwości transakcji (ACID i inne)

Atomowość

  • Cała sekwencja operacji jest traktowana jako jedna logiczna jednostka. Albo wszystkie operacje zostaną wykonane, albo wszystkie zmiany zostaną wycofane (ROLLBACK).

Definicja: Atomowość oznacza, że transakcja jest niepodzielna; nieukończone zmiany muszą zostać wycofane.

Izolowana odwracalność (izolacja + brak kaskadowego wycofywania)

  • Wycofanie jednej transakcji nie może negatywnie wpływać na inne transakcje. W przeciwnym razie może dojść do kaskadowego wycofania (cascading rollback).

Definicja: Izolowana odwracalność zapewnia, że nieukończone zmiany nie są widoczne dla innych transakcji.

Trwałość

  • Raz zatwierdzone (COMMIT) zmiany są trwale zapisywane i nie mogą zostać utracone.

Definicja: Trwałość oznacza, że po operacji COMMIT zmiany są trwale zapisywane w pamięci masowej.

Uporządkowalność (serializowalność)

  • Wynik równoległego wykonywania transakcji musi odpowiadać pewnemu szeregowemu (sekwencyjnemu) wykonaniu tych transakcji.

Definicja: Serializowalność = możliwość odtworzenia wyniku równoległego przebiegu jako wyniku pewnego szeregowego harmonogramu.

Transakcje lokalne vs. globalne (rozproszone)

  • Transakcja lokalna odwołuje się tylko do danych na jednym węźle.
  • Transakcja globalna (rozproszona) wykracza poza granice jednego węzła i składa się z cząstkowych transakcji lokalnych na różnych węzłach.

Definicja: Transakcja globalna to transakcja, która koordynuje wiele transakcji lokalnych między węzłami.

Rozproszony system baz danych — podstawowe zasady

  • Baza danych jest fragmentowana i alokowana na wielu węzłach z połączeniami komunikacyjnymi.
  • Transakcja globalna rozpoczyna się na węźle pierwotnym (koordynującym) i rozpada się na podtransakcje.
  • Transakcja pierwotna (koordynator) zarządza podziałem, zbieraniem odpowiedzi oraz ostateczną decyzją (COMMIT/ABORT).

Komponenty na węźle (przegląd)

  • Program aplikacyjny
  • Moduł zarządzania transakcjami (logika koordynacji)
  • Moduł komunikacyjny
  • Moduły zarządzania danymi (lokalny DBMS)
  • System operacyjny, sprzęt

Definicja: Moduł zarządzania transakcjami przetwarza żądania, dzieli transakcję globalną, zbiera podwyniki i konstruuje ostateczną odpowiedź.

Dwufazowy protokół zatwierdzania (2PC)

Cel: zapewnić atomowe zatwierdzenie globalnej transakcji w środowisku rozproszonym.

Faza 1 — głosowanie (voting / prepare)

  1. Koordynator prosi wszystkie podtransakcje, aby osiągnęły punkt, w którym mogą oświadczyć, czy są gotowe do ZATWIERDZENIA (RC - ready to commit).
  2. Każda podtransakcja wykonuje lokalne przygotowanie i odpowiada: RC (ready / prepared) lub ABORT.
  • Po RC lokalny węzeł nie udostępnia jeszcze zmian innym transakcjom.

Faza 2 — zatwierdzanie/anulowanie (commit/abort)

  1. Jeśli wszystkie odpowiedzi to RC, koordynator wysyła globalny COMMIT, a podtransakcje wykonują swoje lokalne zatwierdzenie (a zmiany stają się widoczne).
  2. Jeśli co najmniej jedna odpowiedź to ABORT lub ktoś nie osiągnie RC w limicie czasu, koordynator wysyła globalny ABORT i wszystkie podtransakcje zostają wycofane.

Definicja: 2PC zapewnia, że wszystkie zaangażowane węzły dochodzą do tej samej decyzji COMMIT lub ABORT.

Błędy i limity czasu (timeouts)

Możliwe sytuacje i rozwiązania:

  • Nie można zainicjować podtransakcji -> koordynator próbuje z innym węzłem lub wysyła ABORT do wszystkich.
  • Brakująca wiadomość RC -> koordyn
Zarejestruj się po pełne podsumowanie
FiszkiTest wiedzyStreszczeniePodcastMapa myśli
Zacznij za darmo

Masz już konto? Zaloguj się

Transakcje - przegląd

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

## Wprowadzenie Transakcje są podstawową jednostką pracy z relacyjną bazą danych. Służą do zapewnienia spójności danych przy jednoczesnym dostępie wielu użytkowników oraz w przypadku możliwych błędów systemu. Niniejszy materiał podsumowuje pojęcia, właściwości transakcji, zachowanie w środowisku rozproszonym, protokoły zatwierdzania, odzyskiwanie po awarii oraz synchronizację. > Definicja: Transakcja to sekwencja logicznie powiązanych operacji, które muszą zostać wykonane albo wszystkie, albo żadna; przenosi bazę danych z jednego spójnego stanu do drugiego. ## Właściwości transakcji (ACID i inne) ### Atomowość - Cała sekwencja operacji jest traktowana jako jedna logiczna jednostka. Albo wszystkie operacje zostaną wykonane, albo wszystkie zmiany zostaną wycofane (ROLLBACK). > Definicja: Atomowość oznacza, że transakcja jest niepodzielna; nieukończone zmiany muszą zostać wycofane. ### Izolowana odwracalność (izolacja + brak kaskadowego wycofywania) - Wycofanie jednej transakcji nie może negatywnie wpływać na inne transakcje. W przeciwnym razie może dojść do kaskadowego wycofania (cascading rollback). > Definicja: Izolowana odwracalność zapewnia, że nieukończone zmiany nie są widoczne dla innych transakcji. ### Trwałość - Raz zatwierdzone (COMMIT) zmiany są trwale zapisywane i nie mogą zostać utracone. > Definicja: Trwałość oznacza, że po operacji COMMIT zmiany są trwale zapisywane w pamięci masowej. ### Uporządkowalność (serializowalność) - Wynik równoległego wykonywania transakcji musi odpowiadać pewnemu szeregowemu (sekwencyjnemu) wykonaniu tych transakcji. > Definicja: Serializowalność = możliwość odtworzenia wyniku równoległego przebiegu jako wyniku pewnego szeregowego harmonogramu. ## Transakcje lokalne vs. globalne (rozproszone) - **Transakcja lokalna** odwołuje się tylko do danych na jednym węźle. - **Transakcja globalna (rozproszona)** wykracza poza granice jednego węzła i składa się z cząstkowych transakcji lokalnych na różnych węzłach. > Definicja: Transakcja globalna to transakcja, która koordynuje wiele transakcji lokalnych między węzłami. ## Rozproszony system baz danych — podstawowe zasady - Baza danych jest fragmentowana i alokowana na wielu węzłach z połączeniami komunikacyjnymi. - Transakcja globalna rozpoczyna się na węźle pierwotnym (koordynującym) i rozpada się na podtransakcje. - Transakcja pierwotna (koordynator) zarządza podziałem, zbieraniem odpowiedzi oraz ostateczną decyzją (COMMIT/ABORT). ### Komponenty na węźle (przegląd) - Program aplikacyjny - Moduł zarządzania transakcjami (logika koordynacji) - Moduł komunikacyjny - Moduły zarządzania danymi (lokalny DBMS) - System operacyjny, sprzęt > Definicja: Moduł zarządzania transakcjami przetwarza żądania, dzieli transakcję globalną, zbiera podwyniki i konstruuje ostateczną odpowiedź. ## Dwufazowy protokół zatwierdzania (2PC) Cel: zapewnić atomowe zatwierdzenie globalnej transakcji w środowisku rozproszonym. ### Faza 1 — głosowanie (voting / prepare) 1. Koordynator prosi wszystkie podtransakcje, aby osiągnęły punkt, w którym mogą oświadczyć, czy są gotowe do ZATWIERDZENIA (RC - ready to commit). 2. Każda podtransakcja wykonuje lokalne przygotowanie i odpowiada: RC (ready / prepared) lub ABORT. - Po RC lokalny węzeł nie udostępnia jeszcze zmian innym transakcjom. ### Faza 2 — zatwierdzanie/anulowanie (commit/abort) 1. Jeśli wszystkie odpowiedzi to RC, koordynator wysyła globalny COMMIT, a podtransakcje wykonują swoje lokalne zatwierdzenie (a zmiany stają się widoczne). 2. Jeśli co najmniej jedna odpowiedź to ABORT lub ktoś nie osiągnie RC w limicie czasu, koordynator wysyła globalny ABORT i wszystkie podtransakcje zostają wycofane. > Definicja: 2PC zapewnia, że wszystkie zaangażowane węzły dochodzą do tej samej decyzji COMMIT lub ABORT. ### Błędy i limity czasu (timeouts) Możliwe sytuacje i rozwiązania: - Nie można zainicjować podtransakcji -> koordynator próbuje z innym węzłem lub wysyła ABORT do wszystkich. - Brakująca wiadomość RC -> koordyn