规范化

通常按属性间依赖情况来区分关系规范化程度为1NF、2NF、3NF和4NF等。

1 函数依赖

1.1 函数依赖的定义

R ( U ) R(U) R(U)是属性集 U U U上的关系模式, X X X Y Y Y U U U的子集,若对于 R ( U ) R(U) R(U)的任意一个可能的关系 r r r r r r中不可能存在两个元组在 X X X上的属性值相等,而在 Y Y Y上的属性值不等,则称 X X X函数确定 Y Y Y Y Y Y函数依赖 X X X,记作 X → Y X{ \rarr}Y XY

1.2 确定函数依赖

根据现实世界的语义来确定函数依赖。

1.3 函数依赖的其他术语

  • X → Y , X{ \rarr}Y, XY,但是 Y ∉ X , Y{\notin}X, Y/X,则称 X → Y X{ \rarr}Y XY是非平凡的函数依赖。
    示例:在关系SC(Sno,Cno,Grage)中,(Sno,Cno)->Grage
  • X → Y , X{ \rarr}Y, XY,但是 Y ∈ X , Y{\in}X, YX,则称 X → Y X{ \rarr}Y XY是平凡的函数依赖。
    示例:在关系SC(Sno,Cno,Grage)中,(Sno,Cno)->Sno
  • X → Y , X{ \rarr}Y, XY, Y → X , Y{ \rarr}X, YX,则记作 X ↔ Y X{ \leftrightarrow}Y XY
  • R ( U ) R(U) R(U)中,如果 X → Y , X{\rarr}Y, XY,并且对于 X X X的任何一个真子集 X ′ X^{\prime} X,都有 X ′ ↛ Y X^{\prime}{\nrightarrow}Y XY,则称 Y Y Y X X X完全函数依赖,记作 X → F Y X\xrightarrow[]{F}Y XF Y,若 Y Y Y不完全依赖于 X X X,则称 Y Y Y X X X部分函数依赖。
    示例:在关系SC(Sno,Cno,Grage)中,(Sno,Cno) → F {\xrightarrow[]{F}} F Grage是完全函数依赖。
  • R ( U ) R(U) R(U)中,如果 X → Y ( Y ∉ X ) , Y ↛ X , Y → Z , Z ∉ Y X{\rarr}Y(Y{\notin}X),Y{\nrightarrow}X,Y{\rarr}Z,Z{\notin}Y XY(Y/X),YX,YZ,Z/Y,则称 Z Z Z X X X传递函数依赖。
    示例: S n o → S d e p t , S d e p t → M n a m e Sno{\rarr}Sdept,Sdept{\rarr}Mname SnoSdept,SdeptMname成立,所以 S n o → 传 递 M n a m e Sno\xrightarrow[]{传递}Mname Sno Mname

2 第一范式(1NF)

定义:每个分量必须是不可分的数据项。

注:关系模式至少要满足1NF。

3 第二范式(2NF)

定义:若 R ∈ 1 N F R{\in}1NF R1NF,且每个非主属性完全函数依赖于任何一个候选码,则 R ∈ 2 N F R{\in}2NF R2NF

注:如果不满足第二范式可能会引发插入、删除、修改等异常。

4 第三范式(3NF)

定义:设关系模式 R < U , F > ∈ 1 N F R<U,F>{\in}1NF R<U,F>1NF,若 R R R中不存在这样的码 X X X,属性组 Y Y Y及非主属性 Z ( Z 不 包 含 于 Y ) Z(Z不包含于Y) Z(ZY)使得 X → Y , Y → Z X{\rarr}Y,Y{\rarr}Z XY,YZ成立, Y ↛ X Y{\nrightarrow}X YX,则称 R < U , F > ∈ 3 N F R<U,F>{\in}3NF R<U,F>3NF

注:3NF即为不能存在传递函数依赖。

5 BCNF

定义:关系模式 R < U , F > ∈ 1 N F R<U,F>{\in}1NF R<U,F>1NF,若 X → Y ( Y 不 包 含 于 X ) X{\rarr}Y(Y不包含于X) XY(YX) X X X必含有码,则称 R < U , F > ∈ B C N F R<U,F>{\in}BCNF R<U,F>BCNF

注:
所有非主属性对每个码都是完全函数依赖。
所有主属性对每个不包含他的码也是完全函数依赖。
没有任何属性完全依赖于非码的任何一组属性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是聪聪黄吖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值