Answers:
一个函数依赖正是顾名思义-函数的输出总是由输入决定。例如,如果我们有一个函数f(),并提供变量x,并且我们始终接收到输出y,则y在功能上取决于 x。您可以2x + 1 = y
将其视为简单的图形函数,
将一些样本值插入我们获得的函数中:
X Y
------
1 3
2 5
3 7
等等。因此我们知道,对于x的每个值,都有y的值,对于该x来说,将始终是y的值。
Codd在确定一个数据元素的值是否总是导致第二个数据元素的已知值(好像它是函数的输入和输出)方面将其应用于数据管理。因此,例如,如果发现一个小公司的每个雇员都得到了一个雇员编号,并且创建了一个雇员编号和姓名的简单列表,我们会发现该姓名在功能上取决于该雇员编号。例如,每次看到7号员工时,我们都会看到名称“ Jim Brown”。这在数据库中代表了真实世界中的真实主张-即7号员工是名为“ Jim Brown”的人,我们可以指向它并说“就是他”。
功能相关性可以实现为唯一约束,因为函数的输入与预期输出之间存在一对一的关系。在代数示例中,将2插入等式2x + 1时,我们将始终得到5。将示例应用到上面的示例中的数据管理中,每当我们拥有员工编号7时,我们都需要一个名字,并且只有一个名字和其他特性。我们再也不能拥有与“ Jim Brown” 和 “ Bob Jones” 相关联的7号员工了,我们可以说将7插入2x +1会产生15和25。
根据定义,当在每个表上放置唯一约束以标识与另一组数据元素具有一对一关系且其值始终随第一组变化的每组数据元素时,将实现功能依赖。该符号通常为:
A,B ---> C
这意味着A和B的值确定C的值。也许A是雇员编号,B是受抚养人编号,而C是受抚养人的姓名。因此,从这个意义上讲,它们适用于每个数据库中每个模式中的每个表。
Fabian Pascal的实用数据库基础丛书和Chris Date的《计算机专业人员的关系理论》一书对关系理论提供了很好的参考。