2011-05-26 100 views
1

第四范式描述BCNF中的一个关系,但它不包含非平凡的多值依赖关系。第四范式

我很努力去理解什么是微不足道的多值依赖和不平凡的多值依赖和差异。如何识别后者以执行4NF?

编辑:

我主要需要知道一个简单的和不平凡的依赖之间的区别是什么?

回答

5

维基百科上有一个相当不错的例子:Fourth normal form。有没有你不明白的具体部分?你可能也想看看Multivalued dependency

更新:那么平凡和非平凡依赖之间有什么区别?

这取决于我们是否在讨论函数或多值依赖。

甲琐碎函数依赖X -> Y是其中YX一个子集。由于X -> Y意味着“Y可以从X确定”,所以对于任何XY这都是非常正确的,其中Y由来自X的属性组成;显然,如果我们知道X,如果它只包含X的内容,我们可以确定Y

一个平凡的多值依赖X ->-> Y是一个地方Y含有不X每个属性。请注意,它也可以包含X中的属性。对于所有的XY来说,这种多值依赖性也是如此,因此是微不足道的。这是根据多值依赖的定义:

表示由(X,Y,Z)的具有用于X 值,YR − X − Y 统称等于X,Y,Z, 相应,则元组每当元组(a,b,c)和(a,d,e)存在于元组中时,元组(a,b,e)和(a,d,c)应该也存在于r中。

在一个微不足道的多值扶养,该组z = R - X - Y是空的,所以要求降低至(0是空集):

元组(A,B,0)和(a ,d,0)存在于r中, 中也存在元组(a,b,0)和(a,d,0)。

这显然是对的。

+0

BCNF是否意味着表中的每个属性都可以唯一地标识一个元组? – user559142 2011-05-26 10:13:15

+0

@ user559142:BCNF(实际上是2NF或更高)要求表中没有非素数属性,是非素数意味着**候选键的属性**部分,但不一定是候选键* *在其自己的**。所以不,不是每个属性都可以唯一地标识一个元组,但是它必须是**的一个子集的一部分。 – verdesmarald 2011-05-26 10:36:30

+0

啊,太棒了!我现在明白了!那么平凡和非平凡依赖之间的区别是什么? – user559142 2011-05-26 11:21:29

1

X-> Y是Trival当且仅当右侧是左侧的一个子集。 X->如果Y不包含在X中,则Y是非Trival。