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}开始
FDISBN-->TITLE,PUBLISHER具有完全包含在当前属性集x中的LHS。
通过FDRHS属性集扩展x,给出x={ISBN,TITLE,PUBLISHER}
现在FD:PUBLISHER-->PU_URL适用
将FD的RHS属性集添加到当前属性SETx,给出x={ISBN,TITLE,PUBLISHER,PU_URL}
这里我们可以得出结论ISBN-->PU_URL
第四范式会导致多值依赖。如果关系是BoyceCodeeNormal形式,则必须删除多值依赖项。
说明-多值依赖关系是,如果表中存在依赖关系或关系,则一个值具有多个依赖关系。
让我们考虑下面给出的示例。考虑下表-
在上表中,id2有两个部门Hr和Network。并日夜轮班计时。
当我们选择id为2的详细信息时,将生成如下表格-
这意味着存在多值依赖。在这里,部门和班次之间的关系是无足轻重的。
这可以通过删除多值依赖项来纠正,将这些数据放入两个表中,如下所示-
表格1
表2
应用第四范式去除数据表中的多值依赖。
因此,第四范式定义了多值依赖关系。