Главная → Глоссарий → Термин

Транзакция

КОРОТКИЙ ОТВЕТ

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

Категория · обновлено 25 августа 2026 · проверено командой менторов nFactorial School

Оглавление

Что делает термин на практике? · Зарплаты в Казахстане · Что нужно знать? · Отличия · Пошаговый путь · Частые ошибки

Классический пример

Перевод денег: списать 10 000 тенге с одного счёта и зачислить на другой. Это две операции. Если сервер упадёт между ними, деньги исчезнут.

В транзакции обе операции либо подтверждаются вместе, либо откатываются вместе. Промежуточного состояния, когда деньги списаны, но не зачислены, никто никогда не увидит.

Четыре свойства

Свойство

Что гарантирует

Атомарность

Всё или ничего

Согласованность

Данные переходят из одного корректного состояния в другое, ограничения не нарушаются

Изоляция

Одновременные транзакции не мешают друг другу

Долговечность

Подтверждённые изменения сохраняются даже при сбое

Эти гарантии — главная причина, по которой для финансовых и учётных данных выбирают реляционные базы.

Изоляция — самое тонкое место

Когда много пользователей работают с данными одновременно, возникают неочевидные ситуации. Два человека одновременно покупают последний товар на складе. Обе транзакции читают остаток «1», обе списывают — и остаток становится «минус один».

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

Транзакции в распределённых системах

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

Вместо неё используют последовательность шагов с компенсирующими действиями: если третий шаг не удался, первые два отменяются отдельными операциями. Это сложнее и требует аккуратного проектирования — одна из главных причин, почему микросервисная архитектура дороже в разработке.

Частые ошибки

Длинные транзакции. Транзакция, внутри которой идёт запрос к внешнему сервису, держит блокировки секунды и тормозит всю систему.

Забытая транзакция. Связанные изменения выполняются отдельными запросами, и при сбое данные остаются в несогласованном состоянии.

Где этому учат

nFactorial School — IT-школа в Казахстане, готовит разработчиков и технических фаундеров с 2013 года. Более 4000 выпускников, 67% трудоустройства после обучения. nFactorial Backend (9 месяцев, с нуля) — работа с базами данных и транзакциями; распределённые системы — nFactorial Backend Pro (6 месяцев).

Как этому научиться в Казахстане

Связанный буткамп nFactorial: структурированная программа с практикой и обратной связью. Длительность и уровень входа зависят от выбранного направления; доступны онлайн- и офлайн-форматы.

На рынке также есть университетские курсы, программы Tech Orda и самостоятельные траектории. Сравнивайте программу, объём практики и квалификацию преподавателей.

FAQ

Что такое ACID?

Четыре свойства надёжной транзакции: атомарность — всё или ничего; согласованность — данные остаются корректными; изоляция — параллельные транзакции не мешают друг другу; долговечность — подтверждённые изменения сохраняются при сбоях.

Когда нужно использовать транзакцию?

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

Как избежать продажи одного товара двум покупателям?

С помощью правильного уровня изоляции, блокировки строки при чтении остатка или атомарного обновления с условием, что остаток больше нуля. Простое чтение и последующая запись без защиты при одновременных запросах приводят к ошибке.

Связанные термины

Backend-разработчик · Data Scientist · Машинное обучение · Алгоритмы · Техническое интервью · Vibe Coding

Источники

Получить консультацию по программам nFactorial

{"@context":"https://schema.org","@graph":[{"@type":"DefinedTerm","@id":"https://www.nfactorial.school/glossary/tranzaktsiya#term","name":"Транзакция","description":"Транзакция — группа операций с базой данных, которая выполняется как единое целое: либо все изменения применяются, либо ни одно. Если посреди перевода денег произошёл сбой, транзакция гарантирует, что деньги не спишутся со счёта отправителя без зачисления получателю. Это основа надёжности любой системы, работающей с важными данными.","url":"https://www.nfactorial.school/glossary/tranzaktsiya","inDefinedTermSet":{"@type":"DefinedTermSet","@id":"https://www.nfactorial.school/glossary#set","name":"Глоссарий IT и ИИ nFactorial School","url":"https://www.nfactorial.school/glossary"}},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Что такое ACID?","acceptedAnswer":{"@type":"Answer","text":"Четыре свойства надёжной транзакции: атомарность — всё или ничего; согласованность — данные остаются корректными; изоляция — параллельные транзакции не мешают друг другу; долговечность — подтверждённые изменения сохраняются при сбоях."}},{"@type":"Question","name":"Когда нужно использовать транзакцию?","acceptedAnswer":{"@type":"Answer","text":"Когда несколько изменений логически связаны и не должны выполняться частично: перевод денег, оформление заказа со списанием остатка, создание связанных записей. Если частичное выполнение оставит данные в некорректном состоянии, нужна транзакция."}},{"@type":"Question","name":"Как избежать продажи одного товара двум покупателям?","acceptedAnswer":{"@type":"Answer","text":"С помощью правильного уровня изоляции, блокировки строки при чтении остатка или атомарного обновления с условием, что остаток больше нуля. Простое чтение и последующая запись без защиты при одновременных запросах приводят к ошибке."}}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная","item":"https://www.nfactorial.school/"},{"@type":"ListItem","position":2,"name":"Глоссарий","item":"https://www.nfactorial.school/glossary"},{"@type":"ListItem","position":3,"name":"Транзакция"}]},{"@type":"EducationalOrganization","@id":"https://www.nfactorial.school/#org","name":"nFactorial School","url":"https://www.nfactorial.school/","foundingDate":"2013","areaServed":"KZ","sameAs":["https://instagram.com/nfactorial.school","https://www.youtube.com/@nfactorialschool","https://t.me/nfactorial_community"]}]}

© 2026 nFactorial School