数据库中的功能依赖

问题描述 投票:0回答:1

我真的很困惑,确定功能依赖,并需要确认我有我所有的依赖列表。我有一张桌子。

从下表中,我发现:

我的问题是,我是否正确列出了所有可能的功能依赖?另外(如果我是对的),我看到model --> make,我还需要model, color --> make等。自从make, msrp --> model, year以来,我还需要model, year --> make, msrp列表吗?

database-design functional-dependencies
1个回答
3
投票

功能依赖性始终存在。

当您尝试从数据中导出FD时,您可能会导出只有巧合的FD。 FD make, color -> model的意思是“当我看到一辆红色的本田时,我知道这是一个雅阁。”就你所提供的数据而言,这是真的。但是你和我知道,如果我们等待更多的数据,我们肯定会找到一辆红色的本田思域。 FD make, color -> model适用于此样本数据,但它并不是一直存在的。

要确定您是否已根据样本数据找到所有FD,您必须测试每种可能的属性组合。 (或者,更好的是,写一个程序来做它。)我没有尝试找到所有这些。你似乎走在了正确的轨道上。

另外(如果我是对的),我看到那个模型 - >制作,我还需要模型,颜色 - >制作等。

如果你在学校这样做,你的教授可能希望看到a)所有可能的FD(因此,包括model, color --> make)和b)你删除可简化的FD后所有的FD(所以,删除model, color --> make)。

另外自从make,msrp - > model,year,我还需要model,year - > make,msrp在列表中吗?

是。通过BCNF的归一化取决于确定a)所有候选键,以及b)所有主要和非主要属性。 (主要属性是任何候选键的一部分属性。)FD的集合{AB->CD}为您提供一个候选键AB和两个非主要属性C, D。 FD的集合{AB->CD, CD->AB}为您提供了两个候选键和零非主要属性。

© www.soinside.com 2019 - 2024. All rights reserved.