Транзакции и ACID
Транзакции и ACID — фундамент надёжных баз данных. Вы поймёте, зачем нужны BEGIN/COMMIT/ROLLBACK, как работают четыре свойства ACID (Atomicity, Consistency, Isolation, Durability), чем отличаются уровни изоляции READ COMMITTED, REPEATABLE READ и SERIALIZABLE, почему возникают дедлоки и как их избегать, а также освоите практические паттерны: upsert, идемпотентные операции и retry-логику. Курс незаменим для собеседований на позицию аналитика или backend-разработчика.
✅ Что вы научитесь
- Понимать жизненный цикл транзакции: BEGIN, COMMIT, ROLLBACK
- Использовать SAVEPOINT для частичного отката
- Объяснять каждое из четырёх свойств ACID с примерами
- Различать уровни изоляции и знать, когда какой применять
- Понимать аномалии: dirty read, non-repeatable read, phantom read
- Знать, как и почему возникают дедлоки, и как их избегать
- Применять SELECT FOR UPDATE для безопасного обновления
- Писать идемпотентные операции через INSERT ON CONFLICT
Программа курса · 4 трека
Основы транзакций
Что такое транзакция и зачем она нужна. BEGIN начинает блок, COMMIT фиксирует, ROLLBACK откатывает всё назад. SAVEPOINT позволяет откатить лишь часть транзакции.
Ещё не начат
ACID-свойства
Четыре гарантии надёжной СУБД: Атомарность (всё или ничего), Согласованность (инварианты сохраняются), Изолированность (транзакции не мешают друг другу), Долговечность (зафиксированное не пропадёт).
Ещё не начат
Уровни изоляции транзакций
READ COMMITTED, REPEATABLE READ, SERIALIZABLE — три уровня изоляции PostgreSQL. Грязное чтение, неповторимое чтение, фантомное чтение — когда каждый уровень защищает и когда нет.
Ещё не начат
Блокировки и практические паттерны
FOR UPDATE блокирует строки для безопасного обновления. Дедлок — взаимная блокировка двух транзакций. Upsert (INSERT ON CONFLICT) и идемпотентные операции — паттерны надёжного кода.
Ещё не начат