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