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分解

相关推荐
Htr_15 小时前
Anysite.io 使用指南:把整个 Web 变成 AI 智能体的数据库
前端·数据库·人工智能
Lyra_Infra15 小时前
记一次麒麟 Linux 下达梦数据库 (DM8) 部署与 MySQL 命令行无界面迁移踩坑指南
数据库·后端·dba
晚安日记wanna15 小时前
只会答加索引MySQL 调优还能聊这 7 个点
数据库·面试
YHHLAI15 小时前
从零理解 Agent Memory 管理:内存记忆、文件持久化与上下文截断
数据库·oracle
cspttty16 小时前
2026市场分析师校招能力模型:SQL、Excel、BI与业务分析
大数据·数据库
AIGC大时代16 小时前
OpenAI Agents SDK 工程笔记:tool 调用循环、max_turns 与生产禁区
服务器·数据库·笔记·tool·max_turns·functiontool·生产禁区
zcmodeltech16 小时前
能源电力沙盘模型控制系统设计——基于STM32与Modbus RTU的“发—输—变—配—用”全链条动态展示方案
数据库·stm32·单片机·嵌入式硬件·能源
李兆龙的博客16 小时前
从一到无穷大 #91:从 Habitat 看存储平台的整合与分工
数据库·人工智能·架构
惜分飞17 小时前
记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复---惜分飞
数据库·oracle
cspttty17 小时前
2026秋招供应链分析师技能栈:SQL、Excel、BI与业务分析
数据库·sql·excel