Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce qu'est le principe ACID dans le contexte du travail avec des transactions dans les bases de données?

sobes.tech IA

Réponse de l'IA

Принцип 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()

Здесь либо оба запроса выполнятся, либо ни один, что соответствует принципу атомарности.