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

第五章数据.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章数据

第五章 数据库完整性 从发现问题开始 数据库是现实世界状态的正确的反映. 那么如何确保数据库能正确反映现实世界呢? 可能造成数据失真的因素 (1)数据进入系统时的错误 与现实世界状态不符合的、不正确的数据 (2)系统故障 丢失了数据 (3)相互干扰 被他人覆写了 (4)恶意破坏 非法入侵与修改 可能造成数据失真的因素 数据进入系统时的错误 与现实世界状态不符合的、不正确的数据 分析和观察 有哪些具体的违反现实世界规则的情况? (以学生选课数据库为例进行讨论) 分析和观察 这些要求可以进一步分类 关系模型要求的约束:实体完整性,参照完整性,数据类型等 用户定义的约束:可以按照约束影响的范围分为:单一属性上的,单一元组上的,单一表上的,多个表之间的;范围越小,维护的代价越小。 在高效统一地处理各种不同的约束有困难的时候,分而治之、各个击破是好办法。 对问题进行抽象和定义 对于一个关系模式R,以及一组从现实世界中抽象出来的约束条件F, 将F 称为“完整性约束条件”,也称为“完整性规则”,是数据库中的数据必须满足的语义约束条件 对于任意的一个具体关系r ∈ R, 如何保证 F(r) 为真? 如何进行完整性维护系统的设计? 三件事情: 1 如何表达完整性约束条件? 2 如何检查完整性约束条件? 3 违反条件的时候如何处理? 数据库完整性 1.提供定义完整性约束条件的机制 SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性 这些完整性一般由SQL的DDL语句来实现 数据库完整性(续) 2.提供完整性检查的方法 引起数据库状态改变的操作有哪些?INSERT、UPDATE、DELETE语句 执行上述操作后开始检查。 3.违约处理 DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作 拒绝(NO ACTION)执行该操作 级联(CASCADE)执行其他操作 其他用户定义的操作 第五章 数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 小结 5.1 实体完整性 5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理 5.1.1 实体完整性定义 关系模型的实体完整性 CREATE TABLE中用PRIMARY KEY定义 单属性构成的码有两种说明方法 定义为列级约束条件 定义为表级约束条件 对多个属性构成的码只有一种说明方法 定义为表级约束条件 实体完整性定义(续) [例1] 将Student表中的Sno属性定义为码 (1)在列级定义主码 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20)); 实体完整性定义(续) (2)在表级定义主码 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno) ); 实体完整性定义(续) [例2]将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按照实体完整性规则自动进行检查。包括: 1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改 2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 检查记录中主码值是否唯一的一种方法是进行全表扫描 索引 5.2 参照完整性 5.2.1 参照完整性定义 5.2.2 参照完整性检查和违约处理 5.2.1 参照完整性定义 关系模型的参照完整性定义 在CREA

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档