网站大量收购独家精品文档,联系QQ:2885784924

第五章数据库完整性.pptVIP

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.1 实体完整性 5.2 参照完整性 5.3 用户自定义完整性 5.4 默认对象和规则对象 5.5 触发器 5.6 存储过程的使用 数据库的完整性是指数据的正确性和相容性。 数据的完整性和安全性是两个不同概念 数据的完整性:防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。其防范对象:不合语义的、不正确的数据。 数据的安全性:保护数据库防止恶意的破坏和非法的存取。其防范对象:非法用户和非法操作。 5.1 实体完整性 5.1.2 实体完整性检查和违约处理 插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括: ① 检查主码值是否唯一,如果不唯一则拒绝插入或修改 ② 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 5.2.1 参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码 用REFERENCES短语指明这些外码参照哪些表的主码 5.2.2 参照完整性检查和违约处理 5.3 用户定义的完整性 用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求。RDBMS提供,而不必由应用程序承担。 包括两类: 属性上的约束条件的定义 元组上的约束条件的定义 5.3.1 属性上的约束条件的定义 CREATE TABLE时定义 列值非空(NOT NULL) 列值唯一(UNIQUE) 检查列值是否满足一个布尔表达式(CHECK) 5.3.3 元组上的约束条件的定义 在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制。 5.3.4 元组上的约束条件检查和违约处理 5.4 默认对象和规则对象 5.4.1 SQL Server中的默认对象 一、创建默认对象 二、绑定和应用默认对象 三、解除和删除默认对象 5.4.2 SQL Server中的规则对象 一、创建规则 二、绑定和应用规则 三、解除和删除规则 ★5.5 触发器(TRIGGER) 1. 建立触发器的语句格式 2. 触发器中可使用的特殊表 修改一条记录等于删除一条旧记录和插入一条新记录。UPDATE可以看成是由DELETE语句和INSERT语句组成。当在一个有UPDATE触发器的表上修改一条记录时,表中原来的记录移动到deleted表中,修改过的记录插入到inserted表中。 UPDATE触发器可以参考deleted表和inserted表,以便确定如何执行触发器的操作。 3. INSERT 触发器 4. UPDATE 触发器 5. DELETE 触发器 6. 删除和修改触发器 7. 使用触发器的考虑 5.6 存储过程 1、存储过程的概念 2、创建用户自定义存储过程 3、执行存储过程 4、更改和删除存储过程 本章小结 1、掌握三种完整性实现的机制,包括完整性约束定义机制,完整性检测机制和违背完整性约束条件时RDBMS应采取的动作。 2、学会通过默认对象和规则对象来保证数据库的完整性。 3、触发器的使用。重点掌握insert,update,delete这三种触发器,以及使用这三种触发器时存在的两张临时表:inserted和deleted。 4、存储过程的使用 inserted表:存放INSERT和UPDATE语句的新数据。 当向表中插入数据时,INSERT触发器被触发。新的记录增加到触发器表中和inserted表中。inserted表是一个逻辑表,保存了所插入记录的拷贝,触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。 deleted表:存放DELETE和UPDATE语句的旧数据。 当触发一个DELETE触发器时,被删除的记录放在一个特殊的deleted表中。 deleted表是一个逻辑表,用来保存已经从表中删除的或更新前的记录。DELETE和UPDATE触发器可以参考deleted表中的数据。 UPDATE触发器可使用: deleted表和inserted表 例1:为student表创建一个触发器aaa,它的功能是:当向表中插入一个数据之后,就把表中所有的数据显示出来。 create trigger aaa on student for insert as select * from student create trigger freetriger on free_table for insert as delete from work_table where work_table.职工号=(select 职工号 from inserted) 思考:换个角度,在work_table表中删除一个职工,就要触发free_table表中增加一条记录。命令如何写? 例2:

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档