数据库为什么达到3NF就能保持函数依赖?

数据库为什么达到3NF就能保持函数依赖?,第1张

构造数据库必须遵循一定的规则在关系数据库中这种规则就是范式范式是符合

某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求即满足不同的

范式目前关系数据库有六种范式第一范式1NF 第二范式2NF 第三范式3NF

第四范式4NF 第五范式5NF 和第六范式6NF 满足最低要求的范式是第一

范式1NF 在第一范式的基础上进一步满足更多要求的称为第二范式2NF 其余

第一范式,Project_Name,Employee_Name是主码,Employee_Name→Emp_Hire_Date

部分依赖,也就是不能满足非主属性完全函数依赖于R的码

(Project_Name,Employee_Name,Project_Manager

)

(Employee_Name,Emp_Hire_Date)

非主属性完全函数依赖于码,不存在非主属性传递依赖于码。

解:

1、在函数依赖集F中,未被函数决定的属性有:CE,必包含于码中。

∵(CE)+=CEDBA=U ∴ 候选码只有:CE

∵E →D 属性D部分依赖与码CE,∴ R是1NF

2、依赖集F已经是极小依赖集,且所有属性都在依赖中出现,根据保持函数依赖地转换成3NF的算法,将每个函数依赖中包含的属性组成一个关系模式,得到分解

{AD,ED,DB,BCD,ACD} 因为 AD包含于ACD中,去掉AD得:

{ED,DB,BCD,ACD} 因为 AD包含于ACD中,去掉AD得:

再并上一个候选码{CE}得到即保持函数依赖又有无损连接性的分解:

{ED,DB,BCD,ACD,CE}

3、

∵码是CE,F={A →D,E →D,D →B,BC →D,DC →A}

R不是BCNF。

任选一不符合BCNF要求的函数依赖:A →D 进行分解得:

R1(AD) F1={A →D} 码是A,该模式是BCNF

R2(ABCE) F2={CE→A,A→B} 码是CE,该模式不是BCNF,继续分解

选A→B分解得:

R21(AB) F21={A→B} 码是A,该模式是BCNF

R22(ACE) F22={CE→A} 码是CE,该模式是BCNF

具有无损连接性的BCNF分解为:

{R1,R21,R22}

4、根据推理规则,从FD导出MVD,得R的MVD集合:

{A →→D,E →→D,D →→B,BC →→D,DC →→A}

R不是4NF。

任选一不符合4NF要求的MVD:A →→D 进行分解得:

R1(AD) M1={A →→D} 码是A,该模式是4NF

R2(ABCE) M2={CE→→A,A→→B} 码是CE,该模式不是4NF,继续分解

选A→→B分解得:

R21(AB) M21={A→→B} 码是A,该模式是4NF

R22(ACE) M22={CE→→A} 码是CE,该模式是4NF

具有无损连接性的4NF分解为:

{R1,R21,R22}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12171097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存