【数据库】函数依赖

什么是函数依赖
就是在具体的表中/问题中,哪个属性决定另外几个属性。
A属性值相同的时候,能否决定唯一的B
U = {学号,姓名,年龄,班号,班长,课号,成绩}
就有:
‘学号’ 决定 ‘姓名,年龄’
‘班号’ 决定 ‘班长’
‘学号,课号’ 决定 ‘成绩’
设计关系模式时,需要给出属性全集+函数依赖
在这里插入图片描述

第一个表:
A中没有相同的元素,可以说A决定B,A决定C
对于B,当B属性值相同时,并不能对唯一的A,所以B不能决定A。
当B属性值相同时,能够对应唯一的C,所以B决定C
同理,C不能决定A和B
A决定B,B决定C

第二个表:
A相同时,可以决定C;D能决定B

实际情况中函数依赖是怎样的,取决于对问题域的理解。

完全函数依赖
U = {学号,姓名,年龄,班号,班长,课号,成绩}
{学号,课号} 完全函数依赖 U
{学号,课号} 部分函数依赖 {姓名}
{学号,课号} 完全函数依赖 {成绩}
解释:
「学号,课号」可以共同决定U,单独的「学号」/「课号」不能决定U。
「学号」就可以决定「姓名」,「学号,课号」也可以决定「姓名」
「学号,课号」决定「成绩」,「学号」可以决定成绩,「课号」无法

传递函数依赖
我决定的决定,可以是我的决定。
这里有两层含义:
1、A -> B, B -> C 。那么,A->C
2、A - > B,C,D,E,C->E,那么存在传递函数依赖

候选键
1、最小性
2、唯一性
R(U),U为全部的属性。如果属性(组)完全函数依赖U,那么就是候选键
U = {学号,姓名,年龄,班号,班长,课号,成绩}
{学号,课号} 完全函数依赖 U
「学号,课号」即为候选键
(1)可以选择任何一个候选键作为R的主键。
(2)候选键:主属性。不在候选键的:非主属性
(3)超键:K是R的候选键,S包含K,S为R的超键。
(4)外键:并非R候选键,确实另外一个关系的候选键,称为外键

逻辑蕴含
闭包
函数依赖集的最小覆盖
已知R(U,F)=「A,B,C,D,E」,F=「AB->C,B->D,C->E,EC->B,AC->B」,求:(AB)(^+)F。
1、令X(0)=「A,B」
2、由AB->C, B->D: X(0)U「C,D」=「A,B,C,D」
3、C->E, AC->B:「A,B,C,D,E」

最小覆盖
只考虑箭头右边的,并且右边的单一属性。
每个函数依赖集F都有等价的最小覆盖F’。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九久呀

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值
>