Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Bazy danych
Bazy danycheasy

Co to jest transakcja i po co jej używamy?

Tagi
#transaction#acid#consistency
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Transakcja łączy wiele operacji w jedną jednostkę pracy: albo wszystkie się udają, albo następuje rollback. Chroni spójność danych, szczególnie przy współbieżności i awariach.

Odpowiedź zaawansowana

Głębiej

Transakcja wyznacza granice jednostki pracy. Daje własności ACID (w różnym stopniu zależnie od isolation level):

  • **Atomicity**: wszystko albo nic.
  • **Consistency**: zachowanie constraintów/invariantów (zakładając poprawną logikę).
  • **Isolation**: transakcje równoległe nie widzą się w niebezpieczny sposób.
  • **Durability**: po commit dane przetrwają awarię.

Przykład (po co)

Przelew nie może „zgubić” pieniędzy: 1) odejmij z konta A 2) dodaj na konto B Jeśli krok 2 się nie uda, musisz zrobić rollback kroku 1.

Praktyka

  • Trzymaj transakcje krótkie (długie trzymają locki albo wersje MVCC).
  • Modyfikuj wiersze w stałej kolejności, żeby zmniejszyć deadlocki.
  • Uwzględnij retry na błędy przejściowe (np. konflikty serializacji).

Typowe pułapki

  • Wywołania sieciowe w transakcji (wolne + wydłużają trzymanie locków).
  • Założenie, że transakcje same rozwiążą race condition bez właściwego isolation/locking.
  • Połknięcie błędu i przypadkowy commit części pracy.

Powiązane pytania

Bazy danych
Autocommit vs transakcje jawne: kiedy to ma znaczenie?
#database#transactions#autocommit
Bazy danych
Poziomy izolacji: czym różnią się Read Committed, Repeatable Read i Serializable?
#database#transactions#isolation
Bazy danych
Jak zrobić zapis idempotentny na poziomie bazy danych?
#idempotency#unique-constraint
#upsert
Bazy danych
Właściwości ACID?
#transaction#acid#database-theory
MongoDB
Read preference w replica setach: co oznacza `primary` vs `secondary`?
#mongo#replica-set#read-preference
MongoDB
Read concern vs write concern: co kontrolują?
#mongo#consistency#read-concern