第七章 事务处理与数据保护

上传人:痛*** 文档编号:247296442 上传时间:2024-10-17 格式:PPT 页数:61 大小:135.50KB
返回 下载 相关 举报
第七章 事务处理与数据保护_第1页
第1页 / 共61页
第七章 事务处理与数据保护_第2页
第2页 / 共61页
第七章 事务处理与数据保护_第3页
第3页 / 共61页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第七章 事务处理与数据保护,第一节 数据授权,一 什么叫数据授权,对用户使用数据库的操作权限进行规定称为数据授权。只有获得权限的用户才能对数据库进行指定的操作。,授权者,数据库管理员,数据库表的建立者,已经获得授权许可的用户。,三 操作对象与权限,表,属性,查询,插入,更新,删除,,ALL,数据库,建立,索引,建立,删除,视图,同表,四 授权语句,GRANT,权限1,权限,n ON,对象类型 对象名,TO,用户1,,with GRANT,OPTION,作用:1.把指定对象上的一组权限授予一组用户。,2.,WITH GRANT OPTION,的作用进行授权传递。,举例,1.将对,XS,表的所有权限授予张三,并进行授权传递。,GRANT ALL ON TABLE XS TO “,张三”,WITH GRANT OPTION,2.,将对,XK,表,CJ,属性进行修改的权限授予李四。,GRANT UPDATE ON TABLE XK(CJ),TO “,李四”,权限收回,收回对用户的授权操作及授权传递。,REVOKE,权限1,权限,n ON,对象类型 对象名,FROM,用户,CASCADE|RESTRICT,作用:,CASCADE,表示收回操作权限,同时收回他所做的授权传递。,RESTRICT,表示当用户已经获得授权传递后,禁止权限收回。,例:,REVOKE ALL ON XS FROM “,张三”,RESTRICT,REVOKE ALL ON XS FROM “,张三”,CASCADE,第一条不能执行,第二条能执行。,第二节 数据完整性,一 码的完整性,1.当表确定主码后,主码不能为空。,2.定义主码的方法:,在建表时用,KEY,或,PRIMARY KEY(),定义.,域的完整性,1.限制属性的取值范围,2.方法:,CHECK(,条件),例:在选课表中限定,CJ,的取值范围在0到100之间。,CREAT TABLE XK(XH C(10),,KH C(3),CJ INT CHECK CJ BETWEEN,0 AND 100),三 参照完整性,1.外码 若属性,A,在,R,中被指定为主码,而,A,又出现在,S,中,则,A,称为,S,的外码。,例如,XH,在,XK,表中是外码。,2 外码说明语句,foreign key,外码,references,表名(属性),说明:(1)表名是指外码作为主码的表。,(2).外码名可以与作为主码的名相同或不相同。,(3).,该语句应在建表语句中说明。,例:在,XK,表中说明,XH,是外码。,CREATE TABLE XK(XH C(8),KH C(3),CJ INT,foreign key,xh,references,xs,(,xh,),3,参照完整性规则,(1)外码必须在主表中出现。,(2)外码可以设置为空。,4.实现完整性的方法,(1),级联规则(,CASCADE),.,主表作删除时,外码所在表的元组也一并删除。,.在更新时,外码也作相应更新。,(2)置空规则(,set null),.,主表作删除时,外码置为空。,语句:,ON DELETE|UPDATE CASCADE|SET NULL,例:为,XK,表设置参照完整性规则。,CREATE TABLE XK(XH C(8),,KH C(3),CJ INT,foreign key,xh,references,xs,(,xh,),on delete cascade,on update cascade),请问:,KH,如何设置参照完整性?,5.注意:在,VFP,中,通过对数据库表建立连接,实现参照完整性。,方法:在主表中对主码建主索引,次表中建普通索引。通过鼠标操作。然后设置参照完整性。,第三节 断言与触发器,一 断言,1.定义 设置数据库应满足的条件;,2.,格式:,CREATE ASSERTION,断言名,CHECK,条件,说明:当条件为假时,,DBMS,终止操作,,并提示用户。,例:限制每门课的选课人数不能超过100人。,CREATE ASSERTION RSXZ CHECK,100=ALL(SELECT COUNT(XH),FROM XK GROUP BY KH,请问:如何写一断言限制学生选课门数超过8门。,CREATE ASSERTION XKMS,CHECK (8=ALL(SELECT COUNT(*)FROM XK GROUP BY XH),触发器,1.事件:引起数据库的状态发生改变的操作。,2.定义:当设定的事件发生时,由,DBMS,自动启动的维护数据库一致性的程序。,3.触发事件:能够启动触发器的事件,。,删除(,DELETE),插入(,INSERT),更新(,UPDATE OF,属性。,触发时间:,BEFOR;,在操作前触发,AFTER:,在操作后触发,INSTEAD OF:,取代操作。,3 触发条件:执行触发器操作的条件。,4 触发粒度:引起触发器工作的数据单位。,行粒度:(,FOR EACH ROW),表粒度(,FOR EACH STATMENT),5,操作:一组,SQL,语句,或其他语句。,三 语句与执行,1 格式:,CREATE TRIGGER,触发器名,before|after|instead of,属性,insert|delete|update of,属性名,ON,表名,referencing old as,元组名,new as,元组名,old table as,表名,new table as,表名,for each row|for statement,when,条件,语句序列。,2 说明:删除事件只有旧表或旧行。,插入事件只有新表或新行。,更新事件既有旧表,旧行,也有,新表,新行。,触发器的启动和执行,当触发事件发生时,触发器被激活,如果触发条件成立,则执行触发器的操作,然后返回应用程序继续执行。,在,VFP,中,触发器的定义为,CREATE TRIGGER ON,表名,FOR DELETE|INSERT|UPDATE,AS,条件,作用:当条件为真时,执行触发事件;,当条件为假时,执行事件失败。,利 用触发器禁止对学生表的插入。,CREATE TRIGGER ON A:DBFXS,FOR INSERT AS .F.,问:若,F,改为,T,,效果如何?,四 举例,例,1 设,TZS,表存放应特别关照的学生名单,由(,XH,LY),组成。根据学校规定,这些学生每门功课至少及格,请设计触发器。,分析:引起不及格的操作有:,插入,更新。,当这些学生的成绩出现不及格时,触发器应自动作出纠正。,CREAT TRIGGER TZSZG,AFTER UPDATE ON XK(CJ),AFTER INSERT ON XK,REFERENCING NEW AS NEW_TUPLE,FOR EACH ROW,WHEN NEW_TUPLE.XH IN(SELECT XH,FROM TZS)AND NEW_TUPLE.CJ=8,ROLLBACK,问题:1 若时间选择,AFTER,,怎样设计触发器。,2 若约束条件为至少为6门,又怎样设计。,CREATE TRIGGER XZXKS,BEFORE DELETE ON XK,REFERENCING OLD AS OLD_TUPLE,FOR EACH ROW,WHEN (SELECT COUNT(*)FROM XS,XK WHERE SZYX=“,信息”,AND,XS.XH=XK.XH AND XS.XH=OLD_TUPLE.XH)=6,ROLLBACK,五 触发器的删除,格式:,DROP TRIGGER,触发器名,VFP,用,DELETE TRIGGER ON,表名,FOR DELETE|INSERT|UPDATE,作用:取消触发器的检查,从,DBMS,的实时检测程序中那掉该触发器模块。,第四节 数据恢复,一 事务的基本概念,1.定义 事务是由一个或几个数据库操作组成的操作序列,是数据库系统的基本执行单位。,2,定义事务的方法,标志法:,BEGIN TRANSACTION,结束,COMMIT,或,ROLLABCK,缺省法 每次数据库操作自动设定为一个事务。,3 终止事务的两种方法:,.,COMMIT(,提交)当事务完成该事务规定的功能,使用,COMMIT,结束事务。,.,ROLLBACK (,回滚或撤消 ),当事务无法完成该事务的功能,而被迫取消该事务时,用,ROLLBACK。,分析一个例子,例1:这是一个银行转帐的事务,EXEC SQL begin,trasaction,scanf,(“%d”,scanf,(“%d”,scanf,(“%d”,EXEC SQL UPDATE ZB,SET YE=YE-:Z,WHERE ZH=:X;,EXEC SQL UPDATE ZB,SET YE=YE+:Z,WHERE ZH=:Y;,EXEC SQL END TRASACTION;,特征:当这笔转帐业务完成,事务正常结束。,问:什么情况下,该事务不能正常结束。,事务的特征,1.原子性:,A(atomicity),事务要么被正确执行,要么就等于不执行。,2.一致性,C(consistency),如果事务单独执行,对数据库的操作就一定正确。,3.孤立性,I(isolation):,并行性,4.持久性,D(durability):,事务一旦被提交,其结果就要被长期保存。,分析例1的,ACID,特征,EXEC SQL begin,trasaction,scanf,(“%d”,scanf,(“%d”,scanf,(“%d”,EXEC SQL UPDATE ZB,SET YE=YE-:Z,WHERE ZH=:X;,EXEC SQL UPDATE ZB,SET YE=YE+:Z,WHERE ZH=:Y;,EXEC SQL END TRASACTION;,原子性是指什么?,一致性是指什么?,孤立性是指什么?,持久性是指什么?,数据库的故障分类,事务故障,系统故障,存储介质故障,四 数据库恢复,1.定期备份,.,设置备份点,.数据恢复,第一步:装入备份数据,第二步:执行未经备份过的但已提交的事务。,运行|备份段|运行|,恢复|转存|重新运行|,2.日志文件法:,(,1),什么叫日志文件:,记录事务对数据库操作过程的流水文件。,(2)文件内容:,事务开始与结束标记。,操作名,记录修改前数据值和修改后的数据值。,操作日期,时间,事务名。,(3)作用:.用来审计,追踪数据库的操作 历史。,.,当事务撤消时,进行数据恢复。,.在数据库进行恢复时,重做已经提交过的事务。,日志文件的恢复操作,.,REDO:,正向读日志文件,用新值代替旧值,恢复已提交的事务。,.,UNDO:,反向读日志文件,用旧值代替新值,使数据库恢复到事务执行前的状态。,这是一日志文件:,begin(t1),x1=1,x2=3,begin(t2),comite,(t1),x1=3,x2=4,begin(t3),y2=4,rollback(t3),y2=5,已知:,x,y,的初值为1,2.,问:1.现在,x,y,的值为多少?,2.进行恢复后,,x,y,的值为多少?,第五节 事务的并发控制,一.什么叫并行事务,定义:两个或以上含有相关数据,且在同一台机器上同时被执行的事务,称为并行事务。,说明:相关数据是指引起竞争的数据。,同一台机器是条件。,二 分析并行事务带来的不一致性,更新丢失,例1 考虑如下的两个事务:,T1:R(A),A=A+10,W(A),T2:R(A),A=A+10,W(A),由于在同一台机器上执行,,CPU,产生了如下的执行顺序:,R,1,(A),R,2,(A),F,1,W,1,F,2,W,2,若把上述事务理解为存10元钱,结果如何?,读脏数据,例2 考虑如下两个事务,T1:R(A),A=A+10,W(A),T2:R(A),执行如下调度:,R1(A),F1,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!