数据库函数依赖与候选码求解

数据库 专栏收录该内容
1 篇文章 0 订阅

函数依赖

1.理解函数依赖:
(1)完全函数依赖(F):多个属性【即复合属性】决定一个属性。例:AB两个属性决定属性C。
(2)部分函数依赖(P):单个属性就可决定一个属性。例:A属性决定B属性
(3)传递函数依赖(T):例:A属性决定B属性,B属性决定C属性,即AC属于传递依赖。

下面用一个题来理解一下:

例1:关系如下:
学号->学生姓名,系名
课名->学分
学号和课程名->成绩
系名->系主任
可以画出如下关系图:
自己画的

候选码求解方法

2.确定候选码(候选码:能确定所有属性的最小属性组):
确定候选码的方法有两种:
(1)第一种方法比较简单,可以直接举例子来表示。
例:设关系模式R(ABCDE)F是R上成立的函数依赖之集{A->B,C->D,C->E}
候选码即为A和C。(因为有了A和C就能推出来CDE,只有A或者只有C都不能。)

(2)闭包算法:
闭包有四类:
L类:(函数依赖)关系属性只出现在左边
R类:(函数依赖)关系属性只出现在右边
LR类:(函数依赖)关系属性出现在左右两边
N类:不在函数依赖中,即左右两遍都不出现
可能成为候选码的有L类,LR类,N类
闭包求法:
L类:求出闭包,若包含所有属性,说明其为唯一候选码
LR类:先单个求,不包含全部再与其他同属于LR类的属性集合
N类:直接加到候选码。

来个题瞅一瞅效果:

例2:U=(ABCD) ,F={A->C,C->B,AD->B}。求候选码
闭包解法:
1.属性分类:
L:A,D
R:B
LR:C
N:没有
2.先排除B
(A)F+={A,B,C}
(B)F+={D}
(AD)F+={A,B,C,D}
故候选码是AD(也是唯一候选码)

最近数据库我们对函数依赖和候选码的求解进行了学习,这仅仅是自己对知识点的理解,理一下思路。第一次将所学内容形成文字,如果有什么问题,希望大家可以指出来,我们共同进步!谢谢大家!

  • 5
    点赞
  • 2
    评论
  • 24
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 2 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

沐光-NIE

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值