Database design 数据库中的函数依赖关系

Database design 数据库中的函数依赖关系,database-design,functional-dependencies,Database Design,Functional Dependencies,我在确定函数依赖项时真的很困惑,需要确认我有所有依赖项列表。我有一张桌子 从下表中,我发现: 我的问题是,我是否正确地列出了所有可能的函数依赖关系?另外,如果我是对的,我看到模型->制造,我还需要模型,颜色->制造,等等。而且自从制造,msrp->模型,年份,我还需要模型,年份->制造,msrp在列表中吗 功能依赖关系始终有效 当您试图从数据中导出FD时,您很容易导出仅在巧合情况下才有效的FD。FD make,color->model意味着当我看到一辆红色的本田时,我知道它是雅阁。就你得到的数据

我在确定函数依赖项时真的很困惑,需要确认我有所有依赖项列表。我有一张桌子

从下表中,我发现:

我的问题是,我是否正确地列出了所有可能的函数依赖关系?另外,如果我是对的,我看到模型->制造,我还需要模型,颜色->制造,等等。而且自从制造,msrp->模型,年份,我还需要模型,年份->制造,msrp在列表中吗

功能依赖关系始终有效

当您试图从数据中导出FD时,您很容易导出仅在巧合情况下才有效的FD。FD make,color->model意味着当我看到一辆红色的本田时,我知道它是雅阁。就你得到的数据而言,这是事实。但你我都知道,如果我们等待更多的数据,我们肯定会找到一辆红色的本田思域。FD make,color->model适用于此示例数据,但并非始终适用

要确定是否已根据样本数据找到所有FD,必须测试所有可能的属性组合。或者,更好的办法是编写一个程序来完成。我没有试图找到所有的人。你似乎在正确的轨道上

如果我是对的,我看到模型->制造,我还需要吗 型号、颜色->品牌等

如果你是为学校做这件事,你的教授可能想看到a所有可能的FD,包括模型,颜色->制造,b所有FD,在你移除可还原的FD后,移除模型,颜色->制造

同样,自从make,msrp->model,year,我还需要model,year吗 ->制造,msrp在列表中


对。通过BCNF进行规范化取决于确定a所有候选密钥,b所有素数和非素数属性。prime属性是任何候选键的一部分。FDs{AB->CD}的集合为您提供了一个候选键AB和两个非素属性C,D。FDs{AB->CD,CD->AB}的集合为您提供了两个候选键和零个非素属性。

这是一个很好的例子,说明了为什么您不能仅从数据中合理地派生FDs。数据库是否应该实现制作和颜色决定模型的依赖关系?不太可能。功能依赖性是数据库要反映的主题的一个特征。您可以通过分析主题来发现FDs。请仅将图像用于无法表示为文本或扩充文本的内容。无法搜索或剪切粘贴图像。PS这个表值和这个问题有什么关系?您到底想要保存在这个值中的FD,还是想要保存在一个变量中的FD,或者是什么?你应该还什么?结束?封面?规范/不可约/最小覆盖?您对此进行了评论,但通过编辑而不是评论进行了澄清。我们被要求删除无关紧要的或隐含的依赖项,我认为没有,对吗?您没有列出任何无关紧要的FD。但是model,color->make是隐含的,因为model->make。很好,这也回答了我上面问的问题,我不需要列出model,color->make。谢谢alot@ln206删除隐含的依赖项不是我们想要的。FD由FD集暗示&当存在多个最小/不可约覆盖时,一个覆盖特有的FD由每一个其他覆盖暗示,因此您不会返回其中任何一个。您的意思是,您想要一组包含表中所有其他成员但不包含其他成员的FD—最小/不可约覆盖!另外,添加您不需要琐碎的FD是多余的,因为每个FD集都隐含着每个FD,无论其中是否有FD。