我试图了解如何将关系放入4nf。但是,我很难理解多值依赖是什么。我的教科书将其定义为:
表示关系中属性(例如,A,B,C)之间的依赖关系,使得对于每个值A,存在B的一组值和C的一组值。但是,一组值为B和C彼此独立。
Thomas Connolly和Carolyn Begg的数据库系统。
它是否说明多值依赖是一组满足以下要求的函数依赖?
A-> B ^ A-> C ^〜(B-> C)
该文本继续表明这些约束通常存在于1:n关系中,这使我认为可能存在我缺失的隐含条件。
答案 0 :(得分:0)
什么是多值依赖? 以下条件必须符合:
对于依赖关系A→B,如果是单个A值,则为多个值 B存在,那么表可能具有多值依赖。
一个表应至少包含 3 列,以使其具有多值依赖关系。
对于关系R(A,B,C),如果A和B之间存在多值依赖关系,则B和C应独立 彼此。
EmployeeID技术爱好
1 Java Cricket
1 C#Hockey
2 C#Cricket
2 SQL Hockey
所以EmployeeID 1有2项技术,有2个爱好。
由于技术与业余爱好之间存在无关系,因此EmployeeID 1的2条记录可以产生另外两条记录:
EmployeeID技术爱好
1 Java Cricket
1 C#Hockey
1 Java Hockey
1 C#Cricket
因此存在多值依赖性,这导致不必要的重复数据和其他异常。