DBMS 中的多值依赖是什么?

多值依赖 (MVD) 是在表中存在一行或多行。它意味着在同一个表中存在一个或多个其他行。多值依赖会阻止第四范式。多值依赖至少涉及表的三个属性。

它在 DBMS 中用符号“->->”表示。

X->Y 将 X 的一个值与 Y 的一个值关联起来。

X->->Y(读作 X 多重确定 Y)将 X 的一个值与 Y 的多个值联系起来。

当 X->->Y 和 X->->z 发生非平凡 MVD 时,其中 Y 和 Z 不相关且彼此独立。非平凡的 MVD 会产生冗余。

我们以两种不同的方式使用多值条件 -

  • 测试关系以确定它们在实际和多值依赖关系的给定安排下是否合法。

  • 确定对合法关系安排的限制。我们将只关心满足实际和多值依赖关系的给定安排。

MVD 传递规则

如果 A ->B 成立,B ->C 成立,则 A ->B ->C 成立。

例子

给定的 FD 集如下 -

ISBN--> 书名,出版商

ISBN,NO -->作者

发布者 --> PU_URL

我们需要证明这个规则。考虑 A=ISBN,B=PUBLISHER,C=PU_URL。要找到隐含的传递规则,请找到 A+ 的覆盖并计算。

  • 现在从 x={ISBN} 开始

  • FD ISBN--> TITLE, PUBLISHER 具有完全包含在当前属性集 x 中的 LHS。

  • 通过 FD RHS 属性集扩展 x,给出 x={ISBN,TITLE,PUBLISHER}

  • 现在 FD:PUBLISHER -->PU_URL 适用

  • 将 FD 的 RHS 属性集添加到当前属性 SET x,给出 x={ISBN,TITLE,PUBLISHER,PU_URL}

这里我们可以得出结论 ISBN-->PU_URL

第四范式会导致多值依赖。如果关系是 Boyce Codee Normal 形式,则必须删除多值依赖项。

说明- 多值依赖关系是,如果表中存在依赖关系或关系,则一个值具有多个依赖关系。

让我们考虑下面给出的示例。考虑下表 -

ID转移
1编码day
2小时day
3网络night

在上表中,id 2 有两个部门 Hr 和 Network。并日夜轮班计时。

当我们选择 id 为 2 的详细信息时,将生成如下表格 -

ID转移
2小时day
2网络night
2小时night
2网络day

这意味着存在多值依赖。在这里,部门和班次之间的关系是无足轻重的。

这可以通过删除多值依赖项来纠正,将这些数据放入两个表中,如下所示 -

表格1

ID
1编码
2小时
2网络

表 2

ID转移
1
2
2夜晚

应用第四范式去除数据表中的多值依赖。

因此,第四范式定义了多值依赖关系。

以上是 DBMS 中的多值依赖是什么? 的全部内容, 来源链接: utcz.com/z/331752.html

回到顶部