You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关系最高范式判定方法咨询及指定关系BCNF规范化需求

针对给定关系的范式判定与规范化

先明确你给出的信息:

候选键为(a, b);函数依赖:(a,b)→c,d;c→d
原关系模式可以表示为 R(a, b, c, d)

一、判定最高所属范式

咱们按步骤来验证:

  1. 1NF:假设所有属性都是原子值,显然满足。
  2. 2NF:非主属性是c、d,它们都完全依赖于候选键(a,b)——没有哪个非主属性只依赖a或者只依赖b,所以满足2NF。
  3. 3NF:这里出现了问题:存在函数依赖c→d,其中c是非主属性,d也是非主属性,且c依赖于候选键(a,b),相当于d通过c传递依赖于候选键(a,b)。这违反了3NF“非主属性不能传递依赖于候选键”的规则,所以不满足3NF。
  4. BCNF:显然也不满足,因为c→d的左部c不是候选键。

结论:这个关系的最高范式是2NF。

二、规范化到BCNF

要达到BCNF,我们需要拆分关系来消除所有左部不是候选键的函数依赖:

  1. 首先拆分出依赖c→d的关系:R1(c, d)
    • 候选键:c(因为c可以唯一确定d)
    • 函数依赖:c→d
    • 这个关系满足BCNF,因为函数依赖的左部是候选键。
  2. 剩下的属性a、b、c组成关系:R2(a, b, c)
    • 候选键:(a, b)
    • 函数依赖:(a,b)→c
    • 这个关系也满足BCNF,因为函数依赖的左部是候选键。

最终BCNF关系模式及外键说明

  • R2(a, b, c)
    • 候选键:(a, b)
    • 外键:c 引用 R1(c)(确保R2中c的取值都存在于R1的c中,维持数据一致性)
  • R1(c, d)
    • 候选键:c

内容的提问来源于stack exchange,提问作者Luka Buhac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:28:00