- 1、本文档共122页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.5.2 参照完整性 关系SC中一个元组表示一个学生选修的某门课程的成绩,Sno代表Student中的一个学生,Cno代表Course中的一门课程。因此Sno,Cno分别是对Student和Course的参照引用。 [例5.35] 定义SC中的参照完整性 CREATE TABLE SC (Sno CHAR(7), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno)) 对表SC和Student有4种可能破坏参照完整性的情况 SC表中增加一个元组,该元组的Sno属性的值在表Student中找不到一个元组其Sno属性的值与之相等。 修改SC表中的一个元组,修改后该元组的Sno属性的值在表Student中找不到一个元组其Sno属性的值与之相等。 5.5.2 参照完整性(续) 从Student表中删除一个元组后,造成SC表中某些元组的Sno属性的值在表Student中找不到一个元组其Sno属性的值与之相等。 修改Student表中的一个元组的Sno属性后,造成SC表中某些元组的Sno属性的值在表Student中找不到一个元组其Sno属性的值与之相等。 5.5.2 参照完整性(续) 处理策略 拒绝(reject)。 不允许该操作执行。该策略一般设置为默认策略。 瀑布删除(cascade) 当删除或修改被参照表(上例中Student)的一个元组时造成了不一致,则删除参照表中(上例中的SC)的所有造成不一致的元组。 设置为空值(set-null) 5.5.2 参照完整性(续) 图5.8 表之间的关系图 5.5.2 参照完整性(续) 5.5.1 实体完整性 5.5.2 参照完整性 5.5.3 属性值限制 5.5.4 元组级限制 5.5.5 完整性修改 5.5.6 空值的处理 5.5.2 参照完整性(续) 5.5.3 属性值限制 非空值限制 [例5.36] 在定义SC表时,说明Grade属性不允许取空值。 Grade SMALLINT NOT NULL 如果不明确说明的话,属性的值允许取空值 指定允许的取值范围 [例5.37] Student表的Ssex只允许取“男”和“女”。 Sgender char(2) CHECK (Sgender IN (男,女)) [例5.38] SC表的Grade的值应该在0和100之间。 Grade SMALLINT CHECK (Grade =0 AND Grade = 100) 5.5.3 属性值限制(续) 5.5 完整性 5.5.1 实体完整性 5.5.2 参照完整性 5.5.3 属性值限制 5.5.4 元组级限制 5.5.5 完整性修改 5.5.6 空值的处理 5.5.4 元组级限制 元组级的限制同属性值限制相比,可以设置属性之间取值的组合 [例5.39]当学生的性别是男时,其名字不能以Ms.打头。 CREATE TABLE Student (Sno CHAR(7) PRIMARY KEY, Sname VARCHAR(12) NOT NULL, Sgender CHAR(2), Sage SMALLINT, Sdept VARCHAR(30), CHECK (Sgender =女 OR Sname NOT LIKE Ms.%)) 5.5 完整性 5.5.1 实体完整性 5.5.2 参照完整性 5.5.3 属性值限制 5.5.4 元组级限制 5.5.5 完整性修改 5.5.6 空值的处理 5.5.5 完整性修改 命名 在完整性约束条件,例如PRIMARY KEY、CHECK前增加一个关键字CONSTRAINT,后面跟上一个名字。 [例5.40] 将Student表的主关键字限制命名为StudentKey CREATE TABLE Student (Sno CHAR(7), Sname VARCHAR(12) NOT NULL, Sgender CHAR(2), Sage SMALLINT, Sdept VARCHAR(30), CONSTRAINT StudentKey PRIMARY KEY(Sno)) 修改表中的完整性限制 [例41] 去掉表Student中的StudentKey限制,增加Ssex只能取男
您可能关注的文档
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第6章幻灯片.ppt
- 基本公共卫生服务规范课件幻灯片.ppt
- 建筑材料第1章节绪论课件幻灯片.ppt
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第6章节课件幻灯片.ppt
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第7章幻灯片.ppt
- 建筑材料第2版作者王秀花主编项目三水泥的应用技术课案幻灯片.ppt
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第7章节课件幻灯片.ppt
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第8章幻灯片.ppt
- 建筑材料第2版作者王秀花主编项目一建筑材料基础知识及实训1课案幻灯片.ppt
- 数据库实用技术教程教学课件作者基于Oracle系统电子教案第8章节课件幻灯片.ppt
文档评论(0)