0

I was going through the conditions of minimum cover of a set of function dependencies.

Here, it is mentioned that the right hand side can have only single attribute. So {A1A2 → B1B2} is not possible. It should be split as {A1A2 → B1, A1A2 → B2}.

But in DBMS by Korth, the following condition is there

Each left side of a functional dependency in Fc is unique. That is, there are no
two dependencies A1 → B1 and A2 → B2 in Fc such that A1 = A2.

So, according to this {A1A2 → B1, A1A2 → B2} is not possible. The dependencies should be combined as {A1A2 → B1B2} to avoid repetition.

Please clarify which is correct.

4

1 回答 1

0

在我看来,这似乎是符号上的差异,仅此而已。这两组 FD 是等价的。

  • {A1A2 → B1}
  • {A1A2 → B2}

  • {A1A2 → B1B2}

正如您在第一组中看到的那样,我使用的大多数自动化工具都表达了最小覆盖率。你的文字似乎更喜欢第二组。

这两种不同的表达式对可约性或覆盖率或闭包没有影响,这是计算最小覆盖率的真正问题。您可能会争辩说,第一个版本在右侧不超过一个非主属性,因为它更接近于 6NF 中的分解,所以它更好。

但是你应该使用你的课文和教授要求的版本,记住这是一个错误的要求。从某种意义上说,将符号从第二个版本更改为第一个版本对您是否确实找到了最小覆盖没有影响,并且它对计算最小覆盖所需的工作没有实质性影响,这是错误的。

于 2013-02-09T13:31:20.987 回答