数据库中的函数依赖

ln2*_*206 1 database-design functional-dependencies

我对确定功能依赖项感到非常困惑,并且需要确认我拥有所有依赖项列表。我有一张桌子。

在此输入图像描述

从下表中我发现:

在此输入图像描述

我的问题是,我是否在这里正确列出了所有可能的功能依赖项?另外(如果我是对的),我看到model --> make,我还需要等等吗model, color --> make?而且make, msrp --> model, year,我还需要model, year --> make, msrp在列表中吗?

Mik*_*ll' 5

函数依赖性始终有效。

当您尝试从数据中推导出 FD 时,很可能会推导出仅巧合成立的 FD。FD 的make, color -> model意思是“当我看到一辆红色的本田车时,我就知道这是一辆雅阁”。就您提供的数据而言,这是事实。但你我都知道,如果我们等待更多数据,我们肯定会找到一辆红色本田思域。FDmake, 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}为您提供了两个候选键和零个非素数属性。

  • 你没有列出任何琐碎的 FD。但是隐含了“model, color -> make”,因为“model -> make”。 (2认同)