1.设有关系模式R(U,F),其中: U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,DC→A } (1) 出R的候选关键字(2)
判断R最高为几级范式? (3) 若R不是3NF,将R分解为3NF

(1)可以这样分析:“→”我们可以理解为决定。候选关键字
<https://www.baidu.com/s?wd=%E5%80%99%E9%80%89%E5%85%B3%E9%94%AE%E5%AD%97&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao>
就是唯一决定(A,B,C,D,E)这个数据集的几个字段,在F中我们不难看出C,E没有谁决定它,所以C,E一定是候选关键字
<https://www.baidu.com/s?wd=%E5%80%99%E9%80%89%E5%85%B3%E9%94%AE%E5%AD%97&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao>
,但是仅有C,E却不能决定A,B,D。这时我们再看F,发现能决定A的只有DC,所以再在候选关键字
<https://www.baidu.com/s?wd=%E5%80%99%E9%80%89%E5%85%B3%E9%94%AE%E5%AD%97&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao>
中加上D,加上D后我们发现B可以被D决定了,同时D当然可以决定D自身,于是R的候选关键字就是DCE
(2)首先R肯定是第一范式,简单理解就是
F中A,B,C,D,E都有;其次R也属于第二范式,因为在F中不存在部分函数依赖。就是说,没有像AB→C,B→C这种约束。但是R不属于第三范式,因为在F中很明显有传递依赖(A→D,
E→D,BC→D ,D→B),所以R属于第二范式。
(3)将R分解为3NF就是消除传递依赖,很好办,就把上面传递依赖中D换成B(A→B, E→B,BC→B ,B→B),再把其中(BC→B
,B→B)去掉,因为太显然了,就不需要去约束了。所以最后结果为F={A→B,E→B,DC→A }

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信