数据库相关:何种状况下会使用事务

事务具备如下属性:
1. 原子性:一个事务要被彻底性的无二义性的作完或者撤销,在任何一个操做出现错误的状况下,构成事务全部操做所形成的效果都必须被撤销,数据应该被回滚到之前的状态。
2. 一致性:一个事务应该保护全部定义在数据上的不变的属性(例如完整性约束)。在完成了一个成功的事务时,数据应处于一致的状态。换句话说,一个事务应该把系统从一个一致-状态转换到另外一个一致状态。举个例子,在关系数据库的状况下, 
一个一致的事务将保护定义在数据上的全部完整性约束。 
 
3. 隔离性:在同一个环境中可能有多个事务并发执行,而每一个事务都应表现为独立执行。串行的执行一系列事务的效果应该同于并发的执行它们。这要求两件事: 

在一个事务执行过程当中,数据的中间的(可能不一致)状态不该该被暴露给全部的其余事务。 
两个并发的事务应该不能操做同一项数据。数据库管理系统一般使用锁来实现这个特征。
4. 持久性:事务形成的改动是持久的
 
简单来讲,事务一旦开始执行,只有两条路径,一是完整的正确的执行下去,二是在某一步骤出现错误,就回滚到未执行此事务的状态。
 
何时会用到事务呢?在执行一系列数据库操做时,要保证这些操做必须彻底正确执行,不然就不执行,在这种状况下,适合使用事务,例如将一些数据插入到两个相关联的表中,并且不能只有一张表插入成功,这种状况下,使用事务,不管是否插入成功,都不会对数据库形成很差的影响。
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">数据库



相关文章
相关标签/搜索