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

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

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

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





posted @ 2019-07-06 16:13 Smalldy 阅读(...) 评论(...) 编辑 收藏