问题 问答题

(1)已知关系模式R的全部属性集U={A,B,C,D,E,G}及函数依赖集:
F=(AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG}求属性集闭包(BD)+
(2) 现有如下两个关系模式:
Employees(Eid,Name,DeptNO)
Departments(DeptNO,DeptName,TotalNumber)
Employees关系模式描述了职工编号、姓名和所在部门编号;Departments关系模式描述了部门编号、名称和职工总人数。
请按SQL Server所采用的Tansact—SQL语法格式编写实现具有功能的后触发型触发器:每当在 Employees表中插入一行数据时,相应部门的职工总人数就加1。

答案

参考答案:

解析:(BD)+=ABCDEG
X(O)=BD;由D→EG可知X(1) =BDEG;再由BE→C,可知X(2)→BDEGC;又有CG→BD,CE→AG,可知X(3)=BDEGCA,因为X(3)中包含了所有的属性集,即有(BD)+=X(3)=ABCDEG
T—C(TNO.CNO)主码(TNO,CNO),外码TNO,CNO
S—C(SNO,CNO,成绩)主码(SNO,CNO).外码SNO,CNO
(2)
create trigger sql_tri on employees for insert as
declare@eid varchar(11)
declare@name varchar(20)
declare@deptno varchar(11)
declare yjy cursor for
select*from inserted
open YjY
fetch next from yjy into@eid,@name,@deptno
while@@fetch_status=0
begin
update departments
set totalnumber=totalnumber+1
where depmo=@deptno
fetch next from yJy into@eid,@name,@depmo
end
close yjy
deallocate yjy
本题考查了后触发器的Transact—SQL语句。其语法格式为:
CREATE TRIGGER触发器名称
0N |表名|视图名|
[WITH ENCRYPTION]
AS
SQL语句
AFTER和FOR,指定触发器只有在引发的SQL语句中指定的操作都已成功执行,并且所有的约束检查也成功完成后,才执行此触发器,即后触发型触发器。

单项选择题
单项选择题