来自数据库管理系统手册:给定关系snlrwh(每个字母表示一个属性)和以下功能依赖项:
s->snlrwh(s是pk)
右->西
我的尝试:
首先,它不是3nf:对于第二个fd,r不包含w,r也不包含密钥,w也不是密钥的一部分。
第二,是/不是2NF。如果我们研究第二个fd,w依赖于r,而r又不是键的一部分。卡住了。

最佳答案

如果候选键的某个适当子集在某个(非平凡)依赖项的左侧显示为行列式,则违反2nf。问问你自己,你的决定因素是否是候选键的子集。
通常只有当一个关系有一个复合键(一个具有多个属性的键)时,才会违反2NF。从技术上讲,如果空集(∏)恰好是一个行列式,那么只有简单键(单属性键)的关系就有可能违反2nf。这种情况相当罕见,很少被认为值得考虑,因为它们是如此明显的“错误”。为了完整起见,这里有一个有趣的例子。在下面的关系中,周长和直径都是候选键。违反2nf的相依性为∏->π,周长与直径之比。

08-19 09:21