首页 理论教育 函数依赖在数据库系统中的定义及用途

函数依赖在数据库系统中的定义及用途

时间:2023-10-21 理论教育 版权反馈
【摘要】:函数依赖定义了数据库系统中数据项之间相关性中最常见的类型。(一)定义3-1函数依赖:设R是一个具有属性集合U的关系模式,X,YU。通俗地说,对于一个关系r,不可能存在一个元组在X上的属性值相等,而在Y上的属性值不等,称X函数确定Y或Y函数依赖于X。函数依赖是语义范畴的概念,我们只能根据数据的语义来确定函数依赖关系。

函数依赖在数据库系统中的定义及用途

函数依赖(FD)定义了数据库系统中数据项之间相关性中最常见的类型。我们通常只考虑单个关系表属性列之间的相关性。为方便描述、统一符号表示,先做如下约定:设R是一个关系模式,U是R的属性集合,用字母X,Y,…表示属性集合U的子集, 即X,Y⊆U;用A,B,…表示单个属性,r是R的一个关系实例,t是关系r的一个元组, 即t∈r;用t[X]表示元组t在属性集X上的值,t[A]表示元组t的属性A上的值。为了不引起混淆,将关系模式和关系实例统称为关系,并用XY表示X与Y的并集,即XY。

(一)定义3-1

函数依赖:设R(U)是一个具有属性集合U的关系模式,X,YU。对于R(U)的任意一个可能的关系r,r中的任意一个元组t1和t2,如果t1[X]=t2[X],则t1[Y]=t2[Y],我们称X函数确定Y,或Y函数依赖于X,记作X→Y。

通俗地说,对于一个关系r,不可能存在一个元组在X上的属性值相等,而在Y上的属性值不等,称X函数确定Y或Y函数依赖于X。

为便于理解,不妨假设X和Y均只包含一个属性,分别记为A和B。(www.xing528.com)

函数依赖是语义范畴的概念,我们只能根据数据的语义来确定函数依赖关系。例如在前面描述的作者信息表(Authors)中,“作者姓名—地址”(即au_name→au_addr)这个函数依赖关系只有在系统中不存在同名的作者,且一个作者只有一个联系地址的情况下才能成立,如果出现同名作者或者一个作者可能有多个联系地址(事实上这是必然会出现的情形),则此时“作者姓名—地址”这个函数依赖关系就不能成立。为此,要求设计者对现实世界做出强制性的规定,如图书订购系统中规定一个作者有一个联系地址,但并不能强制性规定不能有同名作者出现,为此通常要求人为增加属性的方法,以区分不同的元组。在作者信息表(authors)增加了作者标识(au_id)属性,以保证每个作者具有唯一不同的标识。这一点在各种管理系统的数据库设计中具有十分重要的意义。在图书信息表(Titles)中增加了书号(title_id)属性,同样,出版社信息表(Publishers)中也可增加出版社标识(pub_id)属性。这都是源于这一要求做出的。

(二)定义3-2

完全函数依赖和部分函数依赖:设R(U)是一个具有属性集合U的关系模式,若X→Y,并且对于X的任何一个真子集,都有Z↛Y,则称Y完全函数依赖于X,记作X→fY;若X→Y,但Y不完全函数依赖于X,称Y部分函数依赖于X,记作X→pY。

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

我要反馈