Какова связь между ACID и транзакцией базы данных?
В реляционной базе данных каждый оператор SQL должен выполняться в области транзакции.
Без явного определения границ транзакции база данных будет использовать неявную транзакцию, которая обернута вокруг каждого отдельного оператора.
Неявная транзакция начинается до выполнения инструкции и заканчивается (фиксация или откат) после выполнения инструкции.Режим неявной транзакции обычно известен как автокоммит.
Как объяснено в этой статье , транзакция представляет собой набор операций чтения / записи, выполняющихся успешно только в том случае, если все содержащиеся в них операции выполняются успешно.1014 *
По своей сути транзакция характеризуется четырьмя свойствами (обычно называемыми ACID):
- Атомность
- Согласованность
- Изоляция
- Долговечность
Предоставляет ли ACID транзакцию базы данных или это то же самое?
Для реляционной базы данныхсистема, это правда, потому что стандарт SQL указывает, что транзакция должна обеспечивать гарантии ACID:
атомарность
атомарность принимает отдельные операции и превращает их в единицу работы "все или ничего",успешное выполнение в том и только в том случае, если все содержащиеся в нем операции завершаются успешно.
Транзакция может инкапсулировать изменение состояния (если только оно не доступно только для чтения).Транзакция должна всегда оставлять систему в согласованном состоянии, независимо от того, сколько параллельных транзакций чередуется в любой момент времени.
Согласованность
Согласованность означает, что ограничения применяются для каждой совершенной транзакции.Это означает, что все ключи, типы данных, проверки и триггеры успешны, и нарушение ограничений не инициируется.
Изоляция
Транзакции требуют механизмов контроля параллелизма, и они гарантируют корректность даже при перемежении.Изоляция дает нам преимущество скрывать незавершенные изменения состояния от внешнего мира, так как неудачные транзакции никогда не должны портить состояние системы.Изоляция достигается за счет управления параллелизмом с использованием пессимистических или оптимистических механизмов блокировки.
Долговечность
Успешная транзакция должна окончательно изменить состояние системы, и до ее завершения изменения состояния записываются впостоянный журнал транзакций.Если на нашу систему неожиданно повлиял сбой или перебои в подаче электроэнергии, то все незаконченные совершенные транзакции могут быть воспроизведены.
Подробнее о долговечностии журнал повторов, посмотрите эту статью .