事务是一个操作序列,这些操作“要么都做,要么都不做”,是数据库环境中不可分割的逻辑工作单位。是数据库中恢复和并发控制的基本单位。事务显示结束的语句为:COMMIT(正常执行完毕,提交)、ROLLBACK(出现事务内部逻辑错误,回滚)。
数据库故障会造成数据的不一致。数据库的更新是由事务驱动的,事务的ACID属性被破坏是数据不一致的根本原因。系统重启会使内存中更新过的数据未写入硬盘而丢失,破坏了事务的持久性,即事务一经提交,其对数据库的影响会体现到数据库中。
为保证事务发生故障后可恢复,DBMS使用日志。即在对数据更新前,先将欲做的修改在日志中记录并写入硬盘,然后再进行数据更新。当系统重启时,根据日志文件对数据进行恢复。
并发事务如果对数据读写时侯不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁 (Exclusive Locks,简称X锁)和共享锁(Share Locks,简称S锁)。