TGViewer
В мире больших данных В мире больших данных @big_data_systems_analysis · 301 subscribers
Post #25 94
Atomicity — Атомарность

Выше мы разговаривали о требованиях ACID (хэштег #acid). Рассмотрим каждое требование подробнее.

Атомарность гарантирует, что каждая транзакция выполнится целиком или не будет выполнена вовсе. Третьего не дано. Если в любой операции транзакции случился сбой, то все операции транзакции будут отменены и данные вернутся в исходное состояние.

Само понятие транзакции включает себя это требование. Транзакция — неделимый набор операций.

Простейший пример транзакции:
BEGIN;
UPDATE accounts SET balance = balance - 5000.00
    WHERE name = 'Olga';
UPDATE accounts SET balance = balance + 5000.00
    WHERE name = 'Bob';
COMMIT;
ROLLBACK;

Ольга перевела 5000 у.е. Ивану, в результате со счёта Ольги списались 5000, а Ивану зачислились 5000. Если, к примеру, во время зачисления средств на счёт Ивана произошёл сбой (н-р, счёт Ивана не был найден), то и списание средств со счёта Ольги не произошло. Аналогично сработает, если на счету у Ольги не окажется нужной суммы для перевода, то и Ивану тогда ничего не зачислится.

Чтобы обеспечить атомарность, СУБД используют механизмы логирования и отката. Логирование позволяет записывать все изменения, внесенные в базу данных, в журнал транзакций. В случае сбоя или ошибок СУБД использует журнал для отмены изменений, внесенных этой транзакцией.

#sql #acid
More from @big_data_systems_analysis
  1. Jul 28, 2026Продолжая тему тех самых SQL-скриптов на 1200 строк, хочу напомнить одну важную вещь, кото…
  2. Jul 15, 2026Борьба с ветряными мельницами Думаю, многим из вас уже набили оскомину разговоры об ИИ. Мн…
  3. Mar 8, 2026В этот день желаю женской части аудитории верить в себя и позволять быть себе любой без ог…
  4. Mar 6, 2026Этот мем — точная копия одного рабочего дня, который я, кажется, прожила уже раз двести 😄…
  5. Mar 4, 2026Знаете, какая фраза чаще всего дорого обходится компании? "Работает — и ладно" 🥂 Результа…
  6. Feb 26, 2026Дисциплина, конечно, прошла мимо меня 😄 в черновиках 1000 и 1 пост, но ни один из них не…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →