3NF BCNF 分解算法

博客介绍了数据库相关算法,包括3NF分解算法、BCNF分解算法、函数依赖最小集的算法、无损连接分解判断算法和定理以及函数依赖保持性的判断。详细阐述了各算法的步骤,如3NF分解需经过最小化、排除、独立等步骤,BCNF分解要不断找到非键的函数依赖进行分解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3NF分解算法

(1)最小化:求最小函数依赖集Fm
(2)排除:如果Fm 中某个函数依赖左右属性集包括了全部属性,结束
(3)独立:将Fm中不存在的属性,单独构成一个关系子模式
(4)分组:合并Fm中的每一个函数依赖
(5)添键:如果子模式中都不包含候选键,则把候选键单独构成一个子模式
(6)去重:将具有包含关系的子模式,去掉小的部分
(7)结束
保函依赖分解题,先求最小依赖集
依赖两侧未出现,分成子集放一边
剩余依赖变子集,左边相同要合并
添加候选做子集
包含关系要舍去

BCNF分解算法

(1)把所有的属性构成一个关系模式
(2)如果关系模式不是BCNF,找到里面的函数依赖,X->A,如果X不是键,那么删除A,并将XA划为新的子集(此时该子集的依赖左侧都是键)
(3)都是BCNF,否则继续分解剩余元素集。
求属性闭包的算法
设 R<U,F>,A为U中属性(集)。
(1) X(0)=X
(2) X(i+1)=X(i)∪A
其中:对F中任一个Y->A ,且Y⊆X(i);
求得X(i+1) 后,对Y->A 做删除标记。
(3)若X(i+1)=X(i) 或 X(i+1) =U则结束,否则转(2)。

函数依赖最小集的算法

(1)逐一检查F中各函数依赖FDi:X→Y,若Y=A1A2 …Ak,k > 2,
则用 { X→Aj |j=1,2,…, k} 来取代X→Y。右边先拆单,
依赖依次删。
(2)逐一检查F中各函数依赖FDi:X→A,令G=F-{X→A},
若AXG+, 则从F中去掉此函数依赖。还原即可删
(3)逐一取出F中各函数依赖FDi:X→A,设X=B1B2…Bm,
逐一考查Bi (i=l,2,…,m),若A (X-Bi )F+ ,
则以X-Bi 取代X。再拆左非单

无损连接分解判断算法和定理

无损连接性检验表
P122 定理4.11 二项分解定理 p=(R1,R2)是R的一个分解,P具有无损连接性的充分必要条件是:R1∩R2->(R1-R2)或者R1∩R2->(R2-R1)

函数依赖保持性的判断

||zF的并集是否等于F

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值