数据库理论(2)之数据库事务

来源:互联网 发布:软件测试简历项目经验 编辑:程序博客网 时间:2024/06/06 01:17
事务时是指用户在进行数据库操作时的一个数据库操作序列。对于该操作序列中的操作,要么全部执行,要么全都不执行,所有的操作都是一个整体,不可分割。

1、事务的概念
事务是一个操作集合,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
典型的例子就像从网上银行系统的帐户A转帐到帐户B,它经过两个阶段:a.从帐户A取出款项。b.把款项放入帐户B中。这两个过程要么同时成功,要么同时失败,这一系列的操作就被称为事务性(Transactional)操作。
与事务相关的概念有:事务提交和事务回滚。
事务提交:将事务中对数据的更新提交到数据库中,如果执行正常则事务结束,否则发生异常时,事务将回滚,将数据库状态还原到事务提交之前的状态。
事务回滚:主要发生于事务提交失败的情况下,中止事务并还原数据库状态。

2、事务的特性
事务具有4个特性:简称ACID特性。
a、原子性(Atomicity):当事务结束的时候,所有的资源状态都被视为一个操作,这个操作要不同时成功,要不同时失败。
b、一致性(Consistency):操作完成后,所有数据必须符合业务规则,否则事务必须中止。因此,数据中只包含事务提交成功的结果,这时事务处于一致性状态中。如果在提交事务时,因故障而中止,这些未完成的事务可能有些数据修改已经执行,而有些数据还没有执行,这时数据库处于不一致状态。
c、隔离性(Isolation):事务以相互隔离的方式执行,事务以外的实体无法知道事务过程中的中间状态。
d、持续性(Durability):事务一旦提交,其对数据库中的数据改变是永久的。

3、事务的特性被破坏的原因
a、多个事务并发运行,事务之间的操作交叉执行;
b、事务在执行的过程中被强行中止。

0 0
原创粉丝点击