如题,本人在学校的教材,胡孔法先生写的《数据库原理及应用》一书中发现了这两个名词。
书中将“部分函数依赖”和“完全函数依赖”归分为“直接函数依赖”,而“传递函数依赖”则是“间接函数依赖”。
在上述前提下,后文又写有:
R∈1NF,且它的任一非主属性都完全依赖于任一候选关键字,则称R满足2NF。
综上所述,是不是能认为书中所写的2NF等价于3NF?
标题中的问题是因为百度到的相关信息过少而产生的疑问。
如题,本人在学校的教材,胡孔法先生写的《数据库原理及应用》一书中发现了这两个名词。
书中将“部分函数依赖”和“完全函数依赖”归分为“直接函数依赖”,而“传递函数依赖”则是“间接函数依赖”。
在上述前提下,后文又写有:
R∈1NF,且它的任一非主属性都完全依赖于任一候选关键字,则称R满足2NF。
综上所述,是不是能认为书中所写的2NF等价于3NF?
标题中的问题是因为百度到的相关信息过少而产生的疑问。
根据您提供的信息,可以得出以下结论:
在函数依赖的分类中,直接函数依赖包括部分函数依赖和完全函数依赖,而传递函数依赖属于间接函数依赖。
对于一个关系模式R,如果它满足2NF,则它的任一非主属性都完全依赖于任一候选关键字。这意味着,每个非主属性都不能通过候选关键字的一个子集来推导出。
3NF要求一个关系模式R满足2NF,并且任何非主属性都不依赖于其他非主属性。也就是说,如果R中存在传递函数依赖的情况,这个关系模式就不能满足3NF的要求。
因此,2NF和3NF在定义上是不同的,且不完全等价。虽然在2NF的定义中包含了完全函数依赖的要求,但它并没有要求一个关系模式中不存在传递函数依赖。而3NF则在2NF的基础上,进一步要求消除传递函数依赖。