首先来看候选码的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。

若W是候选键,则必须满足两个条件:W的闭包是U;W没有冗余。

设关系模式R中U=ABC.......等N个属性,U中的属性在FD中有四种范围:

求候选码的简单方法方法:
(1)如果有属性不在函数依赖集中出现,那么它必须包含在候选码中;
(2)如果有属性不在函数依赖集中任何函数依赖的右边出现,那么它必须包含在候选码中;
(3)如果有属性只在函数依赖集的左边出现,则该属性一定包含在候选码中。
(4)如果有属性或属性组能唯一标识元组,则它就是候选码;

算法:按以下步骤求候选键:
1.只在FD右部出现的属性,不属于候选码;
2.只在FD左部出现的属性,一定存在于某候选码当中;
3.外部属性一定存在于任何候选码当中;
4.其他属性逐个与2,3的属性组合,求属性闭包,直至X的闭包等于U,若等于U,则X为候选码。

例1:R<U,F>,U=(A,B,C,D,E,G),F={AB-->C,CD-->E,E-->A.A-->G},求候选码。

因G只在右边出现,所以G一定不属于候选码;而B,D只在左边出现,所以B,D一定属于候选码;BD的闭包还是BD,则对BD进行组合,除了G以外,BD可以跟A,C,E进行组合
  先看ABD
  ABD本身自包ABD,而AB-->C,CD-->E,A-->G,所以ABD的闭包为ABDCEG=U
  再看BDC
  CD-->E,E-->A,A-->G,BDC本身自包,所以BDC的闭包为BDCEAG=U
  最后看BDE
  E-->A,A-->G,AB-->C,BDE本身自包,所以BDE的闭包为BDEAGC=U

因为(ABD)、(BCD)、(BDE)的闭包都是ABCDEG所以本问题的候选码有3个分别是ABC、BCD和BDE

例2:R<U,F>,U=(A,B,C),F={AB-->C,C-->B},求候选码。

因为A只出现在左边,所以A一定是候选键。A的闭包还是A,则对A进行组合,可以和B,C进行组合。

首先看AB,AB本身自包AB,而AB-->C,所以AB的闭包是ABC=U。

再看AC,AC本身自包AC,而C-->B,所以AC的闭包是ABC=U。

因为AB,AC的闭包都是ABC,也就是U,所以候选键是AB,AC。

求解关系模式的候选码——数据库原理相关推荐

  1. 如何求关系模式的候选码

    对于给定的关系模式R(A,A1,A2,-,An)和函数依赖集F,可以把属性分为以下四类 L类:仅出现在F中的函数依赖左边的左部属性 R类:仅出现在F的函数依赖右边右部属性 N类:在F的函数依赖左右边均 ...

  2. 如何求一个关系模式的候选码

    首先来看候选码的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码. 若W是候选键,则必须满足两个条件:W的闭包是U:W没有冗余. 设关系模式R中U=ABC.......等N个属 ...

  3. mysql是如何设置候选码_如何求一个关系模式的候选码

    首先来看候选码的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码. 若W是候选键,则必须满足两个条件:W的闭包是U:W没有冗余. 设关系模式R中U=ABC.......等N个属 ...

  4. MySQL的关系模式集是什么,[转载]数据库的关系模型、关系模式、主码。。。。...

    1.关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型.关系模型是由若干个关系模式组成的集合. 2.关系模式:关系模式实际上就是记录类型.它包括:模式名,属性名,值 ... ...

  5. 数据库候选关键词怎么求_关系模式中候选关键字的图论求解法

    关系模式中候选关键字的图论求解法 李 莉 [摘 要] 文章首先介绍了函数依赖图的概念及理论,并应用该理论对数据库理 论和实际问题中关系模式候选关键字的求解问题进行了深入系统的讨论,并用 该方法解决了关 ...

  6. 求解关系模式R的候选码

    对于大多数的题目,已经有了成熟解法:参考 本文通过一道例题,提供一定的思路与见解. 设有关系模式R(U,F),其中U={A,B,C,D,E},函数依赖集F={ A→BC,CD→E,B→D,E→A},求 ...

  7. 关系模式设计优化(数据库学习重点,难点)

    关系模型潜在的问题 1.添加异常(当在关系中添加数据时可能会导致数据的不一致) 2.修改异常(随意的修改关系中的一行记录也可能导致数据的不一致) 3.删除异常(当删除一定数量的记录时可能会导致一些其他 ...

  8. 求关系模式r的所有候选码_2_1关系数据库的基本概念

    1.关系数据结构 单一的数据结构-------关系 现实世界中的实体以及实体间各种联系均用关系来表示 2.域:一组具有相同数据类型的值的集合. 例如:整数 实数 介于某个取值范围的整数 指定长度的字符 ...

  9. 【数据库】 关系模式的规范化理论----一文让你轻松理解其中奥秘

    文章目录 关系模式设计中存在的问题 关系的形式化定义 数据依赖的基本概念 函数依赖 非平凡函数依赖.平凡函数依赖 完全函数依赖和部分函数依赖 传递函数依赖 关键字和超关键字 数据依赖的公理系统 函数依 ...

最新文章

  1. linux支持hd610显卡吗,HD610相当于什么显卡 HD610和HD630的区别 (全文)
  2. 页面缓存 ehcache(简单的)
  3. vue指令:v-pre原样输出,不解析插值表达式
  4. matlab 柱面投影,matlab练习程序(圆柱投影)
  5. java中重写equals方法
  6. 996工作制,你能扛多久?
  7. 玩转群晖NAS套件系列一:cloud sync套件的安装与使用保姆级教程!
  8. win10 excel编辑无响应问题解决方法
  9. 上古卷轴php代码,【上古卷轴五木柴代码】
  10. lwip连续发数据卡死_用lwip发送大量数据时,遇到的问题解答记录 | 求索阁
  11. 仿新浪微博发布时 @ 及 #某话题# 的效果
  12. 大学一级课题c语言报告,c语言一级课题总结(16页)-原创力文档
  13. 2021年R1快开门式压力容器操作考试报名及R1快开门式压力容器操作考试试题
  14. 烈焰遮天mysql密码_完美运营版悬赏任务积分墙源码
  15. 前端导出excel插件vue-json-exce
  16. Javascript 设计模式 单例
  17. RBAC权限管理设计思想
  18. rest风格使用两个变量_REST风格
  19. who are you-实验吧1
  20. python隐藏刻度_plot sin示意图(隐藏刻度,自定义刻度)

热门文章

  1. Linux命令之tree(3)
  2. centos7上使用移动硬盘
  3. Git、GitLib、GitHub和GitLab
  4. 【Java】将中文转为驼峰式拼音
  5. React Hooks简介
  6. SimpleITK图像对齐
  7. (2)ITK中迭代器的时间效率
  8. Java 连接SAP Hana数据库
  9. Google浏览器视频倍速
  10. 诗词浅析(一)(吾之愚见)