3.4.3范式,保持函数依赖性,无损连接性,模式分解的算法

范式

1NF

不能以集合、序列等作为属性。

2NF

非主属性和候选码不能有部分依赖
候选码是单属性的话,一定能达到2NF,只需要考虑是否达到3NF等

3NF(通常)

非主属性和候选码不能有传递依赖

BCNF

所有函数依赖的左端如果都是候选码,则是BCNF


保持函数依赖

看分解后的所有关系中,能否包含每个函数依赖的属性
在这里插入图片描述

p1中没有把C→B保持,保持了A→B

其中函数依赖集F用最小函数依赖集



无损连接性

有一个关系模式R(U, F),其上的函数依赖集:
U={A,B,C}, F= {A→B,C→B} ,
判断下列分解是否具有无损连接性。
p1= {R1(AB), R2(AC)} p1= {R1(AB), R2(BC)}

分成两个关系,就有两行
三个元素,就有三列
在这里插入图片描述

由F可知 A能确定B,A列中值相等都是a1,所以可以把B列中的值都相等为a2,得到R2这一行都是a,有一行都是a了,所以有无损连接性


模式分解的算法

  1. 写出符合[[3.4.3范式#3NF(通常)|3NF]]的函数依赖
  2. 根据函数依赖分解关系,[[保持函数依赖#保持函数依赖|保持函数依赖性]]
  3. 删除重复的分解关系,例如子集关系
  4. 合并主键相同的关系
    ![[模式分解的算法.png]]

R转换为3NF既有无损连接性又保持函数依赖性的分解算法

  1. 求出R保持函数依赖的一个分解p={R1,R2…,Rk]
  2. 判断p是否具有无损连接性,若是,转4
  3. 令p=p U {X},其中X是R的候选码。
  4. 分解结束,输出p。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏佳怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值