文档详情

数据库并发性.ppt

发布:2017-09-23约字共38页下载文档
文本预览下载声明
Confidential / All Right Reserved 数据库并发性 第十章 数据库并发性 10.1 并发性概述 10.1.1 事务的概念 工作单元 为了保证数据库中数据的一致性,对于应用程序来说,常常必须一步完成一系列数据的变动。 10.1.1 事务的概念 事务的四个特性 10.1.2 事务的串行调度、并发调度及可串行化 10.1.2 事务的串行调度、并发调度及可串行化 例:有两个事务T1和T2,它们都要预订某列次火车的硬座 车票1张和卧铺3张,因此它们包含了下列操作: 10.1.2 事务的串行调度、并发调度及可串行化 串行调度的结果总是正确的 10.1.2 事务的串行调度、并发调度及可串行化 并发调度效率高,但结果不一定正确 10.1.3 并发操作带来的四个问题 10.1.3 并发操作带来的四个问题 1. 丢失更新 10.1.3 并发操作带来的四个问题 2. 未提交读 10.1.3 并发操作带来的四个问题 3. 不可重复读 10.1.3 并发操作带来的四个问题 4. 幻象读 10.1.3 并发操作带来的四个问题 4. 幻象读 10.2 封锁 封锁 封锁协议 活锁和死锁 DB2隔离级别 10.2.1 封锁 10.2.1 封锁 锁相容矩阵 10.2.2 封锁协议 10.2.2 封锁协议 1. 一级封锁协议 10.2.2 封锁协议 例:一级封锁协议解决丢失更新问题 10.2.2 封锁协议 2. 二级封锁协议 10.2.2 封锁协议 例:二级封锁协议解决未提交读问题 10.2.2 封锁协议 3. 三级封锁协议 10.2.2 封锁协议 例:三级封锁协议解决不可重复读问题 10.2.2 封锁协议 不同级别的封锁协议 10.2.3 活锁和死锁 10.2.3 两阶段锁协议 10.2.3 两阶段锁协议 例,事务T1遵守两阶段锁协议,其封锁序列是: 10.3 DB2隔离级别 DB2通用数据库试图实现并行性的方法之一就是使用隔离级别,这种方法将决定如何在访问的事务中使用数据时锁定该数据或将其与其它事务隔离。 10.3 DB2隔离级别 1. 可重复读 10.3 DB2隔离级别 1. 可重复读 10.3 DB2隔离级别 2. 读稳定性 10.3 DB2隔离级别 2. 读稳定性 10.3 DB2隔离级别 3. 游标稳定性 10.3 DB2隔离级别 3. 游标稳定性 10.3 DB2隔离级别 4. 未提交读 10.3 DB2隔离级别 5. 隔离级别的选择 例:select * from student where ClsNo=‘0018’; 读稳定性(RS)隔离级锁定作为结果表中的那一部分行。 例:用户有一张包含1000行记录的表,查询结果返回10 行记录,则仅有10条记录被锁定。 使用读稳定性的应用程序不能读未提交的数据,但不能阻止通过插入操作在结果集中加入新行,即得到新增的幻象行。 例:select * from student where ClsNo=‘0018’; 游标稳定性(CS,或称光标稳定性)隔离级锁定工作单元工作期间光标所在的任何行。对该行的锁定将保持到取出下一行记录或整个工作单元终止。 例:再次引用扫描1000行的示例,如果使用游标稳定性, 将只锁定当前游标位置以下的行。当移离该行时, 也就除去了该锁(除非更新该行)。 使用游标稳定性的应用程序不能读未提交数据,应用程序读取的数据将保持一致性,但不可重复读或幻象读状况仍可能存在。 例:select * from student where ClsNo=‘0018’; 未提交读(UR)隔离级也称为“脏读”,是DB2数据库支持的最低级别的隔离级。不需要对任何行锁定。 可以用来存取其它应用程序的未提交的数据更新。 ⑴ 当用户在只读型表上使用查询,或者仅使用SELECT语句,而并不在意 是否从并发应用中获取了未提交数据时,则应使用未提交读隔离级。 ⑵ 当用户需要获得最大的并发度,同时又只想见到并发应用已提交的数 据时,则应使用游标稳定性隔离级。 ⑶ 当用户的应用程序在并发环境中操作时,则应使用读稳定性隔离级。 这意味着在整个工作单元工作期间,被限定的行需要保持稳定。 ⑷ 假如用户需要在同一事务中结果集不发生改变,则需要使用可重复读 隔离级。 System の連携による一貫した Status 管理と Monitoring 一貫管理による異常時 (= 納期遅延) への対応の迅速さのアピール 事故対応時の緊急対応 (Back up) ** CITIC に B
显示全部
相似文档