分解为具有无损连接性和依赖保持性的3NF的方法以及例子

本文详细介绍了如何通过通用方法将关系模式分解为具有无损连接性和函数依赖保持性的3NF,包括最小化、排除、独立、分组和添键等步骤,并提供了一个具体的关系模式R的3NF分解实例,展示了如何应用这些步骤来实现分解过程。

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

分解为具有无损连接性和依赖保持性的3NF的方法以及例子

通用方法

输入:关系模式R<U, F>
输出:具有无损连接性和函数依赖保持性的3NF分解ρ = {R1, R2, …, Rk}.

方法:
(1)最小化。求F的最小函数依赖集Fm。
(2)排除。若Fm中存在X->A,使得XA = U,则R已是3NF,转(6)。
(3)独立。若R中某些属性未出现在Fm中任一函数依赖的左部或右部,则将它们从R中分出去,单独构成一个关系子模式。
(4)分组(相同左部原则)。对于Fm中的每一个X->A,都构成一个关系子模式XA(但若有X->A1, X->A2,…, X->An,可用合并规则便为X -> A1A2…An作为ρ的一个子模式)。
经过以上几步,求出函数依赖保持性分解:ρ = {R1, R2, …, Rk}。
(5)添键。若ρ中没有一个子模式含有R的候选键X,则令ρ = ρ ∪ {X};若存在Ri包含于Rj(i ≠ j),则删去Ri。
(6)停止分解,输出ρ。
此时ρ是既具有无损连接性又具有函数依赖保持性的3NF分解。

例子

关系模式R(A, B, C, D, E, P, G, H, I, J)满足下列的函数依赖:{AB -> E, ABE -> GP, B -> PI, C -> J, CJ -> I, G -> H}。
(1) 求出最小函数依赖集Fm = {AB -> E, AB -> G, B -> P, B -> I, C -> J, C -> I, G -> H},候选键为ABCD。

(2)不存在满足X->A,使得XA = U的依赖。

(3)D未存在在任意一函数依赖中,故独立出去,R = R - {D} =
{A, B, C, E, P, G, H, I, J}。

(4)由于AB -> E, AB -> G有相同左部,故合并为AB -> EG,同理有B -> PI, C -> JI。

(5)R中不含候选键ABCD,故添加ABCD进入。

(6)输出ρ = {ABEG, BPI, CJI, GH, ABCD},即为具有无损连接性和依赖保持性的3NF。

最小函数依赖集Fm的定义,求法以及举例

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值