Back to questions
Junior — Middle
53
Можете объяснить, что подразумевается под транзакциями в системах управления базами данных?
Answer from AI
sobes.tech AI
Транзакция в системах управления базами данных — это последовательность операций, которая выполняется как единое целое. Она обладает четырьмя основными свойствами (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()
Здесь обе операции вставки либо выполняются вместе, либо не выполняются вовсе.