数据库保护(ppt93)-经营管理(编辑修改稿)内容摘要:

下载 事务及事务特性 (transaction and it39。 s characteristics) 构成方式 ① 显式 BEGIN TRANSACTION …… SQL语句 END TRANSACTION/COMMIT/ROLLBACK 其中: COMMIT提交 , 事务对 DB的修改写回到磁盘上的 DB中去。 ROLLBACK:回滚 , 撤消对 DB之修改 , 恢复到事务开始状态。 ② 缺省 一条或多条 SQL语句 COMMIT/ROLLBACK 下载 事务及事务特性 (transaction and it39。 s characteristics) 事务的 ACID性质 原子性 ( Atomicity) ① 定义 事务是一个不可分割的工作单元 , 其对 DB的操作要么都做 ,要么都不做。 ② 目标 保证 DB数据的一致性 ( 转帐问题 )。 ③ 技术 日志 + ROLLBACK( UNDO) ( 意外终止 ) ; 并发控制 ( 交叉执行 )。 ④ 实现 实现由 DBMS自动完成。 下载 事务及事务特性 (transaction and it39。 s characteristics) 一致性 ( consistency) ① 定义 事务的执行必须是将 DB从一个正确 ( 一致 ) 状态转换到另一个正确 ( 一致 ) 状态。 如:转帐问题中 , A有 100万人民币是一个正确状态 , 减去 50万 , 转到 B帐上 50万 , DB从一个正确状态转变到另一个正确状态 ,这两个操作 , 若只做其中一个 , 则不能实现 DB从一个正确状态转到另一个正确状态 , 破坏了事务一致性。 ② 目标 保证 DB数据一致性 ( 丢失更新 、 读脏 、 读不可重复 )。 ③ 技术 并发控制。 ④ 实现 用户定义事务 ( 保证相关操作在一个事务中 ) ; DBMS自动维护之。 下载 事务及事务特性 (transaction and it39。 s characteristics) 隔离性 ( isolation) ① 定义 一个事务中对 DB的操作及使用的数据与其它并发事务无关 ,并发执行的事务间不能互相干扰。 ② 目标 防止链式夭折。 ③ 技术 并发控制。 ④ 实现 DBMS自动实现。 下载 事务及事务特性 (transaction and it39。 s characteristics) 持久性 ( durability) ① 定义 一个已提交事务对 DB的更新是永久性的 , 不受后来故障的影响。 ② 目标 : 保证 DB可靠性 ③ 技术 备份 +日志。 ④ 实现 : DBMS恢复子系统自动实现。 下载 并发控制技术 (technology of control simultaneously) 并发操作调度 : 保证多用户并发操作数据库中信息时的正确性 、 一致性所采取的措施。 封锁 : 一种并发调度的技术。 下载 并发控制技术 (technology of control simultaneously) 并发操作调度 1. 问题的提出 1)丢失更新 ( lost update) —— 两个以上事务从 DB中读入同一数据并修改之 , 其中一事务的提交结果破坏了另一事务的提交结果 , 导致该事务对 DB的修改被丢失。 2)不可重复读 ( read norepeatable) —— 同一事务重复读同一数据 , 但获得结果不同。 3)读 ‚ 脏 ‛ 数据 (read dirty) —— 读未提交的随后又被撤消 (Rollback)的数据。 下载 并发控制技术 (technology of control simultaneously) 1) 丢失更新 丢失修改是指事务 1与事务 2从数据库中读入同一数据并修改 ,事务 2的提交结果破坏了事务 1提交的结果 , 导致事务 1的修改被丢失。 例:在图中 , 事务 1与事务 2先后读入同一个数据 A=16, 事务 1执行 A←A - 1, 并将结果 A=15写回 , 事务 2执行 A←A - 1, 并将结果 A=15写回。 事务 2提交的结果覆盖了事务 1对数据库的修改 , 从而使事务 1对数据的修改丢失。 时间 T1 DB中 A值 T2 注: A=16表示从 DB中读入 A值。 t1 读 A=16 16 …… t2 …… 读 A=16 t3 计算 A: =A1 …… 存盘COMMIT 15 t4 15 计算 A: =A1 存盘 COMMIT 下载 并发控制技术 (technology of control simultaneously) 下载 并发控制技术 (technology of control simultaneously) 2) 不可重复读 不可重复读是指事务 1读取数据后 , 事务 2执行更新操作 , 使事务 1无法再现前一次读取结果。 具体地讲 , 不可重复读包括三种情况:  事务 1读取某一数据后 , 事务 2对其做了修改 , 当事务 1再次读该数据时 , 得到与前一次不同的值。  事务 1按一定条件从数据库中读取某些数据记录后 , 事务 2删除了其中部分记录 , 当事务 1再次按相同条件读取数据时 , 发现某些记录神秘地消失了。  事务 1按一定条件从数据库中读取某些数据记录后 , 事务 2插入了一些记录 , 当事务 1再次按相同条件读取数据时 , 发现多了一些记录。 下载 并发控制技术 (technology of control simultaneously) 时间 T1 DB中值 T2 t1 读 A=50 读 B= 100 计算 S:= A+ B = 150 A= 50 B= 100 S= 150 t2 A= 50 B= 200 S= 150 读 B=100 计算 B:= 2*B =200 COMMIT t3 读 A=50 读 B= 200 计算 S:= A+ B = 250 事务 T1验算结果不正确 下载 并发控制技术 (technology of control simultaneously) 3) 读 ‚ 脏 ‛ 数据 指事务 T1修改某一数据 , 并将其写回磁盘 ( 并未提交 , OS的I/O调度结果 ) , 事务 T2读取同一数据后 , T1由于某种原因被撤销 , 这时 T1修改过的数据恢复原值 , T2读到的数据与数据库中的数据出现不一致 , T2读得的不稳定的瞬间数据称为 ‚ 脏 ‛ 数据。 例如: T1将 C值修改为 200, T2读 C为 200, 若 T1被撤销 , 其修改作废 , C应恢复为 100, 这时再看 T2读到的 C值就成了无根据的数据。 下载 并发控制技术 (technology of control simultaneously) 产生上述三类数据不一致的原因: 并发操作破坏了事务的隔离性。 因此对事务的并发操作必须加以控制 , 才能避免此类现象的发生。 并发控制: 用正确的方法调度并发操作 , 使一个事务的执行不受其他事务的干扰 , 从而避免数据的不一致现象。 下载 并发控制技术 (technology of control simultaneously) 1) 单个事务 —— 若非并发的执行 , 每个事务都能保证 DB的正确性。 ( 上述问题 , 都是因事务并发执行产生 ) 2) 多个事务 —— 多个事务以任意串行方式执行都能保证 DB的正确性。 时间 T1 DB中 A值 T2 注: 无论是 T T2顺序或是 TT1顺序,结果A都为 14 t1 读 A=16 16 …… t2 A:= A- 1 t3 COMMIT 15 …… t4 15 A=15 t5 15 A: =A1 t6 14 COMMIT 下载 并发控制技术 (technology of control simultaneously) 显然 , 任何一事务并发执行时禁止其它事务执行 , 总能保证DB正确性 , 但不利于数据共享。 3) 可串行化调度 ( Serializability) —— 当且仅当多个事务并发执行的结果与该事务任一串行执行的结果相同时 , 则该并发执行是可串行化的。 ( 可串行化调度 ) 方法 1) 加锁控制 ( Locking) 2) 乐观假设 ( Optimistic) 3) 时标 ( timestamping) 下载 并发控制技术 (technology of control simultaneously) 封锁 封锁 并发控制的一种技术。 封锁规则 ① 对将要存取的数据须先申请加锁 , 加锁成功才能存取; ② 已被加锁的数据不能再加不相容锁; ③ 一旦退出使用应适时释放锁; ④ 未被加锁的数据不可对之解锁。 封锁类型 1)排它锁 ( X锁: exclusive lock) 又称写锁 若事务 Ti持有数据 Di的 X锁 , 则 Ti可读 、 写 Di, 其它任何事务不能再对 Di加任何锁 , 直至 Ti释放该 X锁。 X锁用于写保护 , 防止丢失更新。 下载 并发控制技术 (technology of control simultaneously) 2)共享锁 ( S锁: share lock) 又称读锁 若事务 Ti持有数据 Di的 S锁 , 则其它事务仍可对 Di加 S锁 , 但不可加 X锁 , 直到 Ti释放该 S锁。 一旦施加 S锁 , 读可共享但其它事务不可改。 S锁用于读操作。 封锁类型的相容矩阵 T1 T2 X S - Y相容的请求 N 不相容的请求 X N N Y S N Y Y - Y Y Y 下载 并发控制技术 (technology of control simultaneously) 1) 事务开始时申请 ( 常用 ) 无死锁; 锁开销少; 并发性低 2)一个 SQL语句开始时 并发性高; 锁开销大; 易产生死锁; 提交频繁 ( granularity) —— 被封锁数据的范围 逻辑单元 :整个 DB、 整个关系 、 整个索引 、 元组 、 索引项 、属性值集 、 属性值。 物理单元 :块 、 数据页 、 索引页。 评价: 1) 粒度大:被封锁对象少 , 并发性差 , 开销小。 2) 粒度小:被封锁对象多 , 并发性高 , 开销大。 下载 并发控制技术 (technology of contr。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。