数据库7并发控制.ppt

上传人:wuy****n92 文档编号:88500783 上传时间:2023-04-26 格式:PPT 页数:21 大小:337KB
返回 下载 相关 举报
数据库7并发控制.ppt_第1页
第1页 / 共21页
数据库7并发控制.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《数据库7并发控制.ppt》由会员分享,可在线阅读,更多相关《数据库7并发控制.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、7并发控制v事务是并发控制的基本单位,保证事务acid特性是事务处理的重要任务,而事务acid特性可能遭到破坏的原因之一是多个事务对数据库的兵法操作造成的,为了保证事务的隔离性更一般,为了保证数据库的一致性,dbms需要对并发操作进行正确调度,这些就是数据库管理系统中并发控制机制的责任。v数据的不一致性:因多个事务对同一数据地交叉修改(并发操作)而引起地数据不正确或数据修改丢失就称为数据的不一致性。v并发操作带来的数据不一致性包括3类:丢失修改,不可重复读和读脏数据。v1.丢失修改v两个事务t1 t2读入同一数据并修改,t2提交的结果破坏了t1提交的结果,导致t1得修改被丢失v2.不可重复 读

2、v指t1读取数据后,t2执行更新操作,使t1无法再现前一次的读取结果v3.读脏数据v指t1修改某一数据,并将其写回磁盘,t2读取同一数据后,t1由于某种原因被撤销,数据恢复原值,而t2得到的数据与数据库中的数据不一致。丢失修改丢失修改不能重复读取不能重复读取读读“脏脏”数据数据T1T2T1T2T1T2读读A=20读读A=50读读B=100求和求和=150读读C=100C=C*2写回写回C读读A=20读读B=100B=B*2写回写回B读读C=200A=A-1写回写回A=19ROLLBACKC恢复为恢复为100A=A-1写回写回A=19读读A=50读读B=200求和求和=250并发操作举例并发操作

3、举例并发操作举例并发操作举例v产生上述3类数据不一致性的原因是并发操作破坏了事务的隔离性并发控制:就是要用正确的方式调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其它事务的干扰。另一方面,对数据库的应用有时允许某些不一致性。并发控制的主要方法是采用封锁机制(Locking)。封锁v封锁:事务对数据库操作之前,先对数据加锁以便获得这个数据对象的一定控制,使得其他事务不能更新此数据,直到该事务解锁为止。v1封锁的类型 共 享 性 封 锁(共 享 锁,或 称 S锁),也 称 读 锁(RLOCK):若事务T对数据对象A加上S锁,则事务T可以读取A但不能修改A,其他事务只能对A加S锁,而

4、不能加X锁,直道T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的锁之前不能修改A。排他性封锁(排他锁,或称X锁)也称写锁(WLOCK):若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直道T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能在读取和修改A。v2封锁类型的控制方式 封锁类型决定控制方式,用相容矩阵表示控制方式。X锁锁S锁锁X锁锁NNYS锁锁NYYYYY T2T1 v3、用封锁机制解决购买火车票问题封锁v封锁的方法可能引起活锁和死锁v4、活锁与死锁v(1)活锁:某一事务的请求可能永远得不到,该事务一直处于等待状态。v

5、(2)死锁:两个事务处于相互等待状态,永远不能结束。v举例:见下页v死锁的预防v1.一次封锁法v一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行v存在的问题:降低了系统的并发度v 很难事先精确地确定每个事物所要封锁的数据对象v2.顺序封锁法v预先对数据对象规定一个封锁顺序,所有的事务都按这个顺序实行封锁。v存在的问题:v很难维护这样的资源的封锁顺序v很难按规定的顺序去施加封锁v死锁的诊断与解除v1.超时法v如果一个事务的等待时间超过了规定的时间,就认为发生了死锁。v误判 时限太长时不能及时发现v2.等待图法v图中存在回路,死锁第4章 数据库安全及维护v本章重点内容v

6、数据库安全性问题的基本概念和保证数据安全性的基本措施v数据库并发情况下的数据安全及处理方法v数据发生故障情况下的恢复技术 4.1 数据库安全性v4.1.1 基本概念v数据库的安全性:指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。v安全性问题和保密问题是密切相关的。v4.1.2 安全措施的设置模型v在计算机系统中,安全措施通常是一级一级层层设置的。v4.1.2 安全措施的设置模型v1用户标识和鉴别v首先,系统提供一定的方式让用户标识自己的名字或身份。系统进行核实,通过鉴定后才提供机器使用权。常用的方法有:v用一个用户名或者用户标识号来标明用户身份,系统鉴别此用户是否为合法用户。v口

7、令(Password)v系统提供一个随机数,用户根据预先约定好的某一过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份 4.1 数据库安全性v4.1.2 安全措施的设置模型v2存取控制v当用户通过了用户标识和鉴定后,要根据预先定义好的用户权限进行存取控制,保证用户只能存取他有权存取的数据。这里的用户权限是指不同的用户对于不同的数据对象允许执行的操作权限,它由两部分组成,一是数据对象,二是操作类型,定义用户的存取权限就是要设置该用户可以在那些数据对象上进行哪些类型的操作。数据对象数据对象操作类型操作类型模式、外模式、内模式模式、外模式、内模式建立、修改、使用(检索)建立、修改、

8、使用(检索)表或者记录、字段表或者记录、字段查找、插入、修改、删除查找、插入、修改、删除4.1 数据库安全性v4.1.2 安全措施的设置模型v 2存取控制v 在非关系系统中,外模式、模式、内模式的建立、修改均由数据库管理员(DBA)负责,一般用户无权执行这些操作,因此存取控制的数据对象仅限于数据本身。在关系系统中DBA可以把建立、修改基本表的权力授予用户。所以,关系系统中存取控制的数据对象不仅有数据,而且有模式、外模式、内模式等数据字典中的内容。v数据库中存取控制的一般方法和技术:定义用户存取权限称为授权(Authorization),这些定义经过编译后存储在数据字典中。合法权限检查。4.1

9、数据库安全性v4.2.1 基本概念v1数据库的完整性v 数据库的完整性:指数据的正确性和相容性,DBMS必须提供一种功能来保证数据库中数据的完整性,这种功能亦称为完整性检查,即系统用一定的机制来检查数据库中的数据是否满足规定的条件,这种条件在数据库中称为完整性约束条件,这些完整性约束条件将作为模式的一部分存入数据库中。v2数据的完整性和安全性的区别v 数据的完整性和安全性是两个不同的概念,完整性和安全性又是密切相关的。4.2 数据库的完整性v4.2.2 完整性约束v完整性约束条件可以进行以下分类:v1.值的约束和结构的约束v 值的约束是对数据的值的限制,结构的约束是指对数据之间联系的限制。v关

10、于对数据值的约束。v 这类约束条件是指对数据取值类型、范围、精度等的规定,例如:v 对某个属性和属性组合规定某个值集。v 规定某属性值的类型和格式。v 规定某属性的值的集合必须满足某种统计条件。v关于数据之间联系的约束4.2 数据库的完整性v4.2.2 完整性约束v2.静态约束和动态约束v 静态约束:是指对数据库每一确定状态的数据所应满足的约束条件。v 动态约束:是指数据库从一种状态转变为另一种状态时新、旧值之间所应满足的约束条件。v3.立即执行约束和延迟执行约束v 立即执行约束:是指在执行用户事务时,对事务中某一更新语句执行完后马上此数据所应满足的约束条件进行完整性检查。v 延迟执行约束:是指在整个事务执行结束后方对此约束条件进行完整性检查,结果正确方能提交。4.2 数据库的完整性v4.2.2 完整性约束v4完整性的实现应包括两个方面:v 系统要提供定义完整性约束条件的功能;v 系统提供检查完整性约束条件的方法。4.2 数据库的完整性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁