数据库关系模式系统原理,闭包,候选键,最小函数依赖集

数据库关系模式系统原理,闭包,候选键,最小函数依赖集


因为是根据自己的理解写的,欢迎指出错误

闭包

闭包:就是由一个属性直接或间接推导出的所有属性的集合
解法:一组一组的判断,如果左边的在闭包中,那边将右边的加入闭包
例:设关系R(A,B,C,D,E,G)有函数依赖集
	F={ABC,BCAD,DE,CGB},求AB的闭包。
	AB+={A,B}, 			ABC: 	A,B都在AB+中,那么将C加入AB+
	AB+={A,B,C}, 		BCAD: 	B,C都在AB+中,那么将D加入AB+
	AB+={A,B,C,D}, 		DE: 	DAB+中,那么将E加入AB+
	AB+={A,B,C,D,E}, 	CGB: 	C,G不在AB+中,不做改变
	所以,AB的闭包AB+={A,B,C,D,E}

候选键

候选码:
	1.只在右边的一定不是候选码
	2.只在左边的一定是候选码,两边都没有的一定是候选码
	3.将两边都有的和确定的候选码组合
	4.求出他们的闭包,如果闭包等于全集u,那么它就是候选码
例:R<U,F>,U=(A,B,C,D,E,G),F={AB->C,CD->E,E->A,A->G},求候选码。
	只在右边的R: 	G
	只在左边的L: 	B,D
	两边都没有的N:
	两边都有的LR: A,C,E
	先求L+N=BD+BD+={B,D} != U
	于是跟LR组合,得到ABD,BCD,BDE
	ABD+={A,B,C,D,E,G}	== U
	BCD+={A,B,C,D,E,G}	== U
	BDE+={A,B,C,D,E,G}	== U
	所以,三个都是候选码:(ABD),(BCD),(BDE)

最小函数依赖集

最小函数依赖集:
	1.F中的每个FD的右边都是单属性。
	2.F中没有冗余的FD3.F中每个FD的左边没有冗余的属性。
例如:关系模式R(UF)中,U={ABCDEG}F={BDDGC,BDE,AGB,ADGBC}F的最小函数依赖集。
解题步骤:
	1.F中的每个FD的右边都是单属性。
		F={BDDGC,BDE,AGB,ADGB,ADGC}
	2.F中没有冗余的FD。
		依次求去掉本身后,每组的闭包,如果它的闭包里面有右边的,那么就去除
		BD 	B+=B				没有D,所以保留
		DGC 	DG+=D,G				没有C,所以保留
		BDE 	BD+=B,D				没有E,所以保留
		AGB 	AG+=A,G				没有B,所以保留
		ADGB 	ADG+=A,D,G,C,B,EB,所以去除
		ADGC 	ADG+=A,D,G,B,E,CC,所以去除
		F={BDDGC,BDE,AGB}
	3.F中每个FD的左边没有冗余的属性。
		BD			B+=B				没有冗余,保留
		DGC		D+=D 	G+=G		没有冗余,保留
		BDE		B+=B,D 	D+=D	 	D冗余,去除,保留B
		AGB		A+=A 	G+=G 		没有冗余,保留
		所以F={BDDGC,BE,AGB}
  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值