数据库事务
-
事务的定义
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。其中COMMIT表示提交,表示将事务中所有修改放到磁盘上的物理数据库中去。
-
事务的特性
事务具有四个特性,分别是原子性(Acomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行必须要从一个一致性状态变换到另外一种一致性状态。也就是不能让数据库事务的一部分有一部分进入物理数据库,另一部分没有写进去,那么就说明处于一种错误的状态。
隔离性:一个事物的执行不能被其他事物干扰。
持续性:持续性指一个事务一旦提交,那么它对数据库中数据的改变就是永久性的。接下来的其他操作或故障不能影响其结果。
数据库故障
数据库故障一共包括4种,分别是事务内部的故障、系统故障、介质故障、计算机病毒。
事物内部的故障:处理方法为事务撤销(UNDO)
系统故障:处理方法包括两种。对于已经完成的事务,那么需要做的是重做(REDO)来确保之前提交过的事务能够正确进去物理数据库;对于没有完成的事务,那么需要做的是撤销(UNDO)