Откат для Atomic и Durability

Я пытаюсь понять свойство ACID транзакции базы данных: как они достигаются; какая часть является атомарностью, а какая — долговечностью и т. д.

Допустим, у меня есть транзакция с двумя действиями, A и B. К сожалению, система выключилась при выполнении action B. Мы знаем, что после сброса системы база данных сохранит (благодаря откату в sqlite) состояние до выполнения action A. Итак, какое свойство ACID это показывает, атомарность или долговечность?

Другой случай: Предположим, при выполнении action B произошла ошибка, о которой было сообщено приложению, и откат приложения. Я считаю, что это чистая атомарность, которая достигается пользователем, а не механизмом базы данных. Я прав?


person pierrotlefou    schedule 09.11.2009    source источник


Ответы (1)


Оба примера подчеркивают атомарность: либо A, и B фиксируются, либо ни один из них.

Долговечность — это свойство, которое проявляется только после фиксации транзакции. Приложение может быть уверено, что если вызов COMMIT выполнен успешно, то оно будет надежным. Сброс системы или отключение питания не вернет эффект совершенной транзакции, следовательно, ее долговечность.

person Remus Rusanu    schedule 09.11.2009