Встречается на собеседованиях • сегодня

Как пользуешься понятием транзакция в контексте операций записи обновления

Транзакция в Python (особенно при работе с БД) - это атомарная группа операций, которая либо выполняется целиком, либо не выполняется вообще. Основные принципы:

  1. Используется для обеспечения целостности данных
  2. Поддерживается ACID (Atomicity, Consistency, Isolation, Durability)
  3. В SQL-базах обычно реализуется через BEGIN/COMMIT/ROLLBACK

Пример с SQLite:

python
import sqlite3

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

try:
conn.execute("BEGIN TRANSACTION") # Начало транзакции

text
# Операции записи/обновления
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1")
cursor.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2")

conn.commit()  # Фиксация изменений

except Exception as e:
conn.rollback() # Откат при ошибке
print(f"Error occurred: {e}")
finally:
conn.close()

text

Для NoSQL (например, MongoDB) транзакции появились в версии 4.0+:
```python
with client.start_session() as session:
    session.start_transaction()
    try:
        db.accounts.update_one({'_id': 1}, {'$inc': {'balance': -100}}, session=session)
        db.accounts.update_one({'_id': 2}, {'$inc': {'balance': 100}}, session=session)
        session.commit_transaction()
    except Exception:
        session.abort_transaction()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы