Sobes.tech
Junior — Middle

¿Puede explicar qué es el principio ACID en el contexto del trabajo con transacciones en bases de datos?

sobes.tech AI

Respuesta de la 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()

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