数据库系统之关系数据理论——多值依赖到底是什么

自己在家捣鼓了很久还是没弄明白什么是多值依赖,今天网课老师留了题“举出三个多值依赖的例子”,最后看了老师的例子,听了讲解,终于弄明白了怎么判断,怎么举例,什么是多值依赖。

先放上多值依赖的定义:

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x的值而与z值无关。

看概念是很抽象生硬,不便于理解的,通过几个例子来让我们进行最通俗的讲解。

例1:

MSC(M,S,C)中,M表示专业,S表示学生,C表示该专业必修课,假设每个专业有多个学生,有一组必修课,设同专业内所有学生选修的必修课相同。

实例如下,按照语义对于M的每一个值M,S有一个完整的集合对应,而不问C取何值,所以M→→S,由于C与S的完全对称性,必然有M→→C成立。

  M      S      C

  M1      S1      C1

  M1      S1      C2

  M1      S2      C1

  M1      S2      C2

  ···        ···       ···

也就是说,一个专业对应若干个学生,他们之间的关系是一对多(1:n),是多值依赖M→→S;一个学生对应多个必修课,而一个必修课也对应多个学生,他们之间的关系是多对多(n:m);其实M与C没有直接关系,有的只是间接关系(借助C),只是因为C与S完全对称,所以可以推出专业和必修课也是多值依赖M→→C(一对多1:m)。

例2:

关系模式ISA(I,S,A)中,I表示学生兴趣小组,S表示学生,A表示某兴趣小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目,每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。

实例关系如下,按照语义对于I的每一个值I,S有一个完整的集合对应,而不问A取值如何,所以I→→S,由于S与A的完全对称性,必然有I→→A成立。

  I      S      A

  I1      S1       A1

  I1      S1       A2

  I1      S2       A1

  I1      S2       A2

  ···      ···       ···

也就是说,一个兴趣小组I对应若干个学生S,他们是一对多的关系(1:n),是多值依赖I→→S;一个学生参加多个活动项目A,而一个活动项目又对应多个学生,他们之间的关系是多对多(n:m);其实I与A没有直接关系,有的只是间接关系(借助S),只是因为S与A完全对称,所以可以推出专业和必修课也是多值依赖I→→A(一对多1:m)。

例3:

关系模式WSC(W,S,C)中,W表示仓库,S表示保管员,C表示商品,假设每个仓库又若干名保管员,若干个商品,每个保管员保管所在仓库的所有商品,每种商品被所有保管员保管。

实例如下,按照语义对于W的每一个值W,S有一个完整的集合对应,而不问C取何值,所以W→→S,由于C与S的完全对称性,必然有W→→C成立。

  W      S      C

  W1      S1      C1

  W1      S1      C2

  W1      S2      C1

  W1      S2      C2

  ···        ···       ···

也就是说,一个专业对应若干个学生,他们之间的关系是一对多(1:n),是多值依赖W→→S;一个学生对应多个必修课,而一个必修课也对应多个学生,他们之间的关系是多对多(n:m);其实M与C没有直接关系,有的只是间接关系(借助C),只是因为C与S完全对称,所以可以推出专业和必修课也是多值依赖W→→C(一对多1:m)。

其实还有一种方法可以判断是否该关系模式存在多值依赖:

以例3为例,找到属性W相同值和属性S不同值的任意两个元组,交换他们的S值,重新组成的新元组如果都可以在这个表内找到,那么就存在多值依赖。比如取第一行和第四行,将这两行的S1和S2互换,得到新元组(W1,S2,C1)和(W1,S1,C2),我们发现这两个元组在原表内都存在(在第二行和第三行),其他的也是这样,那么该关系模式就存在多值依赖。

原文地址:https://www.cnblogs.com/guojiaxue/p/12695173.html

时间: 2024-11-07 11:08:07

数据库系统之关系数据理论——多值依赖到底是什么的相关文章

数据库 chapter 6 关系数据理论

第六章 关系数据理论 本章详细讲解关系规范化理论,它既是关系数据库的重要理论基础也是数据库设计的有力工具,规范化理论为数据库设计提供了理论的指南和工具. 规范化理论虽然是以关系模型为背景,但是它对于一般数据库逻辑设计同样具有理论上的意义. 一个关系模式应当是一个五元组: R(U,D,DOM,F) 1)       关系名R,它是符号化的元组语义: 2)       一组属性U: 3)       属性组U中属性所来自的域D: 4)       属性到域的映射DOM: 5)       属性组U上

数据库--关系数据理论

关系数据理论 本文为复习数据库整理的资料. 参考: https://blog.csdn.net/prdslf001001/article/details/80336835 https://www.bilibili.com/video/av73467859/ https://www.bilibili.com/video/BV1eE411a79r/ 一.数据冗余导致的问题 1)冗余存储:信息被重复存储,导致浪费大量存储空间. 2)更新异常:当重复的信息的一个副本被修改,所有副本都必须进行同样的修改.

《数据库系统概论》 -- 6关系数据理论

关系模式五元组 R<U,D,DOM,F> R--关系名 U--属性(组) D--U中的属性所来自的域 DOM--属性到域的映射 F--U中的数据依赖(函数依赖.多值依赖.连接依赖等) 数据依赖不良会带来的危害 数据冗余 更新异常 插入异常 删除异常 函数依赖 概念         X,Y是R的子集,不存在任意两个元组在X上的取值相等,而在Y上的取值不等,称Y函数依赖于X,记作X→Y. 关系举例         Student(Sno,Sname,Cno,Cname,Sdept,Dept_man

数据库系统概论(一)关系数据理论--关系模式

一个关系模式可能存在的问题 1.数据冗余度过大,浪费存储空间 系主任张明不需要重复出现,可以另建立中间表存储各系主任信息 2.更新异常 更新时维护数据完整性代价过大,更换计算机系主任时必须修改每一个学生元祖 3.插入异常 该插入的数据插不进去 4.删除异常 不该删除的信息也删掉了,如把所有学生信息删除,则系主任的信息也被一并删除了 关系模式问题的原因 存在不合理的数据依赖 解决方式是把单一模式分解成多个模式 数据依赖 属性集合U = {Sno,Sdept,Mname,Cno,Grade} U的函

关系数据理论之第二范式

对于一个关系,既然其中的属性值(也就是数据)能够组合到一起,则它们之间就必须会有一定的依赖关系,而这就是数据依赖,数据依赖是一个关系内部属性与属性之间的一种约束关系.例如学校对学生信息的管理中,学号是学生存在的表示,这个学生的信息(例如姓名.专业.年级.成绩等)的组合使用"学号"这个关键属性进行约束的,所以学生的信息属性值对学号具有依赖关系.其中,主要的数据依赖有两种:函数依赖和多值依赖.函数依赖的一般定义如下: 假设R(U)是属性集U上的关系模式,X,Y是U的子集.对于R(U)的任意

关系数据理论之第一范式

常用的数据库的逻辑数据模型有:层次模型.网状模型.关系模型.面向对象模型.对象关系模型:数据模型是从计算机的观点出发对数据建模的,主要用于DBMS的实现.数据模型通常由数据结构.数据操作.完整性约束三部分组成.各个含义如下: 数据结构:描述数据库的组成对象以及对象之间的联系.它描述的内容有两类:一类是与对象的类型.内容.性质有关,例如关系模型中的域.属性.关系等:一类是与数据之间联系有关的对象,例如网状模型中的系型(Set Type).数据库系统中,人们常按照数据结构的类型来命名数据模型. 数据

关系数据理论

写在前面,???∈?符号的区分: ?:包含于 ?:包含于或等于 ?:不包含于或等于 ∈:属于   ?:不属于 ?和∈的区别:"包含于"用于说明集合与集合之间的关系,"属于"用于说明集合与元素之间的关系. 什么是好的关系模式(表结构)? 不好的关系模式会有什么问题? 怎样把不好的关系模式转化为好的? 这就是下面要学的──关系数据库的规范化理论 本节要点: 函数依赖 码 范式 1NF 2NF 3NF 首先看4个定义. 1         函数依赖 定义1: 设R(U)是

2016.6.14 关系数据理论之范式

(1)2NF(没有部分依赖) **若R属于1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R属于2NF. (2)3NF(非主属性不可以传递依赖于码) **设关系模式R<U,F>属于1NF,若R中不存在这样的码X,属性组Y及非主属性Z使得X->Y,Y->Z成立,则称R<U,F>属于3NF. **每一个非主属性既不传递依赖于码,也不部分依赖于码. (3)BCNF(扩展的第三范式) **没有非主属性 **关系模式R<U,F>属于1NF,若X->Y且Y

4 关系数据理论

一.函数依赖 设R(U)是属性U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在另个元祖在X上的属性值相等,而在Y上的属性值不等,则成X函数确定Y或Y函数依赖与X. 1.完全函数依赖 在R(U)中,如果X->Y,并且对X的任何一个真子集X,都有X不依赖于Y,则称Y对X完全函数依赖. 2.部分函数依赖 在R(U)中,如果X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖. 3.传递函数依赖 在R(U)中,如果X->Y,Y不依赖与X,Y依赖于Z,则称