事务与并发控制
事务 示例
? 设从帐号A中拨一笔款X到帐号B ,正常的执行过程是:
? 查看帐号A上是否有足够的款数,即余额 ≥ X ? – 若余额 X, 则给出提示信息,中止执行 – 若余额 ≥ X ,则执行下面三步
? 在A中记上一笔支出,从余额中减去 X
? 把值X传到B上 停电
? 在B中记上一笔收入,在余额上加X ,结束 事务的基本概念
? 事务是用户定义的数据操作系列,这些操作作为一个完整 的工作单元,一个事务内的所有语句被作为一个整体,要 么全部执行,要么全部不执行
? 例如:对于A帐户转帐给B帐户2000元钱,这个转账活动 包含两个操作: – 第一个操作:A帐户 -2000 – 第二个操作:B帐户 +2000 事务的基本概念
? 事务可以保证在一个事务中的全部操作或者全部成功,或 者全部失败 事务标记: BEGIN TRANSACTION 事务开始 … … COMMIT 或 ROLLBACK 事务提交: 事务回滚(中止): 事务完成了其包含的 撤消已做的所有操作, 所有活动,正常结束 回到事务开始时的状态 示例 A =10000 初始状态
当前账 B =3000 一致的状态
户数据 账户A :10000 A =A-2000 事务T 1: 账户B :3000 B =B+2000 读→修改→写 修改数据库
原创力文档

文档评论(0)