当前位置: 首页 > news >正文

5.24数据库作业

考虑如下关系模式R(A,B.C.D,E,F)上的函数依赖集F:
{A→BCD,BC→DE,B→D,D→A}

1、计算B的闭包。
2、(使用Armstrong公理)证明AF是超码。
3、计算上述函数依赖集F的正则覆盖;给出你的推导的步骤并解释。
4、基于正则覆盖,给出R的一个3NF分解。
5、利用原始的函数依赖集,给出R的一个BCNF分解。
6、你能否利用正则覆盖得到与上面的R相同的BCNF分解?

1、设 result=B;
由于B->D,故result=B∪D=BD;
由于D->A,故result=BD∪A=ABD;
由于A->BCD,故result=ABD∪BCD=ABCD;
由于BC->DE,故result=ABCD∪DE=ABCDE;
最终结果:B的闭包为ABCDE

2、由于A->BCD,故A->ABCD(增补率,两边增补A)
由于BC->DE,故ABCD->ABCDE(增补率,两边增补ABCD)
因此A->ABCDE(传递率)
因此AF->ABCDEF(增补率,两边增补F)
因为AF可以推出所有属性,即AF的闭包包含所有属性,故AF是超码

3、首先观察可知无左侧元素相同的可合并的函数依赖,因此查看无关属性。
由于B->D,因此在A->BCD和BC->DE中D均为无关属性(A->B,B->D,故A->D,因此A->BC结合A->D可以推出A->BCD;B->D故BC->D,因此BC->E结合BC->D可以说明BC->DE;因此D为无关属性),因此式子可以简化为:
A->BC BC->E B->D D->A
由于B->D,D->A,A->BC,因此B->C,因此BC->E中C为无关属性,因此可简化为:
A->BC B->E B->D D->A
左侧为B的有两项,可合并:
A->BC B->DE D->A
发现当前无无关属性,因此此时即为F的正则覆盖

4、由于正则覆盖中没有多余的函数依赖,因此属性集是正则覆盖中其他函数依赖组成的子集,因此这里的三个函数依赖都有自己的关系:R1(A,B,C) R2(B,D,E) R3(D,A) 然后我们发现属性F并不在其中,因为AF是超码且上述的关系中并没有原关系的超码,因此需要添加 R4(A,F)
因此R的一个3NF分解为:R1(A,B,C) R2(B,D,E) R3(D,A) R4(A,F)

5、start: R={A,B,C,D,E,F}
由于A->BCD但A不是超码,故R不满足BCNF,进行分解:
step1: R= R1(A, B, C, D),R2(A, E, F)
由于A->E是F+中的函数依赖,因此R2不满足BCNF,进行分解
step2: R=R1(A, B, C, D),R2(A, F),R3(A, E)
检验可得现在均符合BCNF

6、若想通过正则覆盖得到与上面R相同的BCNF分解,直接进行BCNF分解是不行的,需要通过从正则覆盖推断出原始函数依赖并将其进行BCNF分解才能够得到相同的BCNF分解

http://www.lryc.cn/news/352444.html

相关文章:

  • go-zero 实战(5)
  • Python异常处理:打造你的代码防弹衣!
  • Linux——进程与线程
  • ping 探测网段哪些地址被用
  • OSPF问题
  • asgasgas
  • Go语言实现人脸检测(Go的OpenCV绑定库)
  • springboot中线程池的使用
  • ubuntu20.04 开机自动挂载外加硬盘
  • 5.18 TCP机械臂模拟
  • linux---线程控制
  • 低代码开发:拖拽式可视化构建工业物联网系统
  • 【撸源码】【ThreadPoolExecutor】线程池的工作原理深度解析——上篇
  • webpack 学习之 五大核心
  • Android逆向抓包技巧 - Hook 底层通信
  • 深入解析力扣162题:寻找峰值(线性扫描与二分查找详解)
  • 模板方法及设计模式——Java笔记
  • K8S认证|CKA题库+答案| 11. 创建PVC
  • 多微信如何高效管理?一台电脑就能搞定!
  • 安装harbor出现问题: Running 1/1 ✘ Network harbor_harbor Error
  • JVM解释器和即时编译器的工作原理
  • 【产品经理】输出
  • MySQL入门学习.数据库组成.存储引擎
  • 【算法】分治 - 快速排序
  • 设计模式13——桥接模式
  • 第十六讲:数据在内存中的存储
  • 【EXCEL_VBA_基础知识】15 使用ADO操作外部数据
  • 如何在Spring中配置Bean?
  • 深入学习 torch.distributions
  • Java中的判断校验非空问题