Может ли кто-нибудь дать прямое (но не более простое, чем возможно) объяснение транзакции применительно к вычислениям (даже если оно скопировано из Википедии)?
источник
Может ли кто-нибудь дать прямое (но не более простое, чем возможно) объяснение транзакции применительно к вычислениям (даже если оно скопировано из Википедии)?
Транзакция - это единица работы, которую вы хотите рассматривать как «единое целое». Это должно произойти либо полностью, либо не произойти вовсе.
Классический пример - перевод денег с одного банковского счета на другой. Для этого вы должны сначала снять сумму с исходного счета, а затем внести ее на целевой счет. Операция должна пройти полностью. Если вы остановитесь на полпути, деньги будут потеряны, а это очень плохо.
В современных базах данных транзакции также выполняют некоторые другие функции - например, гарантируют, что вы не сможете получить доступ к данным, написанным другим человеком на полпути. Но основная идея та же - транзакции нужны, чтобы гарантировать, что что бы ни случилось, данные, с которыми вы работаете, будут в разумном состоянии . Они гарантируют, что НЕ будет ситуации, когда деньги снимаются с одного счета, но не зачисляются на другой.
Транзакция - это способ представления изменения состояния. В идеале транзакции имеют четыре свойства, обычно известные как ACID:
См. Запись в Википедии ACID для получения более подробной информации.
Хотя это обычно применяется к базам данных, это не обязательно. (В частности, см. Программная транзакционная память .)
источник
Вот простое объяснение. Вам нужно перевести 100 баксов со счета A на счет B. Вы можете:
или
Если что-то пошло не так между первой и второй операцией в паре, у вас проблема - либо 100 баксов пропали, либо они возникли из ниоткуда.
Транзакция - это механизм, который позволяет вам отмечать группу операций и выполнять их таким образом, чтобы либо все они выполнялись (фиксация), либо состояние системы было таким, как если бы они вообще не начинали выполняться (откат).
либо переведет 100 баксов, либо оставит оба счета в исходном состоянии.
источник
«Серия операторов манипулирования данными, которые должны либо полностью завершиться, либо полностью выйти из строя, оставляя базу данных в согласованном состоянии»
источник
Транзакция - это последовательность одной или нескольких операций SQL, которые рассматриваются как единое целое.
В частности, кажется, что каждая транзакция выполняется изолированно, и, кроме того, в случае сбоя системы каждая транзакция выполняется либо полностью, либо не полностью.
Концепция транзакций мотивирована двумя полностью независимыми проблемами. Один связан с одновременным доступом к базе данных нескольких клиентов, а другой - с наличием системы, устойчивой к сбоям системы.
Транзакция поддерживает так называемые свойства ACID:
источник
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = A tomicity, С onsistency, я solation, D urability
Если вы хотите, чтобы несколько транзакционных ресурсов были задействованы в одной транзакции, вам нужно будет использовать что-то вроде решения с двухфазной фиксацией .XA довольно широко поддерживается.
источник
Я бы предположил, что определение «обработки транзакций» было бы более полезным, поскольку оно охватывает транзакции как концепцию в информатике.
Из википедии:
В информатике обработка транзакций - это обработка информации, которая делится на отдельные неделимые операции, называемые транзакциями. Каждая транзакция должна быть успешной или неудачной как единое целое; он не может оставаться в промежуточном состоянии.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
источник
В дополнение к приведенным выше ответам следует отметить, что, по крайней мере теоретически, нет никаких ограничений в отношении того, какие ресурсы задействованы в транзакции.
В большинстве случаев это просто база данных или несколько отдельных баз данных, но также возможно, что принтер принимает участие в транзакции и может вызвать сбой этой транзакции, например, в случае замятия бумаги.
источник
Транзакцию можно определить как набор задач, которые рассматриваются как минимальная единица обработки. Каждую минимальную единицу обработки нельзя разделить дальше.
Основные операции транзакции - это чтение и запись.
Вся транзакция должна содержать четыре свойства, которые обычно называются свойствами ACID, с целью обеспечения точности, полноты и целостности данных.
источник
Я считаю, что с точки зрения СУБД транзакция - это атомарное действие.
это означает, что его нельзя отделить. да, в транзакции может быть несколько инструкций для выполнения системой. но они связаны вместе, чтобы выполнить одну базовую задачу.
например. нужно пройти по мосту (будем рассматривать это как переход), а для этого, скажем, нужно 100 шагов. в целом эти шаги нельзя разделить. когда вы выполнили половину из них, у вас есть только два выбора: продолжить их все и вернуться к исходной точке. это похоже на результат транзакции: успех (зафиксирован) и сбой (откат)
источник
Транзакция - это неделимая единица обработки данных. Все транзакции должны иметь свойства ACID:
то есть: атомарность, согласованность, изоляция и надежная транзакция - это все или ничего, но не промежуточные (это означает, что если вы переводите свои деньги с одной учетной записи на другую, одна учетная запись должна потерять столько же, а другая должна получить эту сумму, но если вы переводите деньги с одного счета, а другой счет все еще пуст, что не будет транзакцией)
источник