第二范式(2NF)的定义是:在关系模式满足第一范式(1NF)的前提下,**消除非主属性对候选键的部分函数依赖*

发布时间:2026/6/10 1:08:02

第二范式(2NF)的定义是:在关系模式满足第一范式(1NF)的前提下,**消除非主属性对候选键的部分函数依赖* 第二范式2NF的定义是在关系模式满足第一范式1NF的前提下消除非主属性对候选键的部分函数依赖。具体来说若一个关系模式中存在复合候选键即由多个属性组成的候选键而某个非主属性仅依赖于该候选键的一部分而非全部则称存在部分函数依赖2NF 要求所有非主属性都必须完全函数依赖于每一个候选键即不能只依赖于候选键的真子集。✅ 举例说明关系模式SC(Sno, Cno, Grade, Cname)其中(Sno, Cno)是候选键Grade是非主属性Cname是课程名。若存在函数依赖(Sno, Cno) → Grade完全依赖OKCno → Cname即Cname仅依赖于候选键的一部分Cno属于部分依赖→ 此时Cname对候选键(Sno, Cno)存在部分依赖违反 2NF。✅ 解法将SC分解为SC1(Sno, Cno, Grade)C(Cno, Cname)分解后两个关系均满足 2NF且进一步可达到 3NF。注意若关系中所有候选键均为单属性则自动满足 2NF因为不存在“部分依赖”的可能性。因为第二范式2NF的核心要求是在满足1NF的前提下所有非主属性都必须完全函数依赖于每一个候选键而不能存在对候选键的“部分函数依赖”。而部分函数依赖的定义是设X是候选键且|X| ≥ 2Y是非主属性若存在X的真子集X′ ⊂ X使得X′ → Y成立则称Y对X存在部分依赖。→ 关键前提只有当候选键X包含两个或以上属性即为复合键时“X的真子集”才可能存在从而才可能产生“部分依赖”。✅ 因此若一个关系模式的所有候选键都是单属性例如候选键仅为A、或仅为B、或A和B各自都是候选键则每个候选键X都满足 |X| 1它不存在任何真子集因为单属性集合的唯一子集是空集而∅ → Y不构成函数依赖除非Y为空但函数依赖要求左部非空故不可能存在“Y依赖于X的某一部分”这种情况所有对候选键的依赖天然就是“完全依赖”因键本身只有一个属性依赖必然是全依赖。 补充说明即使存在多值依赖或传递依赖如A → B → C那属于3NF或BCNF的考量范畴与2NF无关。2NF仅防范“部分依赖”而部分依赖在单属性候选键下逻辑上不可发生。因此只要所有候选键均为单属性无论函数依赖结构如何复杂该关系模式自动满足2NF当然前提是已满足1NF即属性原子性。

相关新闻