我正在经历一组函数依赖的最小覆盖条件。
Here,提到右侧只能有一个属性。所以{A1A2 → B1B2}
是不可能的。它应该分为{A1A2 → B1, A1A2 → B2}
。
但是在Korth的DBMS中,存在以下条件
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.
所以,根据这个{A1A2 → B1, A1A2 → B2}
是不可能的。依赖项应合并为{A1A2 → B1B2}
以避免重复。
请澄清哪个是正确的。
答案 0 :(得分:0)
在我看来,这在符号上是不同的,仅此而已。这两组FD是等价的。
{A1A2→B2}
{A1A2→B1B2}
我使用的大多数自动化工具都表达了第一组中的最小封面。你的文字似乎更喜欢第二套。
这两个不同的表达式对可还原性或覆盖率或封闭性没有影响,这是计算最小覆盖率的真正问题。您可以认为第一个版本在右侧只有一个非素数属性,因为它更接近于6NF中的分解。
但是你应该使用你的文本版本和教授要求的版本,记住这是一个错误的要求。从某种意义上说,将符号从第二个版本更改为第一个版本对于您是否确实找到了最小覆盖率没有影响,这对于计算最小覆盖率所需的工作没有实质影响。 / p>