Подтвердить что ты не робот

Какой реальный пример ACID?

Я ищу пример реального мира для различных свойств ACID базы данных.

4b9b3361

Ответ 1

  • Atomicity - транзакция для перевода средств с одного счета на другой включает в себя операцию вывода из первого счета и операцию депозита на второй. Если операция депозита не удалась, вы не хотите, чтобы операция вывода также выполнялась.

  • Консистенция - база данных, отслеживающая контрольную учетную запись, может допускать только уникальные номера проверок для каждой транзакции

  • Изоляция - кассир, ищущий баланс, должен быть изолирован от параллельной транзакции, включающей вывод из той же учетной записи. Только после того, как транзакция отмены будет успешно завершена, и кассир снова посмотрит на баланс, будет сообщено о новом балансе.

  • Долговечность. Системный сбой или любой другой сбой не должны быть лишены результатов транзакции или содержимого базы данных. Долговечность часто достигается за счет отдельных журналов транзакций, которые могут "воссоздавать" все транзакции из определенного времени (например, резервное копирование).

(резюме примеров реального мира из le dorfier ссылка)

Ответ 2

• Атомарность. С точки зрения пользователя, транзакция либо завершена полностью (т.е. Все соответствующие таблицы базы данных обновлены), либо не завершена вовсе. Если происходит ошибка или прерывание, все изменения, сделанные до этого момента, отменяются.

• Согласованность - все условия целостности в базе данных поддерживаются с каждой транзакцией, переводя базу данных из одного согласованного состояния в другое согласованное состояние.

• Изоляция - каждая транзакция изолирована от других транзакций, и, следовательно, каждая транзакция обращается только к данным, которые являются частью согласованного состояния базы данных.

• Долговечность - если пользователю было сообщено о завершении транзакции, результирующие изменения в базе данных сохраняются после сбоев оборудования или программного обеспечения.

Ответ 3

Возьмите любой заданный perl script, который вы используете для управления данными в реляционной базе данных, поставьте "BEGIN" наверху и "COMMIT" внизу, и вы знаете, что работает perl script или вообще не повлияли на вашу базу данных (если вы не ввели DDL-инструкции в mysql). Атомность очень мощна, чтобы иметь такую ​​уверенность при разработке надежного программного обеспечения (и моего любимого свойства).