网络技术基础教程第九章

网络技术基础教程第九章

ID:44992106

大小:611.50 KB

页数:78页

时间:2019-11-06

网络技术基础教程第九章_第1页
网络技术基础教程第九章_第2页
网络技术基础教程第九章_第3页
网络技术基础教程第九章_第4页
网络技术基础教程第九章_第5页
资源描述:

《网络技术基础教程第九章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章网络数据管理9.1网络数据库的并发控制9.2网络数据库的安全机制9.3网络数据库的访问控制9.4网络数据存储9.5网络环境下数据备份与恢复9.6Web数据管理9.1网络数据库的并发控制并发控制是指在网络环境下对数据库的并发操作进行规范的机制。并发控制的作用主要是协调同一时间访问同一数据库文件的多个事务之间的关系,防止这些事务之间发生冲突。9.1.1事务事务(transaction)是数据库的逻辑工作单元,它是一组对数据的操作序列。事务是并发控制的基本单位。事务具有以下四个基本特性:(1)原子性(atomici

2、ty)。(2)一致性(consistency)。(3)隔离性(isolation)。(4)持续性(durability)。这四个性质又被称为事务的ACID准则。下一页返回9.1网络数据库的并发控制9.1.2并发控制的必要性我们可以通过数据库中的并发操作提高数据库的处理速度和效率,但数据库的并发操作会带来数据的不一致性。数据的不一致性:因多个事务对同一数据地交叉修改(并发操作)而引起地数据不正确或数据修改丢失就称为数据的不一致性。从图9-1中我们仔细分析并发操作,可能会产生以下几种不一致性:丢失修改:两个事务T1和T

3、2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,T1的修改被丢失。不能重复读取:事务T1读取某一数据,事务T2读取并修改了同一数据,T1为了对读取值进行校对再读取此数据,得到了不同的结。例如T1读取B=100,T2读取B并把B该为200,T1再读B得到200与第一次读取值不一致。下一页返回上一页9.1网络数据库的并发控制读“脏”数据:事务T1修改某一数据,事务T2读取同一数据,而T1由于某种原因被撤消,则T2读到的数据就为“脏”数据,即不正确的数据,例如,T1把C由100改为200,T1读到C为200,

4、而事务T1由于被撤消,其修改宣布无效,C恢复为原值100,而T2却读到了C为200,与数据库内容不一致。为了解决上述问题我们引入了并发控制并发控制:就是要用正确的方式调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其它事务的干扰。另一方面,对数据库的应用有时允许某些不一致性。并发控制的主要方法是采用封锁机制(Locking)。下一页返回上一页9.1网络数据库的并发控制9.1.3基于锁的并发控制技术锁是数据项上的并发控制标志,它有两种类型:共享锁(SharedLock,简称S锁)和排它锁(Exclusi

5、veLock,简称X锁)。基于锁的并发控制是事务对数据操作前必须获得对该数据的锁,完成操作后在适当时候释放锁,而得不到锁的事务处于等待状态。下一页返回上一页9.1网络数据库的并发控制1.封锁协议事务在加锁和释放锁时,都必须遵守一组规则,这组规则称为封锁协议。一级封锁协议一级封锁协议是事务在修改数据R之前必须对其加X锁,直到事务结束,如果未能获得X锁,则该事务进入等待状态,直至获得X锁才能执行。二级封锁协议二级封锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后释放S锁。三级封锁协议三级封

6、锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后并不释放S锁,直到整个事务结束后才释放。下一页返回上一页9.1网络数据库的并发控制2.封锁粒度封锁粒度是指封锁的数据对象的大小。封锁粒度越小,系统中能够被封锁的对象就越多,并发度越高,并发控制的系统开销也就越大。反之,封锁粒度越大,系统中能够被封锁的对象就越少,并发度越低,并发控制的系统开销也就越小。3.死锁加锁技术在解决并行操作引发的数据不一致问题的同时,锁自身也会引发问题,主要是死锁(deadlock)。如果一个事务申请锁未成功,则须

7、等待其它事务释放锁,这就形成了事务之间的等待关系。当事务中出现循环等待时,如果不加干预,就会一直等待下去,这种状态称为死锁。下一页返回上一页9.1网络数据库的并发控制(1)死锁的检测和处理死锁检测的方法一般有以下两种:①超时法。如果一个事务的等待时间超过某时限,则认为发生死锁。②等待图法。等待图是一个有向图。如果事务T1需要的数据已经被事务T2封锁,就从T1到T2画一条有向线。这些事务之间的有向线构成一有向图。有向图中出现回路即表明出现了死锁。数据库管理系统对死锁一般采用如下策略:①在循环等待的事务中,选择一个事务

8、作为牺牲者。②回滚牺牲的事务,释放其获得的锁。③将释放的锁让给等待的事务。下一页返回上一页9.1网络数据库的并发控制选取牺牲事务的方法有以下几种:①选择最迟交付的事务作为牺牲者。②选择获得锁最少的事务作为牺牲者。③选择回滚代价最小的事务作为牺牲者。(2)死锁的预防数据库系统中预防死锁常用的方法有以下两种:①一次加锁法。一次加锁法是在事务执行前,对要使用的所有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。