- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库7.DBSystem概要
1;并发控制;并发控制概述
事务模型
事务调度与可串行性
基于锁的并发控制协议;数据库系统一般可以分为单用户和多用户系统两种。
在任何时刻只允许一个用户使用的数据库系统称为单用户数据库系统。
允许多个用户同时使用的数据库系统称为多用户数据库系统。
多数数据库系统都是多用户系统。
例如飞机订票数据库系统、银行数据库系统等;在一个多用户数据库系统中,数据库中存储的数据项是用户程序存取的基本信息资源。
一个存取或改变数据库内容的程序的运行称为一个数据库事务,简称事务。
多个事务可同时运行并同时要求存取或修改同一个数据库记录。如果不对并发运行的事务加以适当的控制,则会引起很多问题。;以飞机订座数据库系统为例:
每个航班对应一个数据库记录。每个记录包括对应航班已经预订的座位数和一些其他信息
设X和Y分别是航班A1和A2对应的数据库记录。
事务T1取消航班A1上已经预订的N个座位,并为航班A2增加N个预订座位.
事务T2为航班A1增加M个座位。 ;数据更新丢失问题;临时值问题;错误聚集计算问题 ;并发控制概述
事务模型
事务调度与可串行性
基于锁的并发控制协议;一个存取或更改数据库的程序的运行过程称为数据库事务,简称事务。
事务是数据库应用程序的基本逻辑单位。 ;任何事务都使用READ和WRITE操作存取数据库
READ(X, Y)的实现算法:
确定包含数据项X的磁盘块的地址A;
如果地址为A的数据不在主存缓冲区中,则把A所在磁盘块读入到主存缓冲区;
从主存缓冲区中找到数据项X,存入程序变量Y。;任何事务都使用READ和WRITE操作存取数据库
WRITE(Y, X)的实现算法:
确定包含数据项X的磁盘块的地址A;
如果地址为A的磁盘块不在主存缓冲区中,则把A磁盘块读入主存缓冲区;
把程序变量Y的值存入A磁盘块所在主存缓冲区;
立即或以后把包含A磁盘块的缓冲区写到磁盘存储器。;事务的原子性
事务中的所有操作要么全部被成功地完成而且这些操作的结果被永久地存储到数据库中,要么这个事务对数据库和其他事务没有任何影响。称这个性质为事务的原子性。
每个事务都必须满足原子性。;事务的原子性
事务原子性可能遭到破坏的因素有如下两个:
多个事务并发运行时,不同事务的操作交叉运行。
数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性。
事务在运行中间被强行停止。
数据库管理系统必须保证被强行终止的事务对数据库和其他事务没有任何影响。
保证事务原子性的主要方法是“串行化”方法。;事务的状态;事务的性质
原子性 事务是数据库系统运行的原子程序单元。每个事务的所有操作要么被全部成功地执行,要么一个也不被执行;
数据库正确保持性 一个事务的正确执行必须把数据库从一个正确状态转换为另一个正确状态;
操作结果永久保持性 如果一个事务使数据库发生了改变,而且该事务已经进入提交状态,则这些改变将不会因以后的失败而丢失;
独立性 一个事务在进入提交状态之前,它对数据库的更新不可由其他事务读取。这个性质避免了上节讨论的临时值问题,也避免了后边将讨论的嵌套回滚处理问题;
可串行性 并发运行的多个事务的运行效果与这些事务按某种次序顺序运行的效果相同.;并发控制概述
事务模型
事务调度与可串行性
基于锁的并发控制协议;设T0和T1是两个事务。
事务T0从帐号A转50元钱到帐号B。
事务T1把帐号A的存款的10%转到帐号B。;设帐号A和帐号B目前的存款分别是1000元和2000元。
调度1:;设帐号A和帐号B目前的存款分别是1000元和2000元。
调度2:;定义1 N个事务的一个调度S是N个事务的所有操作的一个序列,表示这些操作的执行顺序,并且满足对于N个事务中的每个事务T,如果操作i在T中先于操作j执行,则在S中操作i也必须先于操作j执行。
前面的调度1和调度2是两个最简单调度,即一个事务的所有操作都执行完后才执行另一个事务的所有操作。称这样的调度为串行调度,表示了事务的串行运行。
称其他类型的调度为并行调度。;一个并行调度的例子
执行结果与调度1相同。;另一个并行调度的例子
执行结果错误,多了50元。;调度的可串行性
每个事务独立运行时不会引起任何问题,串行调度一定产生正确的运行结果。但串行调度限制了系统并发性的发挥。
并行调度可能导致不正确的事务运行结果!
希望并行调度能够和串行调度具有相同的效果,这需要确定具有串行调度效果的系统方法,即可串行性理论。;N个事务的调度S是可串行的如果S等价于一个串行调度。由于串行调度是正确的,所以一个并行调度S等价于一个串行调度意味着S是正确的。;N个事务的调度S是可串行的如果S等价于一个串行调度。由于串行调度是正确的,所以一个并行调度S等价于一个串行调度意味着S是正确的。
等价的概念:
调度的冲突等价性
调度的效果等价性
文档评论(0)