- 1、本文档共118页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章数据库安全与完整性精要.ppt
二、参照完整性 1、参照完整性定义 关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。 数据库 的安全性与完整性 例12 定义SC中的参照完整性 CREATE TABLE SC (Sno Char(9) Not null, Cno Char(4) Not null, Grade Smallint, Primary key(Sno,Cno), Foreign Key(Sno) References Student (Sno), Foreign Key(Cno) References Course(Cno) ); 参照完整性定义(续) 数据库 的安全性与完整性 (1)参照完整性检查 对被参照表和参照表进行增删操作时有可能破坏参照完整性,必须进行检查。 例如:对表SC和Student表有四种可能破坏参照完整性的情况。 (1)SC表中增加一个元组,该元组的Sno属性的值在表Student中找不到一个元组,其Sno属性的值与之相等。 (2)修改SC表中的一个元组,修改后该元组的Sno属性的值在表Student中找不到一个元组,其Sno值与之相等。 2、参照完整性检查和违约处理 数据库 的安全性与完整性 参照完整性(续) (3)从Student表中删除一个元组,造成SC表中某些元组的Sno属性的值在表Student中找不到一个元组,其Sno属性的值与之相等。 (4)修改Student表中一个元组的Sno属性,造成SC表中某些元组的Sno属性的值在Student表中找不到一个元组,其Sno值与之相等。 参照完整性检查(续) 数据库 的安全性与完整性 被参照表(Student) 参照表(SC) 可能破坏参照完整性 插入元组 可能破坏参照完整性 修改外码值 删除元组 可能破坏参照完整性 修改主码值 可能破坏参照完整性 (2)违约处理策略 ①拒绝执行(No Action) 不允许该操作执行(一般设置为 默认策略)。 ②级连操作(CASCADE) 当删除或修改被参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中的所有造成不一致的元组。 ③设置为空值 当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值。 数据库 的安全性与完整性 参照完整性检查和违约处理(续) 例13 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 假设专业表中专业号为12的元组被删除,按照设置为空的策略,就要把学生表中专业号为12的所有元组的专业号设置为空值。 对于参照完整性,除了应该定义外码,还应定义外码列是否允许空值。 一般地,当对参照表和被参照表的操作违反了参照完整性,系统选择默认策略,即拒绝执行。如果让系统采取其他的策略就必须在创建表时显式地加以说明。 数据库 的安全性与完整性 参照完整性检查和违约处理(续) 例14 显式地说明参照完整性的违约处理。 CREATE TABLE SC (Sno Char(9) Not null, Cno Char(4) Not null, Grade Smallint, Primary key(Sno,Cno), /*在表级定义实体完整性*/ Foreign key(Sno)References Student (Sno), On delete Cascade /*删除student表中元组时,级连删除SC*/ On update Cascade, /*更新student表中元组时,级连更新SC*/ Foreign key(Cno)References Course(Cno) On delete no action /*删除Course表中元组时,拒绝删除SC*/ On update Cascade, ); 参照完整性检查和违约处理(续) 数据库 的安全性与完整性 被参照表(Student) 参照表(SC)
文档评论(0)