HeJ_1996 2017-12-11 12:45 采纳率: 100%
浏览 1590
已采纳

在学习关系数据库的过程中遇到的一个例子,让我开始纠结起了候选码和范式的问题

设关系模式R(ABC),函数依赖F=(A->B,B->A,A->C)满足3NF还是满足BCNF,为什么?
这个问题困扰我很久了,在这个关系模式中候选码有哪些呢?A是候选码,那B是不是候选码呢?希望各位前辈指导指导,最好能扩展一下关于范式之间判断的一些方法,和相关知识。

另外怎么追加悬赏啊....

  • 写回答

7条回答 默认 最新

  • 随峰逍遥 2017-12-11 19:39
    关注

    A 是候选码 ,同时 B也是候选码 ,因为A,B都可以用一个法则推出关系ABC,这个法则相信你应该学过。名字叫什么忘了。
    满足3NF 但不是BC范式。 范式之间的具体区分如下:
    第一范式: 关系之间的属性必须是原子型。 最基本的数据库模式
    第二范式: 消除了非主属性对主属性的部分函数依赖。
    第三范式: 消除了非主属性对主属性的传递函数依赖。
    BC范式: 消除了主属性对除主属性之外的候选码的函数依赖(包括部分函数依赖和传递依赖)。
    还有第四范式:(你没有提到过): 这里是消除了属性之间的多值依赖。
    此题中A,B 都是候选码 ,但是候选码之间存在依赖,所以不是BCNF 只是3NF。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • HeJ_1996 2017-12-11 14:43
    关注

    准备增加重新发布一次,可能悬赏太低了= =大神们懒得搭理我

    评论
  • qq_37777380 2017-12-12 02:18
    关注

    2楼说的很详细了。赞

    评论
  • weixin_41305926 2017-12-12 15:54
    关注

    A 是候选码 ,同时 B也是候选码 ,这点2楼说的已经很详细了,不过我可以再提供一下BC范式和3NF的定义
    BCNF要求:在F依赖集的闭包F* 中形如a—>b的函数依赖,要么b属于a,要么a是超码
    3NF要求:在F依赖集的闭包F* 中形如a—>b的函数依赖,要么b属于a,要么a是超码,要么就是b-a的每个属性A都包含在R的一个候选码中
    满足了BCNF就一定满足了3NF,但是满足3NF不一定满足BCNF
    不过我认为这道题是BCNF,因为满足BCNF的所有非主属性对每一个码都是完全函数依赖。因为可得A->C,B->C,C完全依赖于A和B
    同时所有的主属性对每一个不包含它的码,也是完全依赖,本题中A<— —>B
    第三没有任何属性完全依赖于非码的任何一组属性。既C不能推出A也不能推出B,综上我认为是BCNF,如果满意,请采纳。

    评论
  • dzxy17 2017-12-19 06:59
    关注

    第三范式:关系模式R
    中不存在这样的码

    X

    ,属性组

    Y

    及非主属性

    Z

    ,使得X->Y,Y->Z成立,

    Y

    不能推出(这个符号恕我打不出来,

    专业术语叫不函数依赖,

    为了迎合大家的理解,

    所以叫做不能推出)

    X

    ,则R属于3NF。

    我的解释:在满足2 NF的基础上,不存在传递函数依赖的关系就是第三范式。

    什么叫做传递函数依赖呢?同样举个例子:

    关系

    R

    (过去,现在,未来)

    ,过去决定现在,现在决定未来,这个就是传递函数依赖,

    出现在了这个关系中,

    说明该关系不属于第三范式,

    只能退缩到第二范式。

    评论
  • dzxy17 2017-12-19 07:04
    关注

    https://wenku.baidu.com/view/9468f0fcf705cc17552709b9.html 这个网址对范式的表达生动有趣,希望可以帮到楼主。

    评论
  • Shaddock_peel 2023-06-26 15:18
    关注

    2楼牛逼,我在这里也给个例子R(A,B,C) F={AB-->C,BC-->A},这里候选码时AB和BC,但AB和BC之间不存在依赖所以是BCNF

    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 求一个智能家居控制的代码
  • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
  • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
  • ¥20 求各位能用我能理解的话回答超级简单的一些问题
  • ¥15 yolov5双目识别输出坐标代码报错
  • ¥15 这个代码有什么语法错误
  • ¥15 给予STM32按键中断与串口通信
  • ¥15 使用QT实现can通信
  • ¥15 关于sp验证的一些东西,求告知如何解决,
  • ¥35 关于#javascript#的问题:但是我写的只能接码数字和字符,帮我写一个解码JS问题