数据库系统概论第5章数据库完整性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.6 sqlserver2008中的触发器实现(5) 写一个允许用户一次只删除一条记录的触发器。 create trigger tr_emp on employee after delete as declare @row_cnt int select @row_cnt=count(*) from deleted if @row_cnt1 begin print 此删除操作可能回删除多条人事表数据!!! rollback transaction end 5.6 sqlserver2008中的触发器实现(6) 写一个触发器,当用户将course表中的学分修改为大于7的值时,不对数据进行修改,同时发出提示信息。 Create trigger not_allowed On course Instead of update As Begin Declare @credit int, @cno char(4) Select @cno=cno,@credit=credit from inserted if @credit7 Printf ‘学分不允许大于7’ else update course set ccredit=@credit where cno=@cno End 问题 上个例题中,如果原表中的数据为 执行下列语句后的结果是什么? Update course set ccredit=9 where cno=‘1’ Insert into course values( ‘4’,’系统工程’,’1’,5) cno Cname Cpno ccredit 1 数据库 2 4 2 数据结构 3 4 3 C++程序设计 2 问题 将上个例题中,触发器的触发条件更改为update,insert 执行下列语句后的结果是什么? Update course set ccredit=5 where cno=‘1’ Insert into course values( ‘4’,’系统工程’,’1’,5) cno Cname Cpno ccredit 1 数据库 2 4 2 数据结构 3 4 3 C++程序设计 2 问题 不能激活触发器执行的操作是( )? A. delete B. update C. insert D.select 问题 允许取空值但是不允许出现重复值的约束是( )? A . Null B. unique C. primary key D. foreign key Instead Of触发器使用范围 ? 数据表里的数据禁止修改 ? 有可能要回滚修改的SQL语句,有些判断需要在执行之前进行,所以After触发器并不是最好的选择,Instead Of触发器更合适。 ? 在试图中使用触发器, After触发器不能在视图中使用。 ? 用自己 的方式去修改数据。可以用Instead Of 触发器来控制数据的修改方式和流程。 * 第五章 数据库完整性 概述 数据库的完整性:数据的正确性和相容性 意义: 防止合法用户往数据库里添加不合语义的数据 利用DBMS控制机制实现业务规则,易于定义,容易理解 在软件功能测试时期有助于尽早发现应用软件的错误。 为维护数据库的完整性,DBMS必须: 提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理 内容 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名字句 5.5 触发器概念 5.6 sqlserver2008中的触发器实现 5.1 实体完整性(1) [例]将SC表中的Sno,Cno属性组定义为码 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) ); 5.1 实体完整性(2) 插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括: 检查主码值是否唯一,如果不唯一则拒绝插入或修改 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 5.1实体完整性(3) 可以使用索引加快主码值是否重复的检查 5.2参照完整性(

文档评论(0)

精品家园 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档