Sobes.tech
Principal

Ce sunt tranzacțiile în bazele de date? Care sunt nivelurile de izolare ale tranzacțiilor, care este sensul lor și care este diferența principală?

sobes.tech AI

Răspuns de la AI

O tranzacție într-o bază de date este o secvență logic legată de operații care se execută ca o unitate unică. Proprietățile principale ale tranzacțiilor sunt descrise prin acronimul ACID:

  • Atomicitate — toate operațiile tranzacției sunt finalizate complet sau deloc.
  • Consistență — tranzacția aduce baza de date dintr-o stare corectă în alta.
  • Izolare — tranzacțiile paralele nu se influențează reciproc.
  • Durabilitate — după un commit, modificările rămân chiar și în caz de defecțiuni.

Nivelurile de izolare ale tranzacțiilor determină gradul de vizibilitate a modificărilor unei tranzacții pentru altele și influențează posibilele anomalii:

  1. Read Uncommitted — o tranzacție poate vedea modificări neconfirmate ale altora (citire murdară).
  2. Read Committed — sunt vizibile doar modificările confirmate, dar pot apărea citiri non-repetabile.
  3. Repeatable Read — se garantează că o citire repetată a aceluiași set de date într-o tranzacție va da același rezultat, dar pot apărea citiri fantomă (noi rânduri).
  4. Serializable — cel mai strict nivel, tranzacțiile sunt executate ca și cum ar fi secvențiale, eliminând toate anomaliile.

Diferența principală constă în echilibrul dintre performanță și izolare strictă. Cu cât nivelul este mai ridicat, cu atât paralelismul este mai mic, dar integritatea datelor este mai mare.