Sobes.tech
Junior — Middle
67

Можете объяснить, что такое транзакция в базе данных и как она работает?

Answer from AI

sobes.tech AI

Транзакция в базе данных — это последовательность операций, которая выполняется как единое целое. Если все операции прошли успешно, транзакция фиксируется (commit), и изменения сохраняются. Если произошла ошибка, транзакция откатывается (rollback), и база возвращается в исходное состояние.

Основные свойства транзакций описываются аббревиатурой ACID:

  • Atomicity (Атомарность): все операции внутри транзакции выполняются полностью или не выполняются вовсе.
  • Consistency (Согласованность): транзакция переводит базу из одного корректного состояния в другое.
  • Isolation (Изолированность): параллельные транзакции не влияют друг на друга.
  • Durability (Надежность): после фиксации транзакции изменения сохраняются даже при сбоях.

Пример на Python с использованием SQLite:

import sqlite3

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

try:
    conn.execute('BEGIN')
    cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
    cursor.execute("INSERT INTO accounts (user, balance) VALUES ('Alice', 1000)")
    conn.commit()  # Фиксируем транзакцию
except Exception as e:
    conn.rollback()  # Откатываем при ошибке
    print('Ошибка:', e)
finally:
    conn.close()