数据库存储、极小依赖集、候选码

5.21 get的数据库知识点

mysql:
创建存储过程
create procedure 过程名(in 输入参数 类型,out 输出参数 类型…)
reads sql data
begin

end
调用存储过程
call 过程名(输入参数,@输出参数…)

创建存储函数
create function 函数名(in 输入参数 类型)
returns 输出参数 类型
reads sql data
begin

end
调用存储函数
select 函数名(输入参数)

求极小函数依赖集
1.将右侧有多个属性的函数依赖集变成左侧不变的多个右侧为单属性的函数依赖(把右侧变成单属性)
2.依次对每个函数依赖X→Y进行分析,设G=F-{X→Y},如果XG+包括Y,则删除掉X→Y,否则保留
3.如果左侧不是单属性,有X→Y,对于X的一个子集Z,有ZG+包括Y,则用Z→Y代替X→Y
在这里插入图片描述
例: F={A→BC,B→AC,C→A} 求 Fmin。
解:①先分解右端,F={A→B,A→C,B→A,B→C,C→A}
②判断每个函数依赖:
设 G=F-{A→B},AG+=AC,不包含 B,故A→B 保留。
G=F-{A→C},AG+=ABC,包含C ,故A→C删除,令F=G。
F={A→B,B→A,B→C,C→A}
G=F-{B→A},BG+=BAC,包含A,故B→A 删除,令F=G。
F={A→B,B→C,C→A}
G=F-{B→C},BG+=B,不包含C,故B→C 保留。
G=F-{C→A},CG+=C,不包含A,故C→A 保留。
③ F中函数依赖的左端都是单属性,算法结束。
Fmin={A→B,B→C,C→A}

候选码的确定
1.不在F中的属性一定不在候选码中
2.在极小依赖函数集中,只存在左侧的属性(K)一定在候选码中,只存在右侧的属性(W)一定不在候选码中
3.如果KG+=U,则K为候选码,否则扩展K,从W中选属性加入到K中,直到KU+=U,K就是候选码
4.可能会有多个候选码
在这里插入图片描述
例如: F={ BE→G,BD→G,CDE→AB,CD→A,CE→G,BC→A,B→D,C→D }
Fmin={ B→G,CE→B,C→A,B→D,C→D }
只在左端出现的属性:CE。(M=CE)
只在右端出现的属性:ADG。
余下的属性:B。(W=B)
R的候选码只可能是:CE、CEB。
经计算(CE)F+=ABCDEG,因此R的码是CE。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值