数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章 数据库保护

上传人:E**** 文档编号:89517472 上传时间:2019-05-26 格式:PPT 页数:50 大小:421.50KB
返回 下载 相关 举报
数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章  数据库保护_第1页
第1页 / 共50页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章  数据库保护_第2页
第2页 / 共50页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章  数据库保护_第3页
第3页 / 共50页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章  数据库保护_第4页
第4页 / 共50页
数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章  数据库保护_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章 数据库保护》由会员分享,可在线阅读,更多相关《数据库原理及应用 教学课件 ppt 作者 胡孔法 第08章 数据库保护(50页珍藏版)》请在金锄头文库上搜索。

1、第8章 数据库保护,本章重要概念,(1)完整性的定义,完整性子系统的功能,完整性规则的组成。SQL中的三大类完整性约束,SQL3中的触发器技术。 (2)安全性的定义、级别,权限,SQL中的安全性机制,几种常用的安全性措施,自然环境的安全性。,本章重要概念,(3)事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。 (4)存储器类型,稳定存储器的实现,数据传送过程。 (5)恢复的定义、基本原则和实现方法,故障的类型,检查点技术,REDO和UNDO操作,运行记录优先原则。 (6)并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁、PS协议、PSC协议,活锁

2、、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。,数据库保护,8.1 事务 8.2 数据库完整性 8.3 数据库安全性 8.4 数据库恢复技术 8.5 并发控制 本章小结,8.1 事务,定义 事务(transaction)是构成单一逻辑工作单元的操作集合。 性质 原子性(Atomicity):事务是一个不可分割的工作单元。 一致性(Consistency) :即数据不会应事务的执行而遭受破坏。 隔离性(Isolation) :在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。 持久性(Durability) :一个事务一旦完

3、成全部操作后,它对数据库的所有更新应永久地反映在数据库中。,例子:事务及其性质,相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B).,原子性(A,B同时被修改或同时保持原值) 一致性(A+B的值不变) 隔离性 持久性,问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。,事务提交和事务撤销,事务的所有操作都完成了,则事务提交(COMMIT),否则事务撤销(ROLLBACK) BEGIN TRANSACTION标志事务开始执行 BEGIN TRANSACTION和COMMIT或ROLLBACK一起

4、保证了事务的四个性质 对数据库访问的两个基本操作:读和写,但完成写操作后,数据可能暂时放在内存中,而非直接写进数据库。,8.2 数据库完整性,数据库的完整性 完整性子系统的主要功能 监督事务的执行,并测试是否违反完整性规则 若有违反现象,则采取恰当的操作,譬如拒绝操作、报告违反情况、改正错误等方法来处理 完整性规则 什么时候使用规则进行检查(称为规则的“触发条件”) 要检查什么样的错误(称为“约束条件”或“谓词”) 如果查出错误,应该怎么办(称为“ELSE子句”,即违反时要做的动作),SQL中的完整性约束1-域约束,域约束 用“CREATE DOMAIN”语句定义新的域,并且还可出现CHECK

5、子句,定义一个新的域COLOR,可用下列语句实现: CREATE DOMAIN COLOR CHAR(6) DEFAULT ? CONSTRAINT V_COLORS CHECK(VALUE IN (Red,Blue,Yellow, Green,?);,SQL中的完整性约束2-基本表约束,候选键的定义 UNIQUE(列名序列)或 PRIMARY KEY(列名序列) 外键的定义 FOREIGN KEY(列名序列)REFERENCES () ON DELETE ON UPDATE “检查约束”的定义 CHECK(条件表达式),关于外键约束完整性的补充,删除参照表中元组时的考虑 NO ACTION

6、CASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式,修改参照表中主键值时的考虑 NO ACTION CASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式,关于数据库完整性的例子,学生关系S(S#,SNAME,AGE,SEX,SDEPT) 选课关系SC(S#,C#,GRADE) 课程关系C(C#,CNAME,CDEPT,TNAME),在教学数据库中,要求S中的元组满足条件:男生年龄在1535岁之间,女生年龄在1530岁之间 。对应的语句为:,CHECK(AGE = 15 AND((SEX =男 AND AGE = 35

7、) OR (SEX =女 AND AGE = 30));,CREATE TABLE SC(S# CHAR(4), C# CHAR(4), GRADE SMALLINT, PRIMARY KEY( S# , C# ), CHECK(S# IN (SELECT S# FROM S), CHECK(C# IN (SELECT C# FROM C);, 在SC中插入一个元组,若C#值在C中不存在,则系统将拒绝这个插入操作。 在SC中插入一个元组,若S#值在S中不存在,则系统将拒绝这个插入操作。 在S中删除一个元组,这个操作将与关系SC中的检查子句无关。若此时SC中存在被删学生的选课元组时,SC将违反检

8、查子句中条件。,SQL中的完整性约束3-断言,断言 如果完整性约束牵涉面较广,与多个关系有关,或者与聚合操作有关,那么SQL2提供“断言”(Assertions)机制让用户书写完整性约束 CREATE ASSERTION CHECK() DROP ASSERTION ,每位教师开设的课程不能超过10门。 CREATE ASSERTION ASSE1 CHECK(10 = ALL(SELECT COUNT(C#) FROM C GROUP BY TNAME);,SQL3的触发器,什么是触发器 触发器的组成 事件:插入、删除、修改等操作,引发触发器的操作 条件:引发触发器的条件 动作:引发触发器后

9、的操作,SQL3的触发器实例,下面是应用于选课关系SC的一个触发器。这个触发器规定,在修改关系SC的成绩值时,要求修改后的成绩一定不能比原来的低,否则就拒绝修改 CREATE TRIGGER TRIG1 AFTER UPDATE OF GRADE ON SC REFERENCING OLD AS OLDTUPLE NEW AS NEWTUPLE FOR EACH ROW WHEN (OLDTUPLE.GRADE NEWTUPLE.GRADE) UPDATE SC SET GRADE = OLDTUPLE.GRADE WHERE C# = NEWTUPLE.C#,8.3 数据库安全性,什么是数据

10、库的安全性 安全性级别 环境级:计算机系统的机房和设备应加以保护,防止有人进行物理破坏。 职员级:工作人员应清正廉洁,正确授予用户访问数据库的权限。 OS级:应防止未经授权的用户从OS处着手访问数据库。 网络级:由于大多数DBS都允许用户通过网络进行远程访问,因此网络软件内部的安全性是很重要的。 DBS级:DBS的职责是检查用户的身份是否合法及使用数据库的权限是否正确。,(1)读权限:允许用户读数据,但不能改数据。 插入权限:允许用户插入新数据,但不能改数据。 修改权限:允许用户改数据,但不能删除数据。 删除权限,权限,访问数据的权限 索引(Index)权限: 允许用户创建和删除索引。 资源(

11、Resourse)权限: 允许用户创建新的关系。 修改(Alteration)权限:允许用户在关系结构中加入或删除属性。 撤消(Drop)权限:允许用户撤消关系。,权限的授予和回收,权限转授图,一个用户拥有权限的充分必要条件是在权限图中从根结点到该用户结点存在一条路经,SQL中的安全性机制,视图 SQL2中的用户权限及其操作 用户权限: SELECT INSERT DELETE UPDATE REFERENCES USAG 授权语句 GRANT ON TO WITH GRANT OPTION 回收语句 REVOKE ON FROM RESTRICT | CASCADE,SQL中的权限操作实例,

12、GRANT SELECT,UPDATE ON S TO WANG WITH GRANT OPTION GRANT INSERT (S#,C#) ON SC TO LOU WITH GRANT OPTION GRANT REFERENCES (CNO) ON C TO BAO WITH GRANT OPTION GRANT USAGE ON DOMAIN AGE TO CHEN REVOKE SELECT,UPDATE ON S FROM WANG CASCADE REVOKE GRANT OPTION FOR REFERENCES (C#) ON C FROM BAO,常用的安全性措施,强制存

13、取控制 用户i只能查看比它级别低或同级的数据; 用户i只能修改和它同级的数据 统计数据库的安全性 一个查询查到的记录个数至少是n; 两个查询查到的记录的“交”数目至多是m 数据加密法 普通加密法 密键加密法 自然环境的安全性 DBS的设备和硬件安全性(“数据银行”),8.4 数据库恢复技术,易失性存储器(volatile storage) 内存、cache存储器 非易失性存储器(nonvolatile storage) 磁盘和磁带 稳定存储器(stable storage) 这是一个理论上的概念。存储在稳定存储器中的信息是决不会丢失的。 稳定存储器的实现 数据备份 数据银行,存储器类型,块和块

14、的操作,块、物理块和缓冲块 块的操作 input(A):把物理块A的内容传送到内存的缓冲块中。 Output(B):把缓冲块B的内容传送到磁盘中恰当的物理块中。,数据访问,事务,系统,磁盘,恢复和原子性的联系,假设没有事务的原子性,那么重新启动事务时要么A因为再执行一遍而为1800,要么B因从未执行而保持原值,恢复的基本原则和实现方法,基本原则 :“冗余”,即数据库重复存储 具体实现方法 平时做好两件事:转储和建立日志 周期地(比如一天一次)对整个数据库进行拷贝,转储到另一个磁盘或磁带一类存储介质中。 建立日志数据库。记录事务的开始、结束及数据每一次插入、删除和修改前后的值,并写到“日志”库中

15、。 一旦发生数据库故障,分两种情况进行处理 如果数据库已被破坏,则装入last数据库备份,再利用日志库将这两个数据库状态之间的所有更新重新做一遍。 如果数据库未被破坏,但某些数据不可靠,则撤消所有不可靠的修改,把数据库恢复到正确的状态。,故障类型和恢复方法,事务故障 可以预期的事务故障,如存款余额透支等 非预期事务故障,如运算溢出、数据错误、死锁等 系统故障 硬件故障、软件错误或掉电等等 介质故障(硬故障) 磁盘物理故障或遭受病毒破坏,检查点方法,什么是检查点方法 检查点方法的恢复算法 根据日志文件建立事务重做队列和事务撤销队列 对重做队列中的事务进行REDO处理,对撤消队列中的事务进行UND

16、O处理,事务T1不必恢复; 事务T2和事务T4必须重做(REDO); 事务T3和事务T5必须撤消(UNDO),SQL对事务的支持,无begin transaction Commit Rollback 游标,8.5 并发控制,图9.10 在时间t7丢失了事务T1的更新 (FIND表示从DB中读值,UPD表示把值写回到DB),并发操作带来的问题1-丢失更新,并发操作带来的问题2-读脏数据,并发操作带来的问题3-错误求和,事务T1进行了不一致的分析,解决方法,封锁技术 时标,X锁和S锁,X锁定义 操作 XFIND R XRELEASE R PX协议: 任何企图更新记录R的事务必须先执行“XFIND R”操作,以获得对R的X锁,才能读或写记录R;如果未获准X锁,那么这个事务进入等待队列,一直到获准X锁,事务才能继续做下去。 PXC协议 X锁的解除操作应该合并到事务的结束(COMMIT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号