TGViewer
Аналитика данных / Data Study Аналитика данных / Data Study @data_study · 9.46K subscribers
Post #22 1.03K
ЧТО ТАКОЕ ТРАНЗАКЦИЯ В БАЗЕ ДАННЫХ

🔎 Транзакция — это неделимая (атомарная) операция, которую вы можете произвести с базой.

Неделимая — это значит, что база рассматривает операцию как единое целое. Она или выполняется полностью, или не выполняется вообще.

При этом транзакция может содержать в себе несколько операций. Например, вы можете вставить несколько строк в базу, и всё это будет считаться единой транзакцией. В случае если произошла ошибка, и только часть строк была вставлена в базу, транзакция "откатится", то есть все внесённые изменения будут отменены.

Когда мы выполняем несколько операций в коде, в конце нужно сделать коммит (commit), то есть показать системе, что мы должны выполнить предыдущие операции как единое целое. Каноничный пример транзакции в реальном мире — перевод денег с одного счета на другой в банке. Как происходит перевод:

Система снимает деньги с одного счета.
Система добавляет деньги на другой счет.
Если бы операция перевода не являлась транзакцией, то в случае ошибки между 1 и 2 этапом деньги пропали бы безвозвратно.

На самом деле дело не только в защите от ошибок при удалении, но и, например, в защите от неконсистентности данных. Что это значит? Допустим, вы переводите деньги с одного счета на другой. Допустим, вы хотите заплатить с первого счёта в магазине. Если транзакция еще не завершила первый этап, вы можете случайно подумать (во время другой параллельно идущей операции снятия денег), что денег у вас больше, чем есть на самом деле.

Транзакции подчиняются принципу ACID:

📍Atomic (атомарность) — если произошел коммит, значит, все операции были выполнены;
📍Consistent (консистентность) — можно сделать коммит, только если он удовлетворяет всем ограничениям (например, NOT NULL);
📍Isolated (изолированность) — снаружи транзакции не видно, что происходит внутри, пока не произошел коммит;
📍Durable (долговечность) — независимо от ошибок в системе, транзакция, которая была совершена (то есть, был коммит) останется совершённой, даже если сразу после коммита сервер упадет.
  • 👍 2
More from @data_study
  1. Oct 7, 2026Какие преимущества дает витрина при анализе данных 1️⃣ выше скорость обработки данных. это…
  2. Oct 6, 2026Что такое аналитическая витрина данных Представь, тебя попросили создать аналитический отч…
  3. Oct 5, 2026Жена поздравила меня с днём учителя 😊😍
  4. Oct 2, 2026Чтобы вы понимали, у нас чатик аналитиков на работе назывался anal_party Через что только…
  5. Sep 30, 2026С учеником на менторинге проработали задание по созданию дерева метрик - как результат он…
  6. Sep 27, 2026Post #1504
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 →