数据库保护及SQLServer的数据库保护技术

数据库保护及SQLServer的数据库保护技术

ID:39267901

大小:2.23 MB

页数:75页

时间:2019-06-29

数据库保护及SQLServer的数据库保护技术_第1页
数据库保护及SQLServer的数据库保护技术_第2页
数据库保护及SQLServer的数据库保护技术_第3页
数据库保护及SQLServer的数据库保护技术_第4页
数据库保护及SQLServer的数据库保护技术_第5页
资源描述:

《数据库保护及SQLServer的数据库保护技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章数据库保护及SQLServer的数据库保护技术8.3数据库的并发控制及SQLServer的并发控制机制8.3.1事务及并发控制的基本概念事务是多用户系统的一个数据操作基本单元。允许多个事务并行地执行,对并发执行的事务的控制也就称为并发控制。1.事务的概念所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。2.并发控制一次材料的入库:在入库日记文件中写入材料入库记录,修改库存文件,更新当前库存量一次产品的销售:在销售文件中写入销售记录,修改成品库存文件,更新成品库存量银行

2、的转账业务:从A账户提款,插入取款记录,修改余额存入B账户。插入存款记录,修改余额事务反映客观世界中以完整单位提交的一项工作.是现实世界定义的一个逻辑工作单位。事务处理是保证数据库一致性状态的重要方法。数据库的一致性状态是指所有数据必须满足数据完整性约束条件的状态。最常见的事务处理是由二次或多次对数据库的操作完成的。(2)事务的特性原子性事务所有操作必须完成,否则事务将被撤消一致性数据库必须保持一致性状态,当一个事务完成之后,数据库必须达到一个新的一致性状态。隔离性当一个事务执行期间,所使用的数据,不能被第二个事务再使用

3、,直到第一个事务结束为止。持续性事务被提交后,不管系统发生什么故障,该事务对数据库的所有更新操作都永久保留在数据库中,不会丢失。(1)丢失修改丢失更新的实际例子:库存处理T1:(进货入库处理)进库产品400件库存量=库存量+400T2:(销售出库处理)销售产品40件库存量=库存量-402个事务顺序处理的过程顺序事务步骤存储值1T1读出在库数量602T1计算:在库数量=在库数量+4003T1写在库数量4604T2读在库数量4605T2计算:在库数量=在库数量-406T2写在库数量4202个事务并发执行丢失修改的过程顺序事务步骤

4、存储值1T1读出在库数量602T2读出在库数量603T1计算:在库数量=在库数量+4004T2计算:在库数量=在库数量-405T1写在库数量460(丢失)6T2写在库数量20(2)不一致性分析事例:T1:分析数据T2:与此同时,T2修改数据T1:SELECTSUM(在库数量)FROM库存T2:UPDATE库存SET在库数量=在库数量+50WHERE产品名称=’B’不一致性分析(1)顺序事务操作值累加1T1读产品A的在库数量50502T1读产品B的在库数量1001503T2读产品B的在库数量1004T2在库数量=在库数量*25

5、T2写产品B的在库数量2006T1读产品A的在库数量50507T1读产品B的在库数量200250不一致性分析(2)事例:T1:汇总库存产品的库存量T2:与此同时,T2更新库存中的二种产品T1:SELECTSUM(在库数量)FROM库存T2:UPDATE库存SET在库数量=在库数量+50WHERE产品名称=’C’UPDATE库存SET在库数量=在库数量-50WHERE产品名称=’D’更新事务的结果前后产品在库数量在库数量A6060B120120C7012070+50D180130180-50E120120合计550550不一致

6、分析(2)顺序事务操作值累加1T1读产品A的在库数量60602T1读产品B的在库数量1201803T2读产品C的在库数量704T2在库数量=在库数量+505T2写产品C的在库数量1206T1读产品C的在库数量120(修改后)3007T1读产品D的在库数量180(修改前)4808T2读产品D的在库数量1809T2在库数量=在库数量-5010T2写产品D的在库数量13011T2COMMIT12T1读产品E的在库数量120600(3)读未提交数据(‘脏’数据)2个事务顺序处理的过程顺序事务步骤存储值1T1读出在库数量602T1计算

7、:在库数量=在库数量+4003T1写在库数量4604T1ROLLBACK605T2读在库数量606T2计算:在库数量=在库数量-407T2写在库数量20T2使用T1未提交数据可能产生的问题顺序事务步骤存储值1T1读出在库数量602T1计算:在库数量=在库数量+4003T1写在库数量4604T2读在库数量4605T2计算:在库数量=在库数量-406T1ROLLBACK607T2写在库数量4208.3.2封锁及封锁协议1.锁的类型(1)排它锁(ExclusiveLocks,简称X锁)排它锁也称为独占锁或写锁。一旦事务T对数据对象

8、A加上排它锁(X锁),允许T读取和修改A,其他任何事务不能再对A加任何类型的锁,直到T释放A上的锁为止。(2)共享锁(ShareLocks,简称S锁)共享锁又称读锁。如果事务T对数据对象A加上共享锁(S锁),允许T读取A,但不能和修改A。其他事务只能再对A加S锁,不能加X锁,直到事务T释放

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

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

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