事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可以分割的工作单位。
定义事务的语句
begin transaction;
commit;----提交事务的所有操作
rollback;----回滚:在事务云彩的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据的所有已完成的操作全部撤销,回滚到事务开始时的状态。
事务的ACID特性
原子性:Atomicity
事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
一致性:Consistency
事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态。
当数据库只包含成功事务提交的结果时,数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据所做的修改有一部分已经写入物理数据库,这时候数据库就处于一种不正确的状态,或者不一致的状态。
银行中的事务,某人要从A账号转账到B账号,可以定义为一个事务,包括两个操作:一个操作从A账号取出10000元,一个操作向B账号加入10000元。这两个操作要么全做,要么全不做,这样数据库才会保持一致性,若只进行一个操作,逻辑上救火发生操作,减少或者增加1000元。
隔离性:Isolation
一个事务的执行不能被其他事务干扰,一个事务的内部操作及使用的数据对其他并法事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性 Permanence
一个事务一旦提交,对数据库中数据的改变就是永久性的。接下来其他操作或故障不应该对其执行结果有任何影响。