0

我正在为 4NF 和多值依赖 (MVD) 的概念而苦苦挣扎。

我正在查看我目前正在学习的课程的补充书籍,其中一个示例如下。

该书指出星号指的是唯一键或复合属性键。

给定:R(A*,B,C*) 和集合 {(A,B):R,(B,C):R} 满足无损分解特性。

多值依赖 B->>C 是否成立?
B 绝对是唯一的键吗?
R 在 4NF 中吗?

我理解无损分解-如果您采用上述两组的自然连接-您将获得原始数据集,即在本例中为 A、B、C。

但是我只是无法掌握如何获取给定的信息并证明/确认 B->>C 成立或不成立。

我给我的教授发了一封电子邮件,告诉我我的困惑,他只是告诉我看一下他的笔记(我显然已经做过很多次了),但这让我无处可去。

4

1 回答 1

0

多值依赖 B->>C 是否成立?

您已被告知有关MVD的一些事情。其中之一可能是:

将 R 分解为 (X, Y) 和 (X, R - Y) 是无损连接分解当且仅当 X ->> Y 在 R 中成立。

在您的情况下,R 是 {A,B,C},X 是 {B},Y 是 {A},R - Y = {A,B,C} - {A} = {B,C}。因此,将 R 分解为 (B,A) 和 (B,C) 是无损连接分解当且仅当 {B,A} ->> {B,C} 在 R 中成立。但是我们给出了分解将 R 分解为 (B,A) 和 (B,C) 是无损连接分解。所以 {B,A} ->> {B,C} 在 R 中成立。

B 绝对是唯一的键吗?

我无法理解这一点。

也许你想说我们给定 {A,C} 是 R 的 CK(候选键),但可能还有其他 CK,你试图问分解性是否意味着 {B} 也必须是CK of R. 让我们找一个反例。举一个最简单的例子。假设 R 是 {(a,b,c1),(a,b,c2)} = {(a,b)} JOIN {(b,c1),(b,c2)}。这与 R CK {A,C} & R MVD {B,A} ->> {B,C} 一致。但是 b 与 c1 和 c2 一起出现,因此 {B} 在功能上不能确定所有其他属性,因此 {B} 不是 R 的 CK。因此 CK 和 MVD 不会强制 {B} 是 CK。

R 在 4NF 中吗?

有人告诉你一些关于4NF的事情。一种可能是:

一个表在 4NF 中当且仅当,对于它的每一个非平凡的多值依赖 X ->> Y,X 是一个超键

MVD {B,A} ->> {B,C} 是不平凡的。但是要显示 R 是否必须在 4NF 中或一定不能在 4NF 中,或者我们无法判断,您将必须解决可能包含在 R 和 R 可能具有的 CK 中的非平凡 MVD 集。

于 2014-11-21T04:53:04.057 回答