第5周关系模型的完整性约束与关系的规范化祥解.ppt

第5周关系模型的完整性约束与关系的规范化祥解.ppt

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

回顾 关系模型、关系模式、关系 关系代数运算 并、差、交、笛卡尔积、投影、选择、连接、除 基本运算 并、差、笛卡尔积、投影、选择 其它运算可以用5种基本运算来表达 数据库原理与应用 第5讲 关系模型的完整性约束与关系的规范化 提纲 重点: 关系数据库的三种完整性约束 关系模式分解的原因、依据和规范 难点 函数依赖的概念 2NF,3NF的特征及分解方法 关系模型的完整性约束 实体完整性 参照完整性 用户自定义完整性 实体完整性 定义 所谓实体完整性,也就是一个二维表中没有两个完全相同行,也称为行完整性。 办法 必须有候选关键字, 关键字不为空、不重复。 例: 学生(学号,…),学号不能为空且不能重复。 参照完整性 定义 当表A(成绩表)是表B(学生表)的从表,其每一行中外部关键字的值必须是B中的关键字的一个已有值。 办法 对从表进行插入限制,对主表进行修改和删除限制。 例(思考,提问) 学生表是从表,班级表是主表,班级表的主键是班级号。 如果班级表中没有A999班,学生表中能不能插入A999班的学生? 若学生表中班级号为A201的有数据,能不能将班级表中A201班改成了A301? 如果学生表中存在A101班的学生,班级表中能不能删除A101? 用户自定义完整性 定义: 单个属性的取值只能在许可的范围内,也称域完整性。 一个元组的多个属性值之间相容,也称元组完整性。 办法: 指定每个列的数据类型和取值范围。 制定数据检查规则。 例: 域完整性:将年龄属性的数据类型设置为整数,并且大于18小与25。 元组完整性:性别属性为“男”,宿舍楼属性不能为“紫薇楼”。 讨论 设定性别只能取男/女,学号长度为6位,男生学号为奇数,女生为偶数。以下关系违反了哪些约束 关系模式的分解 不好的关系模式引发的问题 函数依赖的基本概念 关系的规范化 关系的分解 不好的关系模式引发的问题 引例:下表关系模型存在如下4方面的问题。 插入异常 删除异常 数据冗余 更新异常 上述订货关系模式的问题分析 插入异常 新发展了一个供应商,但没有订货,无法插入该供应商信息。 删除异常 如果删除某些订货信息,则连供应商的信息也会被删除。 数据冗余和更新异常 供应商的名称出现了重复。 如果某供应商更换了联系人,则所有的订货信息都要更新,漏掉一处就会造成数据不一致。 上述订货关系模式的问题的解决方法 对关系模式进行分解,分成两个表,上述异常问题就完全解决了。 函数依赖的基本概念 函数依赖 定义: 对应于属性组合X的不同取值, Y属性必定有不同的取值,则称X决定Y,或称Y函数依赖于X。记为:X→Y。 例:学号→姓名 完全函数依赖和部分函数依赖 定义: 如果X→Y成立,但对X的任意真子集X1,都有X1→Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。 例:成绩表(学号,课程号,成绩,补考成绩)中的成绩完全依赖于表中(学号,课程编号) 例:订货表(订货单号,供应商代码 ,供应商名称,联系人,商品名称,订货数量 单价,日期)中的供应商名称部分依赖于(订货单号,供应商代码 )中的供应商代码。 传递函数依赖 定义: 设X,Y,Z是关系模式R的不同属性集,若X→Y(并且Y→X不成立),Y→Z,称X传递决定Z,或称Z传递函数依赖于X。 例:订货单号→供应商代码 →供应商名称,供应商名称传递依赖于订货单号。 关系的规范化 主属性与非主属性 候选关键字(或候选关键属性)——如果所有的属性都完全依赖于属性组合X,则称X为候选关键字。 关键属性——若关系R中只有一个候选关键属性,称唯 一的候选关键属性为关键属性,否则,应从多个候选关键属性中指定一个作为关键属性。也叫主关键字。 主属性——候选关键字中的一个属性,注意单个主属性并不一定能作为候选关键属性。 非主属性——不属于候选关键字的属性 例:学生表(学号,姓名,性别,年龄,家庭住址) 成绩表(学号,课程号,成绩) 问: R(员工号, 部门编号,姓名,月份,工资, 个人月度奖),候选关键字是什么?主属性有哪些?非主属性有哪些? 第1范式 当关系模式R的所有属性都不能分解为更基本的数据单位时,称R是满足第1范式的,简记为1NF。 例: R(员工号,姓名,工资含基本工资和岗位工资)不满足1NF。应该分解为R(员工号,姓名,基本工资,岗位工资) 第2范式 如果关系模式R满足第1范式,并且R的所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第2范式,简记为2NF。 例:R(工号,部门编号,姓名, 部门名)不满足2NF,因为部门名部分依赖(而不是完全依赖)于候选关键字(工号,部门编号)。 要让其满足2NF,转换: R1(工号,部门编号,姓名) R2(部门编号, 部门名) 第3范式 设R是一个满足2NF条件

文档评论(0)

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

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

1亿VIP精品文档

相关文档