数据库学习笔记——求闭包和候选码

一、求闭包:

例1:设有关系模式R( A, B, C, D, E), F={AB→C,B→D, C→E, EC→B, AC→B}。求( AB) +。

求解方法:
求闭包的方法

解:
第一次:

  • X(0)=X=AB
  • 搜索F中每一个函数依赖得到AB→C,B→D
  • X(1)=AB∪C∪D=ABCD

第二次:

  • X(1)≠X(0)
  • 搜索F,得到C→E,AC→B
  • X(2)=ABCD∪E∪B=ABCDE

第三次:

  • X(2)≠X(1)
  • 搜索F,得到EC→B
  • X(3)=ABCDE∪B=ABCDE

第四次

  • X(3)=X(2)
  • 结束

∴(AB)+ =ABCDE

二、求候选码

对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:

  • L类 仅出现在函数依赖左部的属性且一定包含在某个候选关键字中
  • R 类 仅出现在函数依赖右部的属性且一定不包含在任何候选关键字中
  • N 类 在函数依赖左右两边均未出现的属性且一定包含在某个候选关键字中
  • LR类 在函数依赖左右两边均出现的属性且可能包含在候选关键字中
  • 在上述基础上求属性闭包

例2:设有关系模式CTHRSG( C, T, H, R, S, G) , 满足下列函数依赖:
C→T 每门课程仅有一位教师讲授
HR→C 在任一时间, 每个教室只能上一门课程
HT→R 在一个时间一位教师只能在一个教室上课
CS→G 每个学生的每门课程只有一个成绩
HS→R 在一个时间每个学生只能在一个教室听课
求其候选键。
解:

	(HS)(0)=HS
	(HS)(1)=HSR            和HS→R进行合并
	(HS)(2)=HSRC            和HR→C进行合并
	(HS)(3)=HSRCTG          和C→T,CS→G进行合并
	(HS)(4)=HSRCTG           和HT→R进行合并
	∵(HS)(3)=(HS)(4)
	∴结束
	所以HS是模式CTHRSG的唯一关键字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值