您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > ch8-数据库的保护
幻灯片1第8章Ver.1.0sqlserver2005第8章数据库的保护1.安全性控制2.完整性控制3.并发控制4.数据库的恢复幻灯片2第8章Ver.1.0sqlserver20051.1定义安全性是指保护数据库,以防止非法使用所造成数据的泄密、更改或破坏。1.2安全性机制1)视图:用来对无权用户屏蔽数据。2)授权:允许有特定存取权的用户有选择地和动态地把这些权限授予其它用户。1.安全性控制幻灯片3第8章Ver.1.0sqlserver20052.完整性控制2.1定义完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。2.2完整性约束1)被动约束:域约束、表约束、断言。2)主动约束:触发器。幻灯片4第8章Ver.1.0sqlserver20052.完整性控制2.3完整性规则1)触发条件(when):什么时候用规则检查。2)约束条件(what):检查什么样的错误。3)响应(how):违反约束时要执行的操作。幻灯片5第8章Ver.1.0sqlserver20053.并发控制3.1定义为了充分利用数据库资源,很多时候数据库用户都是对数据库系统并行存取数据,这样就会发生多个用户并发存取同一数据块的情况。如果对并发操作不加控制可能会产生不正确的数据,破坏数据的完整性,并发控制就是解决这类问题,以保持数据库中数据的一致性。幻灯片6第8章Ver.1.0sqlserver20053.并发控制3.2事务1)定义:由用户定义的一组操作序列,被当做一个单一工作逻辑单元来执行。2)属性(ACID)原子性:要么全部执行,要么什么也不做一致性:事务执行后,应保持数据库的一致性隔离性:多事务并发执行的结果和先后执行一样持久性:事务完成后对数据的改变是永久的幻灯片7第8章Ver.1.0sqlserver20053.并发控制3.2事务3)实现自动提交事务:默认的事务管理模式显式事务:begintran[saction]~T-sql语句committran[saction]~或rollbacktran[saction]~幻灯片8第8章Ver.1.0sqlserver20053.并发控制3.3并发操作带来的问题1)丢失更新当两个事务T1和T2修改同一数据,并发执行时,T2把T1或T1把T2的修改结果覆盖掉。例:假设存款余额R=1000元,事务T1取走存款100元,事务T2取走存款200元。如果事务T1执行完毕再执行事务T2,存款余额更新后是700元;如果两个事务同时执行,则存款余额更新后是800元或900元。幻灯片9第4章Ver.1.0sqlserver20053.并发控制3.3并发操作带来的问题2)读脏数据事务T1更新了数据R,事务T2读取了更新后的数据R,事务T1由于某种原因被撤消,修改无效,数据R恢复原值。则事务T2得到的数据与数据库的内容不一致。这种未提交的随后又被撤消的更新数据称为“脏数据”。幻灯片10第8章Ver.1.0sqlserver20053.并发控制3.3并发操作带来的问题3)不一致分析(不可重复读)事务T1读取了数据R,事务T2读取并更新了数据R,当事务T1再读取数据R以进行核对时,得到的两次读取值不一致。幻灯片11第8章Ver.1.0sqlserver20053.并发控制3.3并发操作带来的问题4)幻影读事务T1正在读取某行所在范围,而事务T2对某行执行插入或删除操作,会发生幻影读问题。事务T1第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被事务T2删除。同样,由于事务T2的插入操作,事务T1的第二次或后续读显示有一行已不存在于原始读中。幻灯片12第8章Ver.1.0sqlserver20053.并发控制3.4并发控制技术(锁)1)锁的类型共享(S)锁:其它事务只能读取不能修改锁定的数据排他(X)锁:其它事务不能读取或修改锁定的数据更新锁:意向锁:模式锁:批量更新锁:幻灯片13第8章Ver.1.0sqlserver20053.4并发控制技术(锁)2)隔离级(锁的使用)readuncommittedreadcommitedrepeatablereadsnapshotserializable*settransactionisolationlevel~3.并发控制幻灯片14第8章Ver.1.0sqlserver20053.4并发控制技术(锁)3)死锁问题在同时处于等待状态的两个或多个事务中,其中的每一个在它能够进行之前,都等待着某个数据、而这个数据已被它们中的某个事务所封锁,这种状态称为死锁。幻灯片15第8章Ver.1.0sqlserver20053.4并发控制技术(锁)3)死锁问题设置死锁优先级定制死锁超时检测死锁使用更新锁避免死锁3.并发控制幻灯片16第8章Ver.1.0sqlserver20054.数据库的恢复4.1定义数据库中的数据无法保证绝对不遭受破坏,系统必须具有检测故障并把数据从错误状态中恢复到某一正确状态的功能,这就是数据库的恢复。幻灯片17第8章Ver.1.0sqlserver20054.2基本原则和实现方法基本原则:数据冗余实现方法:1)生成冗余数据:转储、建立日志2)冗余重建:重做(REDO)、撤销(UNDO)4.数据库的恢复幻灯片18第8章Ver.1.0sqlserver20054.3故障类型和恢复方法1)事务故障不正常的程序结束所造成的故障。恢复方法:*可预期的:在事务代码中加入判断和ROLLBACK语句,当事务执行到ROLLBACK语句时,执行UNDO操作;*非预期的:直接执行UNDO操作。4.数据库的恢复幻灯片19第8章Ver.1.0sqlserver20054.数据库的恢复4.3故障类型和恢复方法2)系统故障引起系统停止运行随之要求重新启动的事件。恢复方法:*对未完成事务作UNDO处理;*对已提交事务但更新还留在缓冲区的事务进行REDO处理。幻灯片20第8章Ver.1.0sqlserver20054.3故障类型和恢复方法3)介质故障系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分丢失或全部丢失。恢复过程:COPY转储副本至新磁盘——从日志中找出转储以后所有已提交的事务——进行REDO处理
本文标题:ch8-数据库的保护
链接地址:https://www.777doc.com/doc-2905935 .html