chp10ch11数据库保护[精].ppt
文本预览下载声明
数据库原理与应用 刘伟法(liuwf@) 常熟理工学院计算机学院 CH11,CH10 数据库保护 事务的并发控制 数据库的备份与恢复 8.1 事务的基本概念 8.1 事务的基本概念(续) 8.1 事务的基本概念(续) 8.1 事务的基本概念(续) 在数据库中建立一个表名为BANK的数据表,结构如下: UID char(10),money float,内容如右: 写出A账户向B账户转账 的事务处理过程。 MsgBox 每次转账1000元,从A账户到B账户 ConString = Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;pwd=;Initial Catalog=school;Data Source=liupc\sql2000 Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.CursorLocation = adUseClient cn.Open ConString cn.BeginTrans strSql = select money from bank where uid=A rs.Open strSql, cn x = rs!Money rs.Close If x = 1000 Then strSql = update bank set money=money-1000 where uid=A cn.Execute strSql strSql = select uid from bank where uid=B rs.Open strSql, cn If rs.RecordCount 0 Then strSql = update bank set money=money+1000 where uid=B cn.Execute strSql cn.CommitTrans MsgBox “转账成功!” , vbOKOnly, 提示 rs.Close Else cn.RollbackTrans MsgBox “转账失败!” , vbOKOnly, “提示” End If Else cn.RollbackTrans MsgBox 余额不足! , vbOKOnly, 提示 End If 并发控制 数据库是一个共享资源,可以供多个用户使用。 多用户数据库 并发事务 串行执行 引发资源空闲 单处理机:交叉并发放方式 多处理机:同时并发方式 8.2 并发控制概述 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.2 并发控制概述(续) 8.3 数据库备份与恢复 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.3 数据库备份与恢复(续) 8.4 小结 事务的四个基本特性 并发控制的三类不一致性 并发控制的调度 数据库故障的种类 数据库恢复的基本技术 有两个事务,分别包含下列操作(假定A、B的初值均为2): 事务T1:读B:A=B+1;写回A; 事务T2:读A:B=A+1;写回B; 两个事务串行的结果: T1-T2 结果1:A=3,B=4 T2-T1 结果2:A=4,B=3 T1 Slock(B) Read(B):B=2 Unlock(B) Xlock(A) A=B+1=3 Write(A) commit unlock(A) T2 Slock(A) Read(A):A=2 Unlock(A) Xlock(B) B=A+1=3 Write(B) commit unlock(B) 是否
显示全部