检查给定关系中哪些函数描述符 (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)。

