什么是多值依赖?

时间:2016-07-13 20:17:49

标签: database database-normalization

我试图了解如何将关系放入4nf。但是,我很难理解多值依赖是什么。我的教科书将其定义为:

  

表示关系中属性(例如,A,B,C)之间的依赖关系,使得对于每个值A,存在B的一组值和C的一组值。但是,一组值为B和C彼此独立。

Thomas Connolly和Carolyn Begg的数据库系统。

它是否说明多值依赖是一组满足以下要求的函数依赖?

A-> B ^ A-> C ^〜(B-> C)

该文本继续表明这些约束通常存在于1:n关系中,这使我认为可能存在我缺失的隐含条件。

1 个答案:

答案 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

因此存在多值依赖性,这导致不必要的重复数据和其他异常。