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

Что такое С (согласованность) в принципах ACID

С (Consistency) в ACID означает, что любая транзакция переводит базу данных из одного согласованного состояния в другое, сохраняя целостность данных. Это гарантирует, что все ограничения, триггеры и правила БД будут выполнены.

Пример с кодом (Python + SQL):

python
# Предположим, есть таблица с ограничением: баланс >= 0
def transfer_funds(conn, from_acc, to_acc, amount):
    try:
        cursor = conn.cursor()
        # Проверяем, что на счете достаточно средств
        cursor.execute("SELECT balance FROM accounts WHERE id = ?", (from_acc,))
        balance = cursor.fetchone()[0]
        if balance < amount:
            raise ValueError("Недостаточно средств")
        
        # Выполняем перевод
        cursor.execute("UPDATE accounts SET balance = balance - ? WHERE id = ?", 
                       (amount, from_acc))
        cursor.execute("UPDATE accounts SET balance = balance + ? WHERE id = ?", 
                       (amount, to_acc))
        conn.commit()  # Фиксируем изменения
    except Exception as e:
        conn.rollback()  # Откатываем при ошибке
        raise

Если транзакция завершится успешно, С гарантирует, что:

  1. Общая сумма денег останется неизменной
  2. Ни один баланс не станет отрицательным
  3. Все связанные данные будут обновлены согласованно
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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