关系数据库原理关系的完整性和关系的规范化.ppt

上传人:本田雅阁 文档编号:2440885 上传时间:2019-03-29 格式:PPT 页数:32 大小:736.51KB
返回 下载 相关 举报
关系数据库原理关系的完整性和关系的规范化.ppt_第1页
第1页 / 共32页
关系数据库原理关系的完整性和关系的规范化.ppt_第2页
第2页 / 共32页
关系数据库原理关系的完整性和关系的规范化.ppt_第3页
第3页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《关系数据库原理关系的完整性和关系的规范化.ppt》由会员分享,可在线阅读,更多相关《关系数据库原理关系的完整性和关系的规范化.ppt(32页珍藏版)》请在三一文库上搜索。

1、第1章 关系数据库原理 关系的完整性和关系的规范化,第3讲,习题解答,关系模式,公司(公司代码,公司名,地址) 部门(部门代码,部门名) 员工(员工代码,姓名,性别,年龄,职务) 商品(商品代码,商品名,单价,数量) 厂家(厂家代码,厂家名,地址) 拥有(公司代码,部门代码) 属于(部门代码,员工代码) 销售(员工代码,商品代码,销售量) 供货(商品代码,厂家代码),复习,什么是关键字/码/键? 什么是主关键字/主码/主键? ER图转化为关系模式的原则是什么?,答:是能用来惟一标识元组的属性或属性组合。,答:被指定为关键字的候选关键字,称为。,答:(1)每个实体转换为一个关系。 (2)每个联系

2、也转换成一个关系。 (3)有相同码的关系可以合并。,复习,关系应具备什么性质?,答:(1)关系中每一个属性值都是不可分解的。 (2)关系中不允许出现相同的行。 (3)关系中不允许出现相同的列。 (4)关系中没有行序、没有列序。,第1章 关系数据库原理 关系的完整性规则、规范化 教学内容,关系的完整性规则 实体完整性、参照完整性、域完整性 函数依赖 完全函数依赖、部分函数依赖、传递函数依赖 关系的规范化 第一范式、第二范式、第三范式,第1章 关系数据库原理 关系的完整性规则、规范化 学习目标,认知目标: 理解关系的完整性规则 了解函数依赖、关系规范化的含义 理解三种范式的定义 能力目标: 能判别

3、关系的范式类别 (重点、难点) 能进行范式的分解(重点、难点),关系的基本运算,选择、投影 连接 交叉连接 内连接 条件 自然 外连接 左连接和右连接 完全外连接,一、关系的完整性规则,定义 是对关系的某种约束条件。 目的 用于保证关系数据库中数据的正确性和可靠性。 类型 实体完整性规则 参照完整性规则(引用完整性规则 ) 域完整性规则(用户自定义完整性规则),一、关系的完整性规则 1.实体完整性规则,规则要求: 在任何关系的任何一个元组中,主键的值不能为空值、也不能取重复的值。 目的:用于保证数据库表中的每一个元组都是惟一的。 请思考:下面的关系是否违反实体完整性规则?,一、关系的完整性规则

4、 2.域完整性规则(用户定义完整性规则),规则要求 由用户根据实际情况,定义表中属性的取值范围 例如:性别只能是男和女、年龄不能为负值、成绩在0100之间等。 目的 用于保证给定字段中数据的有效性,即保证数据的取值在有效的范围内。,一、关系的完整性规则 3.参照完整性规则(引用完整性规则),规则要求: “不引用不存在的实体”。即:不允许在一个关系中引用另一个关系中不存在的元组。 目的 用于确保相关联的表间的数据保持一致。,一、关系的完整性规则 3.参照完整性规则(引用完整性规则),请思考:下面两个关系是否违反参照完整性规则? 系表(主表) 学生表(从表) 说明 从表的“系编号(外键)”的取值只

5、能为两种情况: 若取非空值,则它必须是主表中存在的值。 取空值(null)。表明尚未给学生分配专业。Null不等于0或空字符串。,二、函数依赖 1.概念、类型,函数依赖 是指关系中各属性或属性组之间的相互依赖关系。它是关系规范化的理论基础。 函数依赖的定义 给定一个关系模式R,X和Y都是R的属性或属性组,对于X的每个确定值在任何时刻Y只有一个确定的值与之对应,则称“X函数决定Y”,或称为“Y函数依赖于X”,X称为决定因素,记为:XY。 函数依赖的类型 完全函数依赖 部分函数依赖 传递函数依赖,二、函数依赖 2.完全函数依赖,定义 如果属性Y函数依赖于复合属性X,且不与X的任何子集函数相依赖,则

6、称“Y完全函数依赖于X”。 示例 有如下的关系模式: 生产(工厂编号,产品编号,计划数量) “工厂编号+产品编号” “计划数量”,是完全函数依赖。,二、函数依赖 3.部分函数依赖(局部依赖),定义 对于一个函数依赖:XY,如果存在ZX(Z属于X),且有ZY成立,则称“Y部分函数依赖于X”。 示例 有如下的关系模式 SCD(学号,姓名,课程号,成绩,系名,系主任) 主码为复合码:学号+课程号 “姓名、系名、系主任”与主码是部分函数依赖,二、函数依赖 4.传递函数依赖,定义 在关系模式中,如果XY(不能YX),YZ,若存在XZ ,则称“Z传递依赖于X”。 示例 有如下的关系模式 SD(学号,姓名,

7、系名,系主任) “学号系名,系名系主任”,则系主任传递依赖于学号。,三、关系的规范化,引 在关系数据库的设计过程中,对于同一个问题,选用不同的关系模式,其性能的优劣是大不相同的,为了区分关系模式的优劣,人们常常把关系模式分为各种不同等级的范式。,三、关系的规范化 1. 概念和范式的类型,类型 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 关系规范化的概念 将低级范式转换为若干个高级范式过程。,低 高,三、关系的规范化 2.第一范式(1NF),定义 如果关系模式R的所有属性的值域中第一个值都是不可再分解值,则称R是属于1NF模式。 第一范式是对关系的最低要求。 示例:判断哪一张表是

8、1NF?,三、关系的规范化 2.第一范式(1NF),第一范式可能存在的问题: 数据冗余:如各位老师的信息重复。 插入异常:如果要插入刘老师的个人信息,但刘老师未开课,会造成缺关键字“学号”、“课程号”。 删除异常:当要删除 课程号=“C3” 的元组,会丢失李老师的信息。 修改量大。,三、关系的规范化 3.第二范式(2NF),定义 如果关系模式R为第一范式,且R中每个非主属性完全函数依赖于R的主码(复合码),则称R为2NF模式。 示例 下列关系模式是1NF,是否是2NF?为什么? SCD(学号,姓名,课程号,成绩,系名,系主任) 主码为复合码:学号+课程号 解决方法:消除部分函数依赖。,不是。因

9、为:“姓名、系名、系主任”与主码是部分函数依赖(即:只依赖于学号),三、关系的规范化 3.第二范式(2NF),分解为2NF的方法: 把关系模式中对主码完全函数依赖的非主属性与决定它们的主码放在一个关系模式中。 把对主码部分函数依赖的非主属性和决定它们的主属性放在一个关系模式中。 检查分解后的新模式,如果仍不是2NF,则继续按照前面的方法进行分解,直到达到要求。 关系模式SCD的分解结果如下: SC(学号,课程号,成绩) SD(学号,姓名,系名,系主任),三、关系的规范化 4.第三范式(3NF),定义 如果关系模式R为第二范式,且R中每个非主属性都不传递函数依赖于R的某个候选码,则称R为3NF模

10、式。 示例 下列关系模式是2NF,是否为3NF?为什么? SD(学号,姓名,系名,系主任) 解决方法:消除传递函数依赖。,不是。因为:学号系名,系名系主任,存在传递依赖关系。,三、关系的规范化 4.第三范式(3NF),分解为3NF的方法: 把直接对主码函数依赖的非主属性与决定它们的主码放在一个关系模式中。 把造成传递函数依赖的决定因素连同被它们决定的属性放在一个关系模式中。 检查分解后的新模式,如果不是3NF,则继续按照前面的方法进行分解,直到达到要求。 关系模式SD的分解结果如下: SD(学号,姓名,系名) SD(系名,系主任),三、关系的规范化 5.各范式间的关系,各范式之间的关系,四、综

11、合应用,实例:假设某商业集团数据库中有1个关系模式R(商店编号,商品编号,数量,部门编号,负责人)。如果规定: (1)每个商店的每种商品只在一个部门销售。 (2)每个商店的每个部门只有一个负责人。 (3)每个商店的每种商品只有一个库存数量。 写出关系模式R的基本函数依赖集 找出关系模式R的候选码。 关系模式R最高已经达到第几范式?为什么? 如果R不属于3NF,请将R分解成3NF。,四、综合应用,分析与解答: 基本的函数依赖有: (商店编号+商品编号) 部门编号 (商店编号+部门编号) 负责人 (商店编号+商品编号) 数量 由题意,上面的函数依赖可知“商店编号”是主属性,商品编号也是主属性,由这

12、两个属性,可以确定关系元组的所有属性,所以R的候选码是:商店编号+商品编号。,四、综合应用,分析与解答: R(商店编号,商品编号,数量,部门编号,负责人) 最高已达到2NF。因为负责人是码的传递依赖。 要达到3NF,必须消除非主属性对码的传递依赖。对R分解后的两个模式如下: R1(商店编号,商品编号,数量,部门编号) R2(部门编号,负责人),本课小结,关系的完整性规则 实体完整性/参照完整性/域完整性 范式的类型 1NF、2NF、3NF 各范式间的关系: 1NF中的每个属性值是不可再分的,它是关系模式的最低要求。 消除1NF中的部分函数依赖,可转换为2NF。 消除2NF中的传递函数依赖,可转换为3NF。,课余作业布置,课外练习 教材P25:9 补充:设关系模式SCT(学号,课程号,成绩,教师名,教师地址)。如果规定:(1)每个学生每学一门课程只有一个成绩;(2)每门课只有一个教师任教;(3)每个教师只有一个地址(无同名教师)。 写出关系模式SCT的基本函数依赖集。 找出关系模式SCT的候选码。 试把SCT分解成2NF模式集,并说明理由。 试把SCT分解成3NF模式集,并说明理由。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1