对于给定的关系模式R(A,A1,A2,…,An)和函数依赖集F,可以把属性分为以下四类

  • L类:仅出现在F中的函数依赖左边的左部属性
  • R类:仅出现在F的函数依赖右边右部属性
  • N类:在F的函数依赖左右边均未出现的属性
  • LR类:在F的函数依赖左右两边均出现的属性

对于给定的关系模式R及其函数依赖集F,有以下结论

  • 若X(X ∈ R)是L类属性,则X必为R的任一候选码的成员
  • 若X(X ∈ R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码
  • 若X(X ∈ R)是R类属性,则X不在任何候选码中
  • 若X(X ∈ R)是N类属性,则X必为R的任一候选码成员
  • 若X(X ∈ R)是R的N类和L类属性组成的属性集,且X+包含了R的全部属性,则X是R的唯一候选码
  • 若X(X ∈ R)是LR类属性属性,则X可能为R的任一候选码的成员,也可能不为R的任一候选码成员

上面的内容过了一遍后,我们来用例子讲解

关系模式R(A,B,C,D,E),函数依赖F(A→D,E→D,D→B,BC→D,CD→A),求R的候选码

  1. 首先把属性分类
由函数依赖F知:L类的属性有C、E;R类的属性没有;N类的属性没有;LR类的属性有:A、B、D。
  1. 设X代表L、N类属性,Y代表LR类属性
令{C,E} ∈ X,{A、B、D} ∈ Y
  1. 求X+

因为C→∅,所以C+ = ∅

因为E → D,所以E+ = {DE};又因为D→B,所以 E+ = {BDE}

因为E → D,所以(CE)+= {CDE};又因为D→B,所以 (CE)+ = {BCDE};又因为CD → A,所以(CE)+ = {ABCDE}

故CE为R的唯一候选码


注意:如果X+中没有R的全部属性,即从Y中拿出一个属性来和X中的属性组合

假设上面X+中没有R的全部属性,即从Y中拿出属性A

因为C→∅,所以(AC)+ = ∅,所以AC不是R的候选码
因为E → D,所以(AE)+ = {ADE};又因为D→B,所以 (AE)+ = {ABDE},所以AE不是R的候选码
然后求(ACE)+,如果ACE不是候选码,就重新从Y中选择一个属性组成BC、BE、BCE,依次类推

如果拿Y中的一个属性求不出候选码,就拿Y中的两个属性组合求


关系模式R(A,B,C,D,E,F),其函数依赖集F={AB→E,AC→F,AD→B,B→C,C→D}

  • L类属性:A
  • R类属性:E、F
  • LR类属性:B、C、D
  • 令L类属性的元素为X,LR类的为Y
  • X+ = A(A+ = A)
  • 从Y中取出一个元素B,与X结合得,(AB)+ = ABCDEF
  • 从Y中取出一个元素C,与X结合得,(AC)+ = ABCDEF
  • 从Y中取出一个元素D,与X结合得,(AD)+ = ABCDEF

故关系模式的候选码有:AB、AC、AD

注:A单独推导不出其它元素,因为函数依赖集中,没有A → ?,只有
A?→ 元素


哦对了,关系模式R的候选码可以多个


欢迎大家关注下个人的「公众号」:独醉贪欢
后台回复「无脑死磕数据库原理」即可获得练习题

如何求关系模式的候选码相关推荐

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

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

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

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

  3. 求解关系模式的候选码——数据库原理

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

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

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

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

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

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

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

  7. 数据库候选关键词怎么求_数据库中候选码求法.(比较全的哦)

    =ABCDE,又有E→A,求E+=ABCDE而CD→E,求(CD)+=ABCDE,可以得出属性A,E,CD为候选码;除去A,E,CD外,根据一般求解法求两个属性组合的闭包,可以得到(BC)+=ABCD ...

  8. 求关系模式r的所有候选码_关系数据理论基础概念

    数据库系统最基础的就是关系数据理论这一块,简单来讲,为了数据使用更加高效.快捷,必须用规范化理论对关系模式进行改造.不多说了,直接列重点: 1.关系模式的表示R<U,F>,其实R指的是关系 ...

  9. 关系数据库理论----如何判断关系模式规范化达到第几范式

    文章目录 求关系模式最高达到第几范式的步骤 通俗理解1NF,2NF,3NF. 如何求关系模式的候选码 如何求闭包 函数依赖 求关系模式最高达到第几范式的步骤 根据给定的U和F,首先求它的候选码 根据候 ...

最新文章

  1. 公路建厂最短路径问题
  2. 读懂正则表达式就这么简单
  3. SpringMVC中注解的使用
  4. linux列出管道,lsof列出的管道列表示什么意思?_linux_开发99编程知识库
  5. React开发(204):react代码分割之路由懒加载
  6. termcap-1.3.1的configure.in文件逐行分析
  7. jeecg-easypoi-2.0.3版本发布
  8. flex 底部固定_小猿圈网站页面底部固定的方法
  9. sql azure 语法_如何将SQL Server数据库备份到Microsoft Azure
  10. Squeeze not supported yet!
  11. 机器学习--支持向量机实战(四)核函数实现
  12. [育强飞]自动刷屏器_育强飞_新浪博客
  13. 如何申请注册微信公众号
  14. 基于单片机指纹考勤机仿真系统-毕设资料
  15. ios 扫描本地音乐_iOS 获取 媒体资料库里的音乐(本地音乐)
  16. docker打包镜像--go语言编写的http项目
  17. matlab回车键,在Matlab中启动.exe文件后,以编程方式按一下回车键
  18. python绘制随机网络图形
  19. 时间脱敏,也许能稍稍帮助你摆脱焦虑
  20. 2021年电工(初级)考试报名及电工(初级)免费试题

热门文章

  1. centos 6.5
  2. 远程控制突然无法复制粘贴咋么办
  3. 从头开始学Tableau-第十二章(实战3 地图实践)
  4. 申宝证券-指数呈现缩量大涨的走势
  5. 记录电脑设置固定IP
  6. 使用AspectJ-@AfterReturning(returning ret),@Around (ProceedingJoinPoint pjp)环绕通知重点...
  7. Abnova 体外转录 mRNA工作流程和加帽方法介绍
  8. 移动终端基带芯片的基本架构介绍之三(移动终端基带芯片详细架构)
  9. Python自学记录
  10. JAVA-调用百度文字识别OCR进行身份证识别