数据库5版讲稿第四章-高级SQL.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文档。上传文档
查看更多
数据库系统概念----SQL 4.2 完整性约束 完整性 数据的正确性和相容性 完整性检查 DBMS必须提供一种机制来检查数据库中的数据是否满足规定的条件,以保证数据库中数据是正确的,避免非法的不合语义的错误数据的输入和输出,即所谓的“垃圾进垃圾出”(Garbage In Garbage Out)所造成的无效操作和错误结果 完整性约束 完整性子系统 数据库的非法更新 数据本身是错误的 数据原来是正确的,操作或程序错误导致输入数据错误 由于系统故障,导致数据错误 事务的并发执行产生不正确结果 人为故意破坏 完整性子系统功能 监督事务执行,检查是否违反完整性规则 如有违反,采取相应措施(拒绝、报告、改正) 完整性控制 完整性规则 完整性规则集 由DBA或程序员事先提供的有关数据约束的一组规则 规则的构成 约束条件:要检查什么样的错误(性别为男女) 触发条件:什么时候使用规则进行检查(插入元组) ELSE子句:若检查出错误,该怎样进行处理(显示错误) 规则的分类 域完整性规则:属性取值范围 域联系规则:在一个或多个关系中,属性间的联系影响约束 关系完整性规则:更新操作对数据库中值的影响和限制 完整性控制 在属性值上的约束 非空约束:要求某属性取值不能为空值 SNAME CHAR(8) NOT NULL 基于属性的检查子句 CHECK(AGE15) 域约束子句 用CREATE DOMAIN定义域时,可以出现 CHECK CREATE DOMAIN AGE SMALLINT CHECK((VALUE = 15) AND VALUE = 25)) 完整性控制 主码约束 主码值不允许空,也不允许出现重复 意义:关系对应到现实世界中的实体集,元组对应到实体,实体是相互可区分的,通过主码来唯一标识,若主码为空,则出现不可标识的实体,这是不容许的 主码定义形式 主码子句:PRIMARY KEY(Sno) 主码短语:Sno CHAR(4) PRIMARY KEY 完整性控制 外码约束(参照完整性) 关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码, 如 S关系中的Dno属性 如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值 意义:如果关系R2的某个元组t2参照了关系R1的某个元组t1,则t1必须存在 例如关系S在Dno上的取值有两种可能 空值,表示该学生尚未分到任何系中;若非空值,则必须是DEPT关系中某个元组的Dno值,表示该学生不可能分到一个不存在的系中 完整性控制 定义形式 在SC表中,定义 FOREIGN KEY (Sno) REFERENCES S(Sno) Sno在SC中是外码,在S中是主码,Sno在SC中取值或为空或为S中某个Sno值 作为主码的关系称为基本(参照)关系,作为外码的关系称为依赖关系 完整性控制 删除基本关系元组 RESTRICT方式 只有当依赖关系中没有一个外码值与要删除的基本关系的主码值相对应时,才可以删除该元组,否则系统拒绝此删除操作 CASCADE方式 将依赖关系中所有外码值与基本关系中要删除的主码值所对应的元组一起删除 SET NULL方式 删除基本关系中元组时,将依赖关系中与基本关系中被删主码值相对应的外码值置为空值 如FOREIGN KEY (Sno) REFERENCES S(Sno) [ON DELETE [CASCADE | SET NULL] ] 完整性控制 修改基本关系主码 RESTRICT方式 只有当依赖关系中没有一个外码值与要修改的基本关系的主码值相对应时,才可以修改该元组主码,否则系统拒绝此次修改 CASCADE方式 将依赖关系中所有与基本关系中要修改的主码值所对应的外码值一起修改为新值 SET NULL方式: 修改基本关系中元组主码时,将依赖关系中与基本关系中被修改主码值相对应的外码值置为空值 如FOREIGN KEY (Sno) REFERENCES S(Sno) [ON UPDATE [CASCADE | SET NULL] ] 完整性控制 全局约束 全局约束涉及多个属性间的或多个关系间的联系 CREATE TABLE SC (Sno CHAR(4), Cno CHAR(4), GRADE SMALLINT, PRIMARY KEY (Sno, Cno), CHECK(Sno IN (SELECT Sno FROM S)), CHECK(Cno IN (SELECT Cno FROM C))) 完整性控制 对约束的命名、撤消和添加 命名 CONSTRAINT 约束名 约束条件 示例

文档评论(0)

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

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

1亿VIP精品文档

相关文档