Найти в Дзене
DEBAGanov

Java 95. Назовите главные характеристики транзакций. Каковы уровни изоляции транзакций?

Транзакция (transaction) - это последовательность операций, которые выполняются как единое целое и либо успешно завершаются, либо откатываются к начальному состоянию в случае возникновения ошибки.

Главные характеристики транзакций:

ACID-свойства - транзакции должны быть атомарными, согласованными, изолированными и долговечными.

  • Атомарность (Atomicity) - все операции транзакции должны быть выполнены или не выполнены вообще.
  • Согласованность (Consistency) - транзакция должна приводить базу данных в согласованное состояние.
  • Изолированность (Isolation) - каждая транзакция должна работать в изолированном режиме, т.е. изменения, внесенные одной транзакцией, не должны видны другим транзакциям до тех пор, пока первая транзакция не будет завершена.
  • Долговечность (Durability) - после успешного завершения транзакции изменения должны сохраняться в базе данных.

Уровень изоляции (isolation level) - определяет, насколько транзакции должны быть изолированы друг от друга. В Java есть четыре уровня изоляции:

  • READ UNCOMMITTED (чтение незафиксированных данных)
  • READ COMMITTED (чтение зафиксированных данных)
  • REPEATABLE READ (повторяемое чтение)
  • SERIALIZABLE (сериализуемость)

Уровень изоляции READ UNCOMMITTED позволяет одной транзакции видеть изменения, которые еще не были зафиксированы другой транзакцией. Уровень изоляции SERIALIZABLE обеспечивает полную изоляцию транзакций, при которой они ведут себя как будто выполняются последовательно, хотя фактически могут выполняться параллельно.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov