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

Что такое консистентность транзакции

Консистентность (ACID-принцип) означает, что транзакция переводит базу данных из одного согласованного состояния в другое, сохраняя целостность данных. Даже если транзакция прервется, данные останутся валидными.

Пример с банковским переводом:

python
def transfer_money(sender_id, receiver_id, amount):
    try:
        # Начало транзакции
        with connection.cursor() as cursor:
            # Проверка баланса отправителя
            cursor.execute("SELECT balance FROM accounts WHERE id = %s", (sender_id,))
            sender_balance = cursor.fetchone()[0]
            
            if sender_balance < amount:
                raise ValueError("Недостаточно средств")
            
            # Списание
            cursor.execute("UPDATE accounts SET balance = balance - %s WHERE id = %s", 
                          (amount, sender_id))
            
            # Зачисление
            cursor.execute("UPDATE accounts SET balance = balance + %s WHERE id = %s", 
                          (amount, receiver_id))
            
        connection.commit()
    except Exception as e:
        connection.rollback()
        print(f"Ошибка: {e}")

Даже при ошибке балансы останутся корректными - либо изменения применятся полностью, либо откатятся.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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