第八章数据保护之事务和锁8
3事务处理8
3事务处理一、事务简介1
事务由来2
什么是事务3
事务属性及分类二、管理事务1
隐性事务2
自动提交事务3
显式事务一、事务简介1.事务由来使用DELETE命令或UPDATE命令对数据库进行更新时一次只能操作一个表,这会带来数据库的数据不一致的问题(即使已经设置级联删除或修改,计算机内部也是分别先后删除每一个表)
例如:在FACTORY数据库中,若取消了“市场部”,需要将‘市场部’从depart表中删除,要修改depart表,而WORKER表中的部门号与市场部相对应的职工也应删除
因此,两个表都需要修改,这种修改只能通过两条DELETE语句进行
假设市场部编号为‘3’第一条DELETE语句修改depart表deletefromdepartwhere部门号=’3’第二条DELETE语句修改WORKER表deletefromWORKERwhere部门号=’3’在执行第一条DELETE语句后,数据库中的数据已处于不一致的状态,因为此时已经没有“市场部”了,但WORKER表中仍然保存着属于“市场部”的员工记录
只有执行了第二条DELETE语句后数据才重新处于一致状态
但是,如果执行完第一条语句后,计算机突然出现故障,无法再继续执行第二条DELETE语句,则数据库中的数据将处于永远不一致的状态
因此,必须保证这两条DELETE语句同时执行
为解决类似的问题,数据库系统通常都引入了事务(Transaction)的概念
什么是事务事务是单独的逻辑工作单元,也是一个操作序列,该单元中可以包含多个操作以完成一个完整的任务
如果事务成功,在事务中所做的所有的操作都会在提交时完成并且永久地成为数据库的一部分
如果事务遇到错误,则必须取消或回滚,这样所有的操作都将被消除,就象什么也没有执行过一样
事务作为一个整体,只有两种状