此表的非平凡功能依赖性

时间:2015-04-19 13:01:56

标签: database relational-database functional-dependencies

下表中包含哪些非平凡的函数依赖项? 任何人都可以一步一步解释规则吗?

A   B   C
------------
a1  b2  c1    
a2  b1  c6    
a3  b2  c4    
a1  b2  c5    
a2  b1  c3    
a1  b2  c7    

2 个答案:

答案 0 :(得分:2)

我将从免责声明开始,声明我对功能依赖性的了解仅限于Wikipedia article中所解释的内容,而且我目前没有必要也没有兴趣研究它进一步

但是,由于OP要求澄清,我将试图澄清我是如何获得我在评论中发布的看似正确的答案。

首先,这是维基百科的定义:

  

给定关系 R R 中的一组属性 X 被称为   功能上确定另一组属性 Y ,也在 R 中,   (写成 X→Y )当且仅当每个 X 值与之关联时   恰好一个 Y 值;然后 R 被认为满足功能   依赖 X→Y

此外,维基百科声明:

  

功能依赖FD: X→Y 如果 Y Y ,则称为 X    X 的子集。

考虑到这些定义,我得出了给定关系的以下两个非平凡的函数依赖:

  • A→B
  • C→{A,B}

识别这些是一个完全归纳的过程。我没有应用一系列规则,公式和计算,而是查看了所提供的数据并搜索了满足上述定义的那些约束。

在这种情况下:

  • A→B
    A 提供了三种可能的值: a1 a2 a3 。查看 B 的相应值,您将找到以下组合: a1→b2 a2→b1 a3 →b2 。或者, A 的每个值都恰好与一个 B 值相关联,符合定义。
  • C→{A,B}
    这种依赖性也有同样的原因。在这种情况下,识别它更容易,因为 C 的值在此关系中是唯一的。从这个意义上讲, C 可以被视为。在数据库术语中,candidate key就是:一组唯一标识每个元组的最小属性。

毫无疑问,有一种方法可以在数学上从数据中推导出函数依赖关系,但对于像这样的简单情况,归纳过程似乎工作正常。

答案 1 :(得分:0)

因此,上表中的非平凡功能依赖性是:

 1. A->B
 2. A,C->B
 3. B,C->A
 4. C->A,B