数据库系统2_完整性.ppt

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

关系的完整性 关系模型的完整性规则是对关系的某种约束条件。 关系模型中三类完整性约束: 实体完整性 参照完整性 用户定义的完整性 一、实体完整性 键、主键、候选键 实体完整性规则 1、键Key 键是关系中用来标识行的一列或多列。也称码。 键可以是唯一的(unique),也可以不唯一(nonunique) 唯一键可以唯一地标识一行。非唯一键用来标识多行。 候选键Candidate Key 候选键是表中能够唯一标识一行的属性或属性的组合 “候选”的意思是作为主键的候选 候选键是唯一键 主键Primary Key 主键是从候选键中选出。设计表时,需要确定一个主键。 主键不仅用来标识唯一行,还可以表示关联行。 2. 实体完整性规则 关系中主键的值不能为空 如关系:PROJECT(ProjID,ProjName,MgrID) 主键ProjID不能为空值 关系通常对应现实世界的实体,或实体间的联系。实体或实体间的联系是可区分的,即有唯一的标识——主键。主键为空导致实体不可区分 二、 参照完整性 外键 参照完整性规则 1. 外键Foreign Key 为了表示关联,可以将一个关系的主键作为属性放入另一个关系中。 放在第二个关系中的属性就称外键 外键例子1 外键例子2 DEPARTMENT(DeptID,DeptName,Location) EMPLOYEE(EmpID,DeptID,EmpName) 2. 外键与参照完整性 参照完整性规定每个外键的值都必须与某个存在的主键值匹配。 参照完整性是关系模型必须满足的约束条件。 如果 EMPLOYEE 关系中有DeptID = 7 (外键), 那么 DEPARTMENT 关系中也必须有 DeptID = 7 (主键)。 主键的值必须先存在,然后有外键的值指向它。 参照完整性的定义1 参照完整性的定义2 PROJECT(ProjID,ProjName,MgrID) MANAGER(MgrID,MgrName) 参照完整性约束的定义是: PROJECT中MgrID的值在MANAGER的MgrID中必须存在对应项 PROJECT是参照关系,MANAGER是被参照关系 参照完整性的定义3 DEPARTMENT(Deptname,BudgetCode,OfficeNumber) EMPLOYEE(EmployeeNumber,FirstName,LastName,Department,Email,Phone) 参照完整性约束的定义是: EMPLOYEE中的Department的值在DEPAR TMENT的Deptname中必须存在对应项 主键和外键的名称可以不同 特殊情况:外键值为空 EMPLOYEE(EmployeeNumber,FirstName,LastName,Department,Email,Phone) Department为空,表示新雇员尚未分配到具体部门 举例:如何定义参照完整性 在被参照关系中选定主键 将主键加入参照关系中,作为外健 执行参照完整性约束 三、用户定义的完整性 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。 用户定义的完整性 例: 课程(课程号,课程名,学分) “课程名” 不能取空值 “学分” 只能取值{0,1,2,3,4,5} 四、关系完整性与关系操作 为了维护数据的完整性,在对关系数据库执行插入、删除和修改操作时,就要检查是否满足上述三类完整性规则: 1. 执行插入操作 首先检查实体完整性规则 插入行检查主键上的值是否存在 执行插入操作 再检查参照完整性规则 如果向被参照关系插入,不检查 如果向参照关系插入,则检查插入行在外键上的值是否对应被参照关系的主键值,或者外键值为空 执行插入操作 最后检查用户定义的完整性规则 如果定义了用户定义的完整性规则,则检查插入行相应属性上的值是否遵守用户定义的完整性规则 2. 执行删除操作 一般只需检查参照完整性规则 如果删除被参照关系中的行,则检查被删除行在主键上的值是否正在被相应的参照关系的外键引用: 如果不被引用,则执行删除操作 如果被引用,则有三种可能的做法: 拒绝删除 空值删除 级联删除 3. 执行修改操作 将修改操作看成先执行删除操作,再执行插入操作,因此是删除和插入两种情况的综合。 (NULL,Scanner,400.00,400) × Equipment表 插入行,不检查 插入行,检查EmployeeNumber,如800,出错! Equipment表-参照关系 Employee表-被参照关系 南方医科大学信息技术系2006 * 必须满足! 候选键就是: 经理ID,Email,(姓名,电话),(姓名, Department) CustomerNumb

文档评论(0)

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

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

1亿VIP精品文档

相关文档