什么是 DBMS 中的 4NF?

如果关系 R 在 BCNF 中并且没有非平凡的多值依赖关系,则它在 4NF 中。

对于依赖 A->B,如果对于 A 的单个值,存在多个 B 值,则该关系将是多值依赖。

示例

考虑下表

雷尼奥号码资质
1P1Diploma
1P1B.Tech
1P1M.Tech
1P2Diploma
1P2B.Tech
1P2M.Tech

这里,

regno->-> 号码

regno->-> 资格。

两者都是非平凡的 MVD

给定的关系在 BCNF 中[因为不存在函数依赖]。但是上表不在 4NF 中[因为有一个非平凡的 MVD]。

异常

它还存在以下异常情况 -

  • 插入异常:如果我们想为 regno3 插入一个新的 phoneno,那么我们必须插入 3 行,因为对于每个 phoneno,我们已经存储了所有三种限定组合。

  • 删除异常:如果我们要删除资格证书,那么我们必须在不止一个地方删除它。

  • 更新异常:如果我们要将资格证书更新为IT,那么我们必须在不止一个地方更新。

4NF分解

如果R(XYZP)有 X->->Y 和 X->->Z 那么,R 被分解为 R1(XY) 和 R2(XZP)。

=>R(regno, phoneno, qualification)分解为 R1(regno, phoneno) 和 R2(regno,qualification)。

R1

雷尼奥号码
1P1
1P2

R2

雷尼奥资质
1文凭
1B.Tech
1科技

上面讨论的所有异常都被删除了。以上两个关系在4NF中。

现在, regno->->phoneno 是微不足道的 MVD(因为 {regno} U {phoneno}=R1)

=> R1 在 4NF 中。

Regno->-> 资格是微不足道的 MVD(因为 {regno} U {qualification} =R2)

=> R2 在 4NF。

以上是 什么是 DBMS 中的 4NF? 的全部内容, 来源链接: utcz.com/z/356785.html

回到顶部