有人可以提供一种简单明了(但要比可能简单)的解释,该解释适用于计算(即使从Wikipedia复制)吗?
有人可以提供一种简单明了(但要比可能简单)的解释,该解释适用于计算(即使从Wikipedia复制)吗?
Answers:
事务是您要视为“整体”的工作单元。它必须全部发生或根本不发生。
一个典型的例子是将钱从一个银行帐户转到另一个银行帐户。为此,您必须先从源帐户中提取金额,然后将其存入目标帐户。该操作必须完全成功。如果中途停止,钱将会丢失,这是非常糟糕的。
在现代数据库中,事务还可以做其他一些事情-例如,确保您不能访问其他人写的一半的数据。但是基本思想是相同的-事务可以确保无论发生什么情况,您使用的数据都将处于明智的状态。他们保证在任何情况下都不会从一个帐户中提取资金,而不会将其存入另一个帐户。
这是一个简单的解释。您需要将100美元从帐户A转移到帐户B。您可以执行以下任一操作:
accountA -= 100;
accountB += 100;
要么
accountB += 100;
accountA -= 100;
如果这对中的第一个操作和第二个操作之间出现问题,则您有问题-100美元消失了,或者它们突然出现了。
事务是一种机制,它允许您标记一组操作并以某种方式执行它们,即要么全部执行(提交),要么系统状态就好像它们根本没有开始执行(回滚)。
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
将转移100美元或将两个帐户都保留为初始状态。
“一系列必须完全完成或完全失败,使数据库处于一致状态的数据操作语句”
事务是被视为一个单元的一个或多个SQL操作的序列。
具体来说,每个事务似乎都是独立运行的,此外,如果系统出现故障,则每个事务将全部执行或不全部执行。
交易的概念是由两个完全独立的问题驱动的。一个与多个客户端对数据库的并发访问有关,另一个与具有可抵抗系统故障的系统有关。
事务支持所谓的ACID属性:
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = 甲 tomicity,Ç onsistency,我溶胶化,d urability
我建议对“事务处理”进行定义会更有用,因为它涵盖了作为计算机科学概念的交易。
从维基百科:
在计算机科学中,事务处理是一种信息处理,分为单独的,不可分割的操作,称为事务。每个交易必须作为一个完整的单元成功或失败;它不能保持中间状态。
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
事务是数据处理不可分割的单元-所有事务都必须具有ACID属性:
即:原子性,一致性,隔离性和持久性交易是全有还是全无,但没有确定性(这意味着如果您将钱从一个帐户转移到另一个帐户,一个帐户必须损失那么多,而另一个帐户必须获得该金额,但是如果您从一个帐户转移资金,而另一个帐户仍然为空,这将不是交易)