StudyFiWiki
WikiWebová aplikace
StudyFi

AI studijní materiály pro každého studenta. Shrnutí, kartičky, testy, podcasty a myšlenkové mapy.

Studijní materiály

  • Wiki
  • Webová aplikace
  • Registrace zdarma
  • O StudyFi

Právní informace

  • Obchodní podmínky
  • GDPR
  • Kontakt
Stáhnout na
App Store
Stáhnout na
Google Play
© 2026 StudyFi s.r.o.Vytvořeno s AI pro studenty
Wiki💻 Informatika a počítačové vědyDatabázové transakce, SQL a architekturyShrnutí

Shrnutí na Databázové transakce, SQL a architektury

Databázové transakce, SQL a Architektury – Kompletní Průvodce

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa

Úvod

Transakce jsou základní jednotkou práce s relační databází. Slouží k zajištění konzistence dat při současném přístupu více uživatelů a při možných chybách systému. Tento materiál shrnuje pojmy, vlastnosti transakcí, chování v distribuovaném prostředí, protokoly potvrzování, zotavení po chybě a synchronizaci.

Definice: Transakce je posloupnost logicky souvisejících operací, které musí být vykonány buď všechny, nebo žádná; převádí databázi z jednoho konzistentního stavu do druhého.

Vlastnosti transakcí (ACID a další)

Atomičnost

  • Celá posloupnost operací se považuje za jednu logickou jednotku. Buď jsou provedeny všechny operace, nebo se vrátí změny (ROLLBACK).

Definice: Atomičnost znamená, že transakce je nedělitelná; nedokončené změny se musí vrátit.

Izolovaná vratnost (isolation + no cascading)

  • Vracení jedné transakce nesmí negativně ovlivnit jiné transakce. Pokud by ano, může nastat řetězové vrácení (cascading rollback).

Definice: Izolovaná vratnost zajišťuje, že nedokončené změny nejsou viditelné jiným transakcím.

Pernamentnost (durability)

  • Jednou potvrzené (COMMIT) změny jsou trvale uloženy a nemohou být ztraceny.

Definice: Pernamentnost znamená, že po COMMITu jsou změny trvale zapsány na úložiště.

Uspořádatelnost (serializovatelnost)

  • Výsledek paralelního provádění transakcí musí odpovídat nějakému sériovému (pořadovému) provedení těchto transakcí.

Definice: Serializovatelnost = možnost vysledovat výsledek paralelního běhu jako výsledek některého sériového rozvrhu.

Lokální vs. globální (distribuované) transakce

  • Lokální transakce přistupuje pouze k datům na jednom uzlu.
  • Globální (distribuovaná) transakce přesahuje hranice jednoho uzlu a skládá se z dílčích lokálních transakcí na různých uzlech.

Definice: Globální transakce je transakce, která koordinuje více lokálních transakcí napříč uzly.

Distribuovaný databázový systém — základní principy

  • Databáze je fragmentována a alokována na více uzlech s komunikačními propojeními.
  • Globální transakce startuje na primárním (koordinujícím) uzlu a rozpadá se na podtransakce.
  • Primární transakce (koordinátor) řídí dělení, sběr odpovědí a závěrečné rozhodnutí (COMMIT/ABORT).

Komponenty na uzlu (přehled)

  • Aplikační program
  • Modul řízení transakcí (koordinační logika)
  • Komunikační modul
  • Moduly řízení dat (lokální DBMS)
  • Operační systém, hardware

Definice: Modul řízení transakcí zpracovává požadavky, rozděluje globální transakci, sbírá podvýsledky a sestavuje finální odpověď.

Dvoufázový potvrzovací protokol (2PC)

Cíl: zajistit atomické potvrzení globální transakce v distribuovaném prostředí.

Fáze 1 — hlasování (voting / prepare)

  1. Koordinátor požádá všechny podtransakce, aby dosáhly bodu, kdy mohou říci, zda jsou připraveny COMMITovat (RC - ready to commit).
  2. Každá podtransakce provede lokální přípravu a odpoví: RC (ready / prepared) nebo ABORT.
  • Po RC si lokální uzel ještě nezpřístupní změny ostatním transakcím.

Fáze 2 — jištění (commit/abort)

  1. Pokud všechny odpovědi jsou RC, koordinátor posílá globální COMMIT a podtransakce provedou své lokální COMMIT (a změny se zviditelní).
  2. Pokud alespoň jedna odpověď je ABORT nebo někdo nedosáhne RC v časovém limitu, koordinátor pošle globální ABORT a všechny podtransakce se vrátí.

Definice: 2PC zajišťuje, že všechny zúčastněné uzly dospějí ke stejnému rozhodnutí COMMIT nebo ABORT.

Chyby a časové ohraničení (timeouts)

Možné situace a řešení:

  • Nelze inicializovat podtransakci -> koordinátor se pokusí o jiný uzel nebo pošle ABORT všem.
  • Chybějící RC zpráva -> koordinátor obvykle pošle ABORT všem.
  • Lokální uzel nemusí obdržet finální COMMIT/ABORT -> koordinátor zůstane aktivní dokud zprávu nedoručí.
  • Koordinátor sám selže po obdržení RC -> ostatní čekají; po zotavení koordinátor rozhodne podle logu.
💡 Věděli jste?Fun fact: 2PC je jednoduchý a široce používaný protokol, ale trpí problémem blokování (blocking) pokud koordinátor selže, což vedlo k náv
Zaregistruj se pro celé shrnutí
KartičkyTest znalostíShrnutíPodcastMyšlenková mapa
Začni zdarma

Už máš účet? Přihlásit se

Transakce - přehled

Klíčová slova: Transakce

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

## Úvod Transakce jsou základní jednotkou práce s relační databází. Slouží k zajištění konzistence dat při současném přístupu více uživatelů a při možných chybách systému. Tento materiál shrnuje pojmy, vlastnosti transakcí, chování v distribuovaném prostředí, protokoly potvrzování, zotavení po chybě a synchronizaci. > Definice: Transakce je posloupnost logicky souvisejících operací, které musí být vykonány buď všechny, nebo žádná; převádí databázi z jednoho konzistentního stavu do druhého. ## Vlastnosti transakcí (ACID a další) ### Atomičnost - Celá posloupnost operací se považuje za jednu logickou jednotku. Buď jsou provedeny všechny operace, nebo se vrátí změny (ROLLBACK). > Definice: Atomičnost znamená, že transakce je nedělitelná; nedokončené změny se musí vrátit. ### Izolovaná vratnost (isolation + no cascading) - Vracení jedné transakce nesmí negativně ovlivnit jiné transakce. Pokud by ano, může nastat řetězové vrácení (cascading rollback). > Definice: Izolovaná vratnost zajišťuje, že nedokončené změny nejsou viditelné jiným transakcím. ### Pernamentnost (durability) - Jednou potvrzené (COMMIT) změny jsou trvale uloženy a nemohou být ztraceny. > Definice: Pernamentnost znamená, že po COMMITu jsou změny trvale zapsány na úložiště. ### Uspořádatelnost (serializovatelnost) - Výsledek paralelního provádění transakcí musí odpovídat nějakému sériovému (pořadovému) provedení těchto transakcí. > Definice: Serializovatelnost = možnost vysledovat výsledek paralelního běhu jako výsledek některého sériového rozvrhu. ## Lokální vs. globální (distribuované) transakce - **Lokální transakce** přistupuje pouze k datům na jednom uzlu. - **Globální (distribuovaná) transakce** přesahuje hranice jednoho uzlu a skládá se z dílčích lokálních transakcí na různých uzlech. > Definice: Globální transakce je transakce, která koordinuje více lokálních transakcí napříč uzly. ## Distribuovaný databázový systém — základní principy - Databáze je fragmentována a alokována na více uzlech s komunikačními propojeními. - Globální transakce startuje na primárním (koordinujícím) uzlu a rozpadá se na podtransakce. - Primární transakce (koordinátor) řídí dělení, sběr odpovědí a závěrečné rozhodnutí (COMMIT/ABORT). ### Komponenty na uzlu (přehled) - Aplikační program - Modul řízení transakcí (koordinační logika) - Komunikační modul - Moduly řízení dat (lokální DBMS) - Operační systém, hardware > Definice: Modul řízení transakcí zpracovává požadavky, rozděluje globální transakci, sbírá podvýsledky a sestavuje finální odpověď. ## Dvoufázový potvrzovací protokol (2PC) Cíl: zajistit atomické potvrzení globální transakce v distribuovaném prostředí. ### Fáze 1 — hlasování (voting / prepare) 1. Koordinátor požádá všechny podtransakce, aby dosáhly bodu, kdy mohou říci, zda jsou připraveny COMMITovat (RC - ready to commit). 2. Každá podtransakce provede lokální přípravu a odpoví: RC (ready / prepared) nebo ABORT. - Po RC si lokální uzel ještě nezpřístupní změny ostatním transakcím. ### Fáze 2 — jištění (commit/abort) 1. Pokud všechny odpovědi jsou RC, koordinátor posílá globální COMMIT a podtransakce provedou své lokální COMMIT (a změny se zviditelní). 2. Pokud alespoň jedna odpověď je ABORT nebo někdo nedosáhne RC v časovém limitu, koordinátor pošle globální ABORT a všechny podtransakce se vrátí. > Definice: 2PC zajišťuje, že všechny zúčastněné uzly dospějí ke stejnému rozhodnutí COMMIT nebo ABORT. ### Chyby a časové ohraničení (timeouts) Možné situace a řešení: - Nelze inicializovat podtransakci -> koordinátor se pokusí o jiný uzel nebo pošle ABORT všem. - Chybějící RC zpráva -> koordinátor obvykle pošle ABORT všem. - Lokální uzel nemusí obdržet finální COMMIT/ABORT -> koordinátor zůstane aktivní dokud zprávu nedoručí. - Koordinátor sám selže po obdržení RC -> ostatní čekají; po zotavení koordinátor rozhodne podle logu. Fun fact: 2PC je jednoduchý a široce používaný protokol, ale trpí problémem blokování (blocking) pokud koordinátor selže, což vedlo k náv

Další materiály

ShrnutíTest znalostíKartičkyPodcastMyšlenková mapa
← Zpět na téma