关系规范化理论与数据库设计.pptVIP

  • 4
  • 0
  • 约2.08万字
  • 约 139页
  • 2024-01-18 发布于广西
  • 举报

第8章关系标准化理论与数据库设计;8.1函数依赖;数据依赖是通过一个关系中属性间值的依赖与否表达出来的数据间的相互关系,它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的表达。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(FD,FunctionalDependency)和多值依赖(MVD,MultivaluedDependency)。这里只讨论函数依赖,有关多值依赖的概念,有兴趣的读者可以参阅有关书籍。;函数依赖极为普遍地存在于现实生活中。比方描述一个学生的关系,可以有学号(SNO),姓名(SNAME)和系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习,因而当“学号〞值确定以后,姓名和该生所在系的值也就被惟一确实定了。就象自变量x确定以后,相应的函数值f(x)也就惟一地确定了一样,称SNO函数决定SNAME和SDEPT,或者说SNAME和SDEPT函数依赖于SNO,记为

SNO→SNAME SNO→SDEPT;用形式化的方式表示,关系模式R可以记为

RU,F

其中U表示一组属性的集合,F表示属性组U上的一组数据依赖集合。对于上述的学生关系,可有

U={SNO,SNAME,SDEPT}

F={SNO→SNAME,SNO→SDEPT}

对于关系模式RU,F,当且仅当U上的一个关系r满足F时,称r为关系模式RU,F的一个关系。

;定义8-1设R(U)是属性集U上的关系模式,X,Y是U的子集。假设对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,那么称X函数确定Y或Y函数依赖于X,记为X→Y。

注意,函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均需要满足的约束条件。;函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如在没有同名的情况下,NAME→AGE,而在有同名的情况下,这个函数依赖就不成立了。

下面介绍一些术语和记号:

①假设X→Y,那么X叫做决定因素。

②假设X→Y,Y→X,那么记为X←→Y。

③假设Y不函数依赖于X,那么记为XY。

④假设X→Y,但YX,那么称X→Y是平凡的函数依赖。;⑤假设X→Y,但YX,那么称X→Y是非平凡???函数依赖。假设不特别声明,下面总是指非平凡的函数依赖。

函数依赖可分为三类:完全函数依赖,局部函数依赖和传递函数依赖。这三类函数依赖定义如下:;(1)完全函数依赖。

定义8-2在R(U)中,如果X→Y,并且对于X的任何一个真子集X?,都有XY,那么称Y对X完全函数依赖,记为XY。可简写为→。

例8-1在关系S(SNO,SNAME,SDEPT)中,SNO→SNAME,SNO→SDEPT。用图解表示如图8-1所示。

假设关系中没有同姓名的学生,那么用SNO可以惟一确定SNAME,用SNAME也可惟一确定SNO,形成了两者的相互依赖关系,可以记作SNO←→SNAME。;图8-1;(2)局部函数依赖。

定义8-3在R(U)中,如果X→Y,并且对于X的某个真子集X,有X→Y,那么称Y对X局部函数依赖,记为XY。

只有当X为属性组时,才有可能发生局部函数依赖的情况。因为如果X为单个属性,其子集X就是X本身。;例8-2假设在关系SC(SNO,CNO,GRADE)中增加一个属性CLASS(学生所在班级),那么在新关系SCNEW(SNO,CNO,GRADE,CLASS)中有

(SNO,CNO)→GRADE

SNO→CLASS

(SNO,CNO)CLASS

用图解表示,如图8-2所示。请读者注意图中两个箭头的不同出发点。;图8-2;(3)传递函数依赖。

定义8-4在R(U)中,如果X→Y,(YX),Y→Z,但YX,那么称Z对X传递函数依赖,记为XZ。

请注意上述定义中的条件YX。如果不加上这一限制,当X→Y时允许Y→X,那么

X←→

文档评论(0)

1亿VIP精品文档

相关文档