关于事务处理(Transation)的概念

来源:互联网 发布:手机淘宝受骗怎么投诉 编辑:程序博客网 时间:2024/05/17 22:05

什么是事务?
    在大多数环境中,事务处理其实就是一个业务过程,它由一组组合成逻辑工作单元的数据库操作组成,通常需要跨对象操作,或访问多个资源的数据
    如:
   1、在 A 表中插入新的记录。
   2、在 B 表中插入新的记录。
   3、更新 C 表某几条记录
   ....等一系列操作
如果运行过程中数据库系统没有遇到错误,事务中的所有的修改都将生效,永久性提交到数据库。如果系统遇到错误或发生崩溃,则事务中所有的操作都会回滚(ROLLBACK),不会对数据库里数据作出任何修改。
一句话就是:事务中所有的的操作,要么全部生效,要么全部不生效。

事务的 ACID 属性,担保一个事务是永远不会不完整,数据永远不会不一致,并发事务是独立的,一个事务的效果是持久的。

#原子性(ATOMICITY):      
    一个事务要被完全的无二义性的做完或撤消。在任何操作出现一个错误的情况下,构成事务的所有操作的效果必须被撤消,数据应被回滚到以前的状态。
#一致性(CONSISTENCY):
    一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个成功的事务时,数据应处于一致的状态。换句话说,一个事务应该把系统从一个一致状态转换到另一个一致状态。举个例子,在关系数据库的情况下, 一个一致的事务将保护定义在数据上的所有完整性约束。
#隔离性(ISOLATION):
    在同一个环境中可能有多个事务并发执行,而每个事务都应表现为独立执行。串行的执行一系列事务的效果应该同于并发的执行它们。这要求两件事:
      1。在一个事务执行过程中,数据的中间的(可能不一致)状态不应该被暴露给所有的其他事务。 
      2。两个并发的事务应该不能操作同一项数据。数据库管理系统通常使用锁来实现这个特征。
#持久性(DURABILITY): 一个被完成的事务的效果应该是持久的。 

 

原创粉丝点击