我正在上一个数据库类,做一个函数依赖项的赋值。作为一个使用Armstrong公理来获取给定依赖关系和导出其他非平凡依赖关系的例子,TA编写了这篇文章,我无法用它来包装我的头脑。
考虑R(c,p,h,s,e,n)与F的函数依赖集{1. c->p, 2. hs->c, 3. hp->s, 4. ce->n, 5. he->s}
迭代1:
从F,我们可以构建F1
6. hs->p (transitivity: 1+2)
7. hc->s (pseudo-transitive. 1+3)
8. hp->c
1. hp->hs (reflexivity 3)
2. hp->c (transitivity: 8.1+2)
9. he->c
1. he->hs (reflexivity: 4)
2. he->c (transitivity: 9.1+2)除了使用“自反性”(使用引号,因为这与我的教科书中反身性的定义相差甚远)之外,我理解了其中的大部分内容。有人能告诉我这是怎么回事吗?另外,我如何知道迭代何时结束?你不能找到无限多的重写函数依赖关系的方法吗?
发布于 2018-03-11 04:05:38
一个名字不会告诉你什么,除了某人决定叫的东西。
平凡的FD X -> X与X中的属性保持任何关系,即关系中的一组属性在功能上决定自己。这被合理地称为反射性。它在功能上决定了自己的每一个子集。这种情况下,“自反性”被选择为更一般规则的名称,更一般的规则被选择为一组充分但非冗余的规则之一。
阿姆斯特朗的公理被证明是正确和完整的。声音意味着它们只生成隐含的FDs。完成意味着,如果您一直应用一个公理,直到没有通过应用其中的任何一个得到任何新的FDs,那么您就可以得到从原始集合派生出来的所有FDs,即当原始集合保持不变时也必须保持该公理。任何教科书都告诉您,您可以通过这样做生成一组FDs的传递闭包。
对于FDs +MVD也有健全和完整的公理集。但没有FDs + JDs。
https://stackoverflow.com/questions/49215893
复制相似问题