检查给定关系中哪些函数描述符 (FD) 违反了 2NF,并将 R 分解为 2NF

dbmsdatabasebig data analytics更新于 2026/1/13 14:52:17

规范化是组织数据库中数据的过程。它有助于删除数据库中的重复值。规范化将大型表划分为多个较小的表,并使用关系将它们链接起来。

范式用于减少数据库表中的冗余。规范化是指简化记录中数据元素之间关系的过程。

简而言之,

规范化是组织数据以最小化数据量的过程。

  • 冗余/重复/重复。
  • 插入、删除、更新异常。

范式

范式有以下六种:−

  • 第一范式 (1NF)
  • 第二范式 (2NF)
  • 第三范式 (3NF)
  • Boyce-Codd 范式 (BCNF)
  • 第四范式 (4NF)
  • 第五范式(5NF)

问题

对于给定的关系 R(ABCDE) 和 F: {A->C, B->DE, D->C},检查哪个函数依赖 (FD) 违反了 2NF,并将 R 分解为 2NF。

解决方案

在 2NF 中,关系必须符合 1NF。在第二范式中,所有非键属性都完全函数依赖于主键。当关系符合 1NF 且没有部分依赖关系时,它符合 2NF。

A+ = AC => A 不是候选键

B+ = BDEC => B 不是候选键

D+ = DC => D 不是候选键

AB+ =ACBDE => AB 是候选人 kay

=>关键属性 = A、B,非关键属性 = C、D、E。

A->C 违反 2NF [因为 A->C 是部分依赖]

B->DE 违反 2NF [因为 B->DE 是部分依赖]

D->C 符合 2NF [因为 D->C 不是部分依赖]

2NF 分解为以下 −

我们考虑违反 2NF 的功能块,它们如下 −

对于 A->C R(ABCDE0分解为 R1(AC) 和 R2(ABDE)

对于 B->DE,R2(ABDE) 分解为 R3(BDEC) 和 R4(AB)。

=>关系 R 的 2NF 分解为 R1(AC)、R3(BDEC)、R4(AB)。


相关文章