务处于何种状态,
以此确定是撤销该事务所做出的所有修改操作,
还是将修改的操作重新执
行。
(
2
)一致性
一致性要求事务执行完成后,
将数据库从一个一致状态转变到另一个一致状态。
它是一种以
一致性规则为基础的逻辑属性,
例如在转账的操作中,
各账户金额必须平衡,
这一条规则对
于程序员而言是一个强制的规定,
由此可见,
一致性与原子性是密切相关的。
事务的一致性
属性要求事务在并发执行的情况下事务的一致性仍然满足。
它在逻辑上不是独立的,
它由事
务的隔离性来表示。
(
3
)
隔离性
隔离性意味着一个事务的执行不能被其他事务干扰。
即一个事务内部的操作及使用的数据对
并发的其他事务是隔离的,
并发执行的各个事务之间不能互相干扰。
它要求即使有多个事务
并发执行,看上去每个成功事务按串行调度执行一样。这一性质的另一种称法为可串行性,
也就是说系统允许的任何交错操作调度等价于一个串行调度。
串行调度的意思是每次调度一
个事务,在一个事务的所有操作没有结束之前,另外的事务操作不能开始。由于性能原因,
我们需要进行交错操作的调度,
但我们也希望这些交错操作的调度的效果和某一个串行调度
是一致的。
DM
实现该机制是通过对事务的数据访问对象加适当的锁,从而排斥其他的事
务对同一数据库对象的并发操作。
(
4
)持久性
系统提供的持久性保证要求一旦事务提交,
那么对数据库所做的修改将是持久的,
无论发生
何种机器和系统故障都不应该对其有任何影响。例如,自动柜员机(
ATM
)在向客户支付
一笔钱时,
就不用担心丢失客户的取款记录。
事务的持久性保证事务对数据库的影响是持久
的,即使系统崩溃。正如在讲原子性时所提到的那样,系统通过做记录来提供这一保证。
DM
没有提供显式定义事务开始的语句,第一个可执行的
SQL
语句
(
除
CONNECT
语句外
)
隐含事务的开始,
但事务的结束可以由用户显式的控制。
在
DM
中以下几种情况都结束
(
正
常,非正常
)
某一事务:
(
1
)当某一连接的属性设置为自动提交,每执行一条语句都会提交;