函数依赖有没有直接函数依赖和间接函数依赖的说法

如题,本人在学校的教材,胡孔法先生写的《数据库原理及应用》一书中发现了这两个名词。

书中将“部分函数依赖”和“完全函数依赖”归分为“直接函数依赖”,而“传递函数依赖”则是“间接函数依赖”。

在上述前提下,后文又写有:
R∈1NF,且它的任一非主属性都完全依赖于任一候选关键字,则称R满足2NF。

综上所述,是不是能认为书中所写的2NF等价于3NF?



标题中的问题是因为百度到的相关信息过少而产生的疑问。

根据您提供的信息,可以得出以下结论:

  1. 在函数依赖的分类中,直接函数依赖包括部分函数依赖和完全函数依赖,而传递函数依赖属于间接函数依赖。

  2. 对于一个关系模式R,如果它满足2NF,则它的任一非主属性都完全依赖于任一候选关键字。这意味着,每个非主属性都不能通过候选关键字的一个子集来推导出。

  3. 3NF要求一个关系模式R满足2NF,并且任何非主属性都不依赖于其他非主属性。也就是说,如果R中存在传递函数依赖的情况,这个关系模式就不能满足3NF的要求。

因此,2NF和3NF在定义上是不同的,且不完全等价。虽然在2NF的定义中包含了完全函数依赖的要求,但它并没有要求一个关系模式中不存在传递函数依赖。而3NF则在2NF的基础上,进一步要求消除传递函数依赖。