仓库管理的mysql事务处理_数据库事务管理详解.ppt

事务管理 事务管理 问题的引入 事务 并发控制 数据库恢复 问题的引入 多用户同时操作数据库 系统在执行用户的请求时出现故障 事务的基本概念 事务(Transaction) 用户定义的一个对数据库读写操作序列 一个不可分割的工作单位 在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。 事务和程序的区别? 程序包含多个事务 事务的性质 原子性(Atomicity) 事务中的操作要么都做,要么都不做 (All or None) 一致性(Consistency) 事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态 与原子性密切相关 隔离性(Isolation) 并发执行的各事务不能相互干扰 持续性/永久性(Durability) 事务一旦提交,它对数据库的更新不再受后继操作或故障的影响 ★ DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确。 事务的基本概念 显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。 。。。。。 COMMIT ROLLBACK 事务的基本概念 COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 事务运行的过程中发生了故障,不能继续执行,回滚事务的所有更新操作 事务回滚到开始时的状态 事务的基本概念 隐含事务与自动提交 ALTER INSERT CREATE DELETE DROP SELECT UPDATE TRUNCATE TABEL 干扰问题 丢失更新问题 未提交依赖(读“脏”数据)问题 不一致分析问题 幻象读问题 丢失更新问题 例: 旅客A来到A售票处,要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员A(下称用户A)在终端A查看剩余票信息; 几乎在同时,旅客B来到B售票处,也要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员B(下称用户B)从终端B查到了同样的剩余票信息; 旅客A买了一张15日13次7车厢5号下铺的软卧票,用户A更新剩余票信息并将它存入数据库; 这时用户B不知道用户A已经将15日13次7车厢5号下铺的软卧票卖出,使旅客B也买了一张15日13次7车厢5号下铺的软卧票,用户B更新剩余票信息并将它存入数据库(重复了用户A已经做过的更新)。 未提交依赖问题也称为读“脏”(Dirty Read)数据问题,查询一个已经被其他事务更新、但尚未提交的元组,将会引起未提交依赖问题。 不一致分析问题也称为不可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。 幻象读问题与不一致分析问题有关,当事务A读数据时,事务B在对同一个关系进行插入或删除操作,这时事务A再读同一条件的元组时,会发现神秘地多出了一些元组或丢失了一些元组,把这种现象称作幻象读。 可串行性 各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的; 按任何一个串行顺序依次执行多个事务是正确的。 事物交叉过程是正确的,当且仅当其与串行执行过程等价,则事务是可串行化的。 可串行性 可串行性 可串行性 可串行性 可串行性 封锁 封锁的基本技术 封锁机制 SQL Server中与封锁有关的命令 封锁粒度 意向锁 封锁的基本技术 当需要查询或更新数据时,先对数据进行封锁,以避免来自其他事务的干扰。针对不同的干扰问题可以有不同的封锁机制。 以丢失更新问题为例,实施封锁的基本思想是:当一个用户对一个表或记录进行更新时,封锁该表或记录,使其他用户不能在同一时刻更新相同的表或记录,迫使其他用户在更新后的基础上(而不是在更新前的基础上)再实施另外的更新操作。 封锁的基本技术 实施封锁以后的事件进程 封锁机制 共享封锁 独占封锁 更新封锁 共享封锁 共享封锁是为读操作设置的一种封锁,所以也称作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值