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

函数依赖

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(也是唯一候选码)

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

  • 13
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值