点击蓝色字关注“SQL数据库运维”

数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,它是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
在数据库系统中,事务是工作的离散单位,它可以是修改一个用户的账户余额,也可以是库存项的写操作。
数据库事务是一个逻辑上的划分,有的时候并不是很明显,它可以是一个操作步骤也可以是多个操作步骤。
性质(必须满足所谓的ACID属性)
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。不存在拆分开来,部分成功的场景。它不会结束停留在中间某个中间环节。如果事务在执行过程中发生错误,会被回滚到事务开始前的状态,如同这个事务从来没有执行过一样。
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序 串行执行的结果相一致。所谓的一致性指的是数据库中的约束不会被打破,这种约束指两部分,第一数据库的约束,如金额不能为负值,外键的约束;第二业务的约束,金额的转出的总额和转入的总额必须要相等。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的,也就是多个并发事务之间操作是隔离的。
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。

作用
一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:
1、为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。


点击关注“SQL数据库运维”,后台回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。




