事务会把数据库从一种一致状态转换为另一种状态。在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。事务具有ACID这四个特性,分别为原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
事务是由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事务的目的。
事务的ACID
原子性:同一个事务是不可分割的单元,要么全部完成,要么全部失败。
一致性:数据库从一个状态转变成下一种一致的状态,在事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。例如A向B转了100,那么A的账户少了100,这时,B的账户必须多了100,不然就是不一致的。另外一个例子就是能量守恒定律。
隔离性:主要针对并发的情况,要求每个读写事务的对象对其他事务的操作对象是相互分离,即该事务提交之前对其他事务不可见。一般通过锁实现,在相关文章中有详细的介绍。