“函数依赖”怎么理解?

“函数依赖”怎么理解?,第1张

函数依赖是从数学角度来定义的,在关系中用来刻画关系各属性之间相互制约而又相互依赖的情况。

函数依赖普遍存在于现实生活中,比如,描述一个学生的关系,可以有学号、姓名、所在系等多个属性,由于一个学号对应一个且仅一个学生,一个学生就读于一个确定的系,

因而当“学号”属性的值确定之后,“姓名”及“所在系”的值也就唯一地确定了, 此时, 就可以称“姓名”和“所在系”函数依赖于“学号”,或者说“学号”函数决定“姓名”和“所在系”,

记作:学号→姓名、学号→所在系。下面对函数依赖给出确切的定义。 

定义:设U{A1,A2,…,An}是属性集合,R(U)是U上的一个关系,x、y是U的子集。

若对于R(U)下的任何一个可能的关系, 均有x的一个值对应于y的唯一具体值,称y函数依赖于x,记作x→y。

其中x称为决定因素。进而若再有y→x,则称x与y相互依赖,记作x←→y。例如表1.2所示“系”关系中:如果系名值是唯一的,即各系名均不相同,那么有函数依赖集: 

要理解范式,首先必须对知道什么是关系数据库,如果你不知道,我可以简单的不能再简单的说一下:关系数据库就是用二维表来保存数据。表和表之间可以……(省略10W字)。

然后你应该理解以下概念:

实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,不如说“老师与学校的关系”。

属性:教科书上解释为:“实体所具有的某一特性”,由此可见,属性一开始是个逻辑概念,比如说,“性别”是“人”的一个属性。在关系数据库中,属性又是个物理概念,属性可以看作是“表的一列”。

元组:表中的一行就是一个元组。

分量:元组的某个属性值。在一个关系数据库中,它是一个 *** 作原子,即关系数据库在做任何 *** 作的时候,属性是“不可分的”。否则就不是关系数据库了。

码:表中可以唯一确定一个元组的某个属性(或者属性组),如果这样的码有不止一个,那么大家都叫候选码,我们从候选码中挑一个出来做老大,它就叫主码。

全码:如果一个码包含了所有的属性,这个码就是全码。

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。

非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。

外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。

二、6个范式

好了,上面已经介绍了我们掌握范式所需要的全部基础概念,下面我们就来讲范式。首先要明白,范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式…

函数依赖:设

R

(U)

是一个关系模式,

U

R

的属性集合,

X

Y

U

的子集。对于

R

(U)

的任意一个可能的关系

r

,如果

r

中不存在两个元组,它们在

X

上的属性值相同,

而在

Y

上的属性值不同,

则称“

X

函数确定

Y"

或“

Y

函数依赖于

X"

,记作

X

Y

*

解析:

1

)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖。

2

)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果

X

Y

,则

r

中任意两个元组,若它们在

X

上的属性值相同,那么在

Y

上的属性值一定也相同。

3

)我们要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义。

4

)函数依赖不是指关系模式


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9952471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存