Транзакция - логическая единица работы, удовлетворяющая след. 4-м свойствам (ACID)
- Атомарность (Atomicity) - в транзакции выполняется все или ничего; транзакция не может выполниться частично
- Согласованность (Consistentcy) - транзакция переводит базу данных из одного согласованного состояния в другое согласованное состояние
- Изолированность (Isolation) - каждая транзакция выполняется вне зависимости от других транзакций
- Долговечность (Durability) - если изменения состояния базы данных, сделанные транзакцией, зафиксированны, то они будут сохранены даже если потом произойдет сбой
<aside>
💡 Транзакция нужна в первую очередь чтобы обеспечить предсказуемый результат!
</aside>
Пример создания транзакции
create table films (
imdb varchar(16) primary key,
title varchar(40) not null,
kind varchar(10)
);
Журнал транзакций (WAL файлы)
Бонус журналов транзакций
На базе журнала транзакций реализуется ряд дополнительных возможностей
- Point in time recovery - восстановление по журналу транзакций
- Репликация - если есть две одинаковые копии БД, то с помощью WAL файлов можно обеспечить их синхронизацию. В одной БД WAL файлы создаються и по сети (rsync) передаются в копию.
Изолированность. Мультиверсионность. MVCC