4、RDBMS如何实现参照完整性RDBMS在现实参照完整性时需要考虑可能破坏参照完整性的各种情况,以及用户违约后的处理策略。
可能破坏参照完整性的4种情况:在参照关系中插入元祖、修改外码值时可能破坏参照完整性;在删除被参照表的元组、修改主码值时可能破坏参照完整性。
5、触发器的概念触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程,有时也叫 (Event-Condition-Action Rule)或ECA规则。
一旦定义,任何用户对表的增删改,均由服务器自动激活触发器,进行集中的完整性控制;可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
目的:实现由主键和外键所不能保证的参照完整性和数据一致性,定义更复杂的约束和业务规则,可采用触发器。
1、定义触发器CREATE TRIGGER语法格式CREATE TRIGGER <触发器名> {BEFORE | AFTER} <触发事件(INSERT、UPDATE、DELETE )> ON <表名> FOR EACH {ROW | STATEMENT} [WHEN <触发条件>] <触发动作体>CREATE TRIGGER 必须是批处理中的第一条语句,并且只能应用于一个表。
触发器只能在当前的数据库中创建,但是可以引用当前数据库的外部对象。
定义触发器的语法说明:
1. 创建者:表的拥有者
2. 触发器名:表名和触发器必须在同一架构下
3. 表名:触发器的目标表
4. 触发事件:INSERT、DELETE、UPDATE
触发动作体与触发事件之间的关系:AFTER 、BEFORE 、INSTEAD OF,默认是AFTER
5.触发器类型:依照触发动作的间隔尺寸,行级触发器(FOR EACH ROW):触发动作体的执行次数根据目标表的行数决定;语句级触发器(FOR EACH STATEMENT):触发动作体只执行一次。
6. 触发条件:触发器激活(触发事件发生)后,如触发条件为真,触发动作体才会执行,省略WHEN触发条件,触发动作体在触发器激活后立即执行。
7. 触发动作体:触发动作体可以是一个匿名PL/SQL( Transact-SQL)过程块,也可以是对已创建存储过程的调用。如果触发动作体执行失败,激活触发器的事件会终止,目标表不发生变化。
8、存储过程(Stored Procedure):是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 。
例:定义一个BEFORE行级触发器,为教师表Teacher定义完整性规则“教授的工资不得低于4000元,如果低于4000元,自动改为4000元”。
CREATE TRIGGER Insert_Or_Update_Sal
BEFORE INSERT OR UPDATE ON Teacher
/*触发事件是插入或更新操作*/
FOR EACH ROW /*行级触发器*/
AS BEGIN /*定义触发动作体,是PL/SQL过程块*/
IF (new.Job='教授') AND (new.Sal < 4000) THEN
new.Sal :=4000;
END IF;
END;
例:定义AFTER行级触发器,当教师表Teacher的工资发生变化后就自动在工资变化表Sal_log中增加一条相应记录
首先建立工资变化表Sal_log
CREATE TABLE Sal_log
(Eno NUMERIC(4) references teacher(eno),
Sal NUMERIC(7,2),
Username char(10),
Date TIMESTAMP
);
【题5】2019年8月13日,国家知识产权局印发《关于加快推进“______”专项行动集中整治工作的通知》,要求各地集中力量整治行业乱象。
A. 蓝天 B.地绿 C.水清 D.雾霾
【答案】A。解析:2019年8月13日,国家知识产权局印发《关于加快推进“蓝天”专项行动集中整治工作的通知》,要求各地集中力量整治行业乱象,努力将“蓝天”行动推向深入,力争在8月底前取得较大成效。故本题答案为A。
【题6】2019年8月16日,定期开展国土调查是我国一项重要法定制度,第三次全国国土调查预计_______年前完成。
A.2020 B.2021 C.2022 D.2023
【答案】A。解析:2019年8月16日,定期开展国土调查是我国一项重要法定制度,第三次全国国土调查(以下简称“三调”)预计2020年前完成。为保证“三调”成果数据真实、准确、可靠,近期,国家自然资源督察机构会同国务院第三次全国国土调查领导小组办公室开展了督察抽查。在16日举行的国新办新闻发布会上,自然资源部通报督察情况,公布了20个典型案例。故本题答案为A。
点击加载更多评论>>