第82章数据库保护技术并发.ppt

上传人:王** 文档编号:608054 上传时间:2023-12-08 格式:PPT 页数:47 大小:1.76MB
下载 相关 举报
第82章数据库保护技术并发.ppt_第1页
第1页 / 共47页
第82章数据库保护技术并发.ppt_第2页
第2页 / 共47页
第82章数据库保护技术并发.ppt_第3页
第3页 / 共47页
第82章数据库保护技术并发.ppt_第4页
第4页 / 共47页
第82章数据库保护技术并发.ppt_第5页
第5页 / 共47页
第82章数据库保护技术并发.ppt_第6页
第6页 / 共47页
第82章数据库保护技术并发.ppt_第7页
第7页 / 共47页
第82章数据库保护技术并发.ppt_第8页
第8页 / 共47页
第82章数据库保护技术并发.ppt_第9页
第9页 / 共47页
第82章数据库保护技术并发.ppt_第10页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第82章数据库保护技术并发.ppt》由会员分享,可在线阅读,更多相关《第82章数据库保护技术并发.ppt(47页珍藏版)》请在优知文库上搜索。

1、数据库系统概论数据库系统概论第八章第八章 数据库保护技术数据库保护技术第四章第四章 数据库安全性数据库安全性8.1 数据库的安全性及数据库的安全性及SQL Server的安全管理的安全管理 8.2 数据库完整性及数据库完整性及SQL Server的完整性控制的完整性控制8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.4 数据库恢复技术与数据库恢复技术与SQL Server数据恢复机制数据恢复机制问题的产生问题的产生v多用户数据库系统的存在 允许多个用户同时使用的数据库系统n飞机定票数据库系统n银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 问题的产生

2、(续)问题的产生(续)v不同的多事务执行方式不同的多事务执行方式 (1 1)串行执行)串行执行(2 2)并发执行)并发执行(3)并行方式(多处理机)并行方式(多处理机)T1T2T3事务的串行执行方式问题的产生(续)问题的产生(续)v事务并发执行带来的问题事务并发执行带来的问题 多个事务多个事务同时存取同一数据同时存取同一数据的情况时,可能会的情况时,可能会存取和存存取和存储不正确储不正确的数据的数据v数据库的并发控制:数据库的并发控制:控制数据库,防止多用户并发使用数据库时造成数据错误和控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证程序运行错误,保证数据的完整性数据的完

3、整性。8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.3.1 8.3.1 事务及并发控制的基本概念事务及并发控制的基本概念8.3.2 8.3.2 封锁及封锁协议封锁及封锁协议8.3.3 8.3.3 封锁出现的问题及解决方法封锁出现的问题及解决方法8.3.4 SQLServer8.3.4 SQLServer的并发控制(了解,不考核)的并发控制(了解,不考核)8.3.1 事务及并发控制的基本概念v1、事务的概念和特征v2、事务并发操作可能产生的数据不一致的问题1、事务的概念和特征、事务的概念和特征v1.事务的概念事务的概念 事务:是用户定义的一个数据库操作序列,这些

4、操作要么全做要事务:是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。么全不做,是一个不可分割的工作单位。一个程序中可以包含多个事务一个程序中可以包含多个事务 在在SQLSQL语言中,定义事务的语句有三条:语言中,定义事务的语句有三条:BEGIN TRANSACTIONBEGIN TRANSACTION;COMMITCOMMIT;ROLLBACKROLLBACK;1、事务的概念和特征、事务的概念和特征v 定义方式:v BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。CO

5、MMIT ROLLBACK提交提交回滚回滚1、事务的概念和特征(续)、事务的概念和特征(续)v2.事务的事务的ACID特性特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)1、事务的概念和特征(续)、事务的概念和特征(续)v3、事务特性遭破坏的原因、事务特性遭破坏的原因 1 1)多个事务并发运行时,不同事务的交叉执行(隔离性)多个事务并发运行时,不同事务的交叉执行(隔离性)2 2)事务在运行过程中被强制终止(原子性、一致性)事务在运行过程中被强制终止(原子性、一致性)v 事务处理的两个工作:事务处理的两个工作:并发控制任

6、务(并发控制任务(8 8、3 3小节)小节)保证事务的隔离性,确保数据库的一致性。保证事务的隔离性,确保数据库的一致性。数据库恢复任务(数据库恢复任务(8 8、4 4小节)小节)保证事务的原子性、一致性。保证事务的原子性、一致性。8.3.1 事务及并发控制的基本概念v1、事务的概念和特征v2、事务并发操作可能产生的数据不一致的问题T1的修改被的修改被T2覆盖了!覆盖了!2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题 例例 飞机订票系统中的一个活动序列飞机订票系统中的一个活动序列 甲售票点甲售票点(甲事务甲事务)读出某航班的机票余额读出某航班的机票余额A A,

7、设,设A=20A=20;乙售票点乙售票点(乙事务乙事务)读出同一航班的机票余额读出同一航班的机票余额A A,也为,也为2020;甲售票点卖出一张机票,修改余额甲售票点卖出一张机票,修改余额AA-1AA-1,所以,所以A A为为1919,把,把A A写回写回数据库;数据库;乙售票点也卖出一张机票,修改余额乙售票点也卖出一张机票,修改余额AA-1AA-1,所以,所以A A为为1919,把,把A A写写回数据库回数据库 n 结果明明卖出两张机票,数据库中机票余额只减少结果明明卖出两张机票,数据库中机票余额只减少1 1v 这种情况称为数据库的不一致性,是由并发操作引起的。(隔离性)这种情况称为数据库的

8、不一致性,是由并发操作引起的。(隔离性)v 并发操作时,甲、乙两个事务的操作序列的调度是随机的。并发操作时,甲、乙两个事务的操作序列的调度是随机的。v 并发操作带来的数据不一致性,主要包括:并发操作带来的数据不一致性,主要包括:丢失修改(丢失修改(Lost UpdateLost Update)不可重复读(不可重复读(Non-repeatable ReadNon-repeatable Read)读读“脏脏”数据(数据(Dirty ReadDirty Read)2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题1).丢失修改丢失修改v两个事务T1和T2读入同一数据并

9、修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。v上面飞机订票例子就属此类 丢失修改(续)丢失修改(续)T1T2R(A)=16 AA-1 W(A)=15W丢失修改 R(A)=16AA-1W(A)=152).不可重复读不可重复读v不可重复读是指:事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。不可重复读(续)不可重复读(续)v不可重复读包括三种情况:(1)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值 不可重复读(续)不可重复读(续)n T1读取B=100进行运算n T2读取同一数据B,对其进行修改后将B=2

10、00写回数据库。n T1为了对读取值校对重读B,B已为200,与第一次读取值不一致 T1T2 R(A)=50 R(B)=100求和=150R(B)=100BB*2(B)=200 R(A)=50R(B)=200和=250(验算不对)不可重复读 例如:不可重复读(续)不可重复读(续)(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了(3)事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(Phantom Row

11、)3).读读“脏脏”数据数据 读“脏”数据是指:n事务T1修改某一数据,并将其写回磁盘n事务T2读取同一数据后,T1由于某种原因被撤销n这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致nT2读到的数据就为“脏”数据,即不正确的数据 读读“脏脏”数据(续)数据(续)T1T2 R(C)=100 CC*2 W(C)=200R(C)=200ROLLBACK C恢复为100例如例如读“脏”数据 n T1将C值修改为200,T2读到C为200n T1由于某种原因撤销,其修改作废,C恢复原值100n 这时T2读到的C为200,与数据库内容不一致,就是“脏”数据 v数据不一致性:由于并发

12、操作破坏了事务的隔离性v并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性 2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题v并发控制的主要技术 封锁(Locking)时间戳(Timestamp)乐观控制法v商用的DBMS一般都采用封锁方法 2、事务并发操作可能产生的数据不一致的问题、事务并发操作可能产生的数据不一致的问题8.3 数据库并发控制及数据库并发控制及SQL Server并发控制并发控制8.3.1 8.3.1 事务及并发控制的基本概念事务及并发控制的基本概念8.3.2 8.3.2 封锁及封锁协议

13、封锁及封锁协议8.3.3 8.3.3 封锁出现的问题及解决方法封锁出现的问题及解决方法8.3.2 封锁及封锁协议v封锁是使事务对它要操作的数据有一定的控制能力。封锁是使事务对它要操作的数据有一定的控制能力。v封锁具有封锁具有3个环节:个环节:申请加锁申请加锁,即事务在操作前要对它将使用的数据提出加锁,即事务在操作前要对它将使用的数据提出加锁请求;请求;获得锁获得锁,即当条件成熟时,系统允许事务对数据加锁,从,即当条件成熟时,系统允许事务对数据加锁,从而事务获得数据的控制权;而事务获得数据的控制权;释放锁释放锁,即完成操作后事务放弃数据的控制权。,即完成操作后事务放弃数据的控制权。8.3.2 封

14、锁及封锁协议v1、锁的类型v2、封锁协议8.3.2 封锁及封锁协议 T1 T2XS-XNNYSNYY-YYYv1、锁的类型 排它锁(Exclusive Locks,简记为X锁)共享锁(Share Locks,简记为S锁)8.3.2 封锁及封锁协议v2、封锁协议在对数据对象加锁时,需要约定一些规则,如,何时申请在对数据对象加锁时,需要约定一些规则,如,何时申请X X锁或锁或S S锁、持锁时间、何时释放等。这些规则统称为封锁协议。锁、持锁时间、何时释放等。这些规则统称为封锁协议。v(1)(1)一级封锁协议。一级封锁协议。事务事务T T在修改数据之前必须先对其加在修改数据之前必须先对其加X X锁,直

15、到事务结束才释放。锁,直到事务结束才释放。v(2)2)二级封锁协议。二级封锁协议。事务事务T T对要修改数据必须先加对要修改数据必须先加X X锁,直到事务结束才释放锁,直到事务结束才释放X X锁;锁;对要读取的数据必须先加对要读取的数据必须先加S S锁,读完后即可释放锁,读完后即可释放S S锁。锁。v(3)(3)三级封锁协议。三级封锁协议。事务事务T T在读取数据之前必须先对其加在读取数据之前必须先对其加S S锁,锁,在要修改数据之前必须先对其加在要修改数据之前必须先对其加X X锁,锁,直到事务结束后才释放所有锁。直到事务结束后才释放所有锁。使用封锁机制解决丢失修改问题使用封锁机制解决丢失修改

16、问题T1T2 Xlock A R(A)=16Xlock A AA-1等待等待 W(A)=15等待等待 Commit等待等待 Unlock A等待等待获得获得Xlock AR(A)=15AA-1W(A)=14CommitUnlock A例:例:n 事务事务T1T1在读在读A A进行修改之前先进行修改之前先对对A A加加X X锁锁n 当当T2T2再请求对再请求对A A加加X X锁时被拒绝锁时被拒绝n T2T2只能等待只能等待T1T1释放释放A A上的锁后上的锁后T2T2获得对获得对A A的的X X锁;这时锁;这时T2T2读到读到的的A A已经是已经是T1T1更新过的值更新过的值1515n 避免了丢失避免了丢失T1T1的更新。的更新。没有丢失修改没有丢失修改一级一级封锁协议。封锁协议。使用封锁机制解决读使用封锁机制解决读“脏脏”数据问数据问题题T1T2 Xlock CR(C)=100CC*2W(C)=200Slock C等待 ROLLBACK等待(C恢复为100)等待Unlock C等待获得获得Slock CR(C)=100Commit CUnlock C例例n 事务事务T1T1在对在对C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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