首页 理论教育 数据依赖与传递函数依赖

数据依赖与传递函数依赖

时间:2023-11-18 理论教育 版权反馈
【摘要】:两个函数依赖都是完全依赖。3)传递函数依赖定义:在R中,当且仅当X→Y,Y→Z时,称Z对X传递函数依赖。根据现实世界可得到一组函数依赖:学生的学号决定了所在班级,所在班级决定了辅导员,所以辅导员传递函数依赖于学生的学号。

数据依赖与传递函数依赖

1. 数据依赖的概念

数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系,它是数据库模式设计的关键

定义:设有一关系模式R(A1,A2,…,An),X和Y均为(A1,A2,…,An)的子集,对于R的值r来说,当其中任意两个元组u,v中对应于X的那些属性分量的值均相等时,则有u,v中对应于Y的那些属性分量的值也相等,称X函数决定Y,或Y依赖于X,记为X→Y。

数据依赖体现在:

(1)一个关系内部属性与属性之间的约束关系;

(2)现实世界属性间相互联系的抽象;

(3)数据内在的性质;

(4)语义的体现。

例2.9 有关系模式:学生(学号,姓名,系名),子集X(学号),子集Y(系名)。每个学生有唯一的一个学号,学生中可以有重名的姓名,每个学生只能属于一个系,每个系有唯一的系代号。由此,可以找出学生关系模式中存在下列函数依赖:学号→姓名,学号→专业。

例2.10 若有关系模式:学院(学号,系名,专业主任,课程号,成绩,学分),可写出函数依赖:学号→专业,专业→专业主任,(学号,课程号)→学分。

2. 函数依赖的分类

函数依赖可分为完全函数依赖、部分函数依赖和传递函数依赖。(www.xing528.com)

1)完全函数依赖

定义:在R(U)中,如果X→Y,对于X的任意一个真子集X ',都有X '不能决定Y,则称Y对X完全函数依赖,记为XY。

例2.11 若存在关系模式:员工(员工ID,姓名,产品ID,数量,付款),可写出函数依赖:员工ID→姓名,{员工ID,产品ID}→付款。两个函数依赖都是完全依赖。

2)部分函数依赖

定义:在R(U)中,如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数 依赖。

3)传递函数依赖

定义:在R(U)中,当且仅当X→Y,Y→Z时,称Z对X传递函数依赖。

例2.12 描述学生的学号、班级、辅导员的关系U(学号,班级,辅导员)。一个班有若干学生,一个学生只属于一个班级,一个班级只有一个辅导员,但一个辅导员负责几个班级。根据现实世界可得到一组函数依赖:

学生的学号决定了所在班级,所在班级决定了辅导员,所以辅导员传递函数依赖于学生的学号。

关系模式存在的问题包括:数据冗余度太大、更新异常、插入异常和删除异常,“好”的关系模式应该不会在插入新值、删除数据、更新数据时出现异常,且数据冗余度应尽可能小。产生冗余的原因是模式中存在某些数据依赖,解决方法就是通过分解关系模式来消除其中不合适的数据依赖。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈