数据库函数依赖

时间:2014-03-17 17:58:28

标签: database database-normalization

我对功能依赖性的问题很少。

首先,学校里有学生和课程,每个学生都可以报名参加很多课程。每门课程都有很多学生。那么如何使用函数依赖来表示呢? students -> courses, courses -> students

如果F = {A -> BCD, CD->A},这相当于{CD->A, A->B}?还是有F的简单表格?

由于

1 个答案:

答案 0 :(得分:1)

广告1.你不能。你把学生和课程放在一个关系中:

 student | course 
---------------------
 John    | Databases
 Wolf    | Algorithms
 Wolf    | Databases
 John    | Art

这里没有(非平凡的)功能依赖。学生不确定课程(因为他可能会参加很多课程)。课程不确定学生(因为课程中有很多学生)。这对(学生,课程)是这种关系的关键。事实上,没有功能依赖性会告诉您学生和课程之间存在多对多关联。

广告2.它们并不相同。你可以从F推导出后者,但是你不能从{CD-> A,A-> B}得到F.你不能得出函数依赖关系A - > BCD。

您可以阅读my (very informal) article on functional dependencies