ch5数据库完整性教程.pptx
文本预览下载声明
;数据库完整性;数据库完整性(续);数据库完整性(续);数据库完整性(续);数据库完整性(续);;;;;;;;;;;;;;;;;参照完整性检查和违约处理;参照完整性检查和违约处理(续);参照完整性检查和违约处理(续);参照完整性检查和违约处理(续);;参照完整性检查和违约处理(续);参照完整性检查和违约处理(续);;;;;;;;;;;;;;;;;;;;;;断言;断言(续);[例5.19]限制每一门课程最多60名学生选修
CREATE ASSERTION ASSE_SC_CNUM1
CHECK(60 = ALL (SELECT count(*) FROM SC
GROUP by cno)
);
/*此断言的谓词,涉及聚集操作count 和分组函数group by 的SQL语句*/
;[例5.20]限制每个学期每一门课程最多60名学生选修
首先需要修改SC表的模式,增加一个“学期(TERM)”属性
ALTER TABLE SC ADD TERM DATE;
然后,定义断言:
CREATE ASSERTION ASSE_SC_CNUM2
CHECK(60 = ALL (SELECT count(*) FROM SC
GROUP by cno,TERM)
);;2. 删除断言的语句格式为
DROP ASSERTION 断言名;
如果断言很复杂,则系统在检测和维护断言的开销较高,这是在使用断言时应该注意的;;;;;定义触发器(续);定义触发器(续);定义触发器(续);定义触发器(续);定义触发器(续);;;;;;;;;
显示全部