文章目录
1、事务简介
事务(Transaction)是指用户定义的一个数据库操作序列,这些操作要门全做,要么全都不做,是一个不可分割的整体。 我想,99%的在阐述事务的概念时都会用银行转账的例子,那么我也用这个例子来阐述,因为它更容易理解。在银行转账业务中,顾客认为支票帐户向存储用户的资金转账就好似一个事务,这个动作要么全部执行,要么什么都不执行,如果转出用户在转账过程中他的金额成功减少了,但是收款方并没有收到,如果出现问题就会导致A的白花花的银子确实减少了,但是B的帐户确没有多出的银子,这就出现了无缘无故A的前少了的情况。因此在数据库系统中对事务的控制非常重要。
事务分为隐形事务和显示事务,DBMS按照默认规定将一条sql语句认为是一条隐式事务;而显式事务需要通过sql语句显式指定。
一般来讲,事务具有以下4个特征,简称为ACID:
- 原子性(Atomicity): 指事务是数据库的逻辑工作单位,事务中的所有操作,要么全做,要么全部不做。
- 一致性(consistency): 当数据库中只包含成功事务的提交结果时,就说数据库处于一致性状态。什么是不一致的状态呢?也就是说在执行事务时,假如由于断电等原因,事务中的一些操作已经被写入物理数据库,而一些操作没有被写入,那么此时就处于不一致的状态。