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

判断关系模式R是否满足BCNF?若不满足,给出分解并判断依赖保持性

关系模式R的BCNF判断与分解

一、候选键确认

关系模式( R=(A,B,C,D,E) ),函数依赖集( F={BCE→D, BDE→C, ABE→D, AB→C} )。
验证可得ABE是唯一候选键:

  • 由( ABE→D )和( AB→C ),可推导出( ABE→A,B,C,D,E ),覆盖所有属性;
  • 无法找到ABE的真子集能决定全部属性,因此ABE是最小的候选键。

二、BCNF合规性判断

BCNF的核心要求:对于每个非平凡函数依赖( X→Y ),X必须是超键。逐一检查函数依赖:

  • ( ABE→D ):ABE是候选键(超键),符合BCNF要求;
  • ( AB→C ):AB不是超键(无法推导出E),违反BCNF;
  • ( BCE→D ):BCE不是超键(无法推导出A),违反BCNF;
  • ( BDE→C ):BDE不是超键(无法推导出A),违反BCNF。

结论:R不符合BCNF。

三、BCNF分解方案

采用BCNF分解算法,步骤如下:

  1. 选取违反BCNF的函数依赖( AB→C ),将R分解为两个子关系:
    • ( R_1=(A,B,C) ):函数依赖为( AB→C ),AB是( R_1 )的候选键,符合BCNF;
    • ( R_2=(A,B,D,E) ):函数依赖为( ABE→D ),ABE是( R_2 )的候选键,符合BCNF。

最终分解结果:( {R_1(A,B,C), R_2(A,B,D,E)} )。

四、依赖保持性判断

检查原函数依赖集F是否能通过分解后的子关系依赖推导得出:

  • ( AB→C ):存在于( R_1 )中,可保持;
  • ( ABE→D ):存在于( R_2 )中,可保持;
  • ( BCE→D ):BCE分散在( R_1 )(B,C)和( R_2 )(B,E)中,无法通过子关系的依赖推导出该依赖;
  • ( BDE→C ):BDE在( R_2 )中,C在( R_1 )中,同样无法通过子关系的依赖推导出该依赖。

结论:该分解不保持函数依赖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:00:22