数据库系统概论之规范化

数据库系统概论之规范化

1.问题的提出

\quad 一个关系模式系模式由五部分组成,是一个五元组:
R ( U , D , D O M , F ) R(U, D, DOM, F) R(U,D,DOM,F)
关系名 R R R是符号化的元组语义,
U U U为一组属性,
D D D为属性组 U U U中的属性所来自的域,
D O M DOM DOM为属性到域的映射,
F F F为属性组 U U U上的一组数据依赖。
由于 D D D D O M DOM DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组: R < U , F > R<U,F> R<U,F>

\quad 未经过规范化的关系模式,可能会造成的问题:
(1)数据冗余,浪费大量的存储空间。
(2)更新异常,数据冗余 ,更新数据时,维护数据完整性代价大。
(3)插入异常
(4)删除异常

2.相关定义

(1)数据依赖
\quad 分为函数依赖和多值依赖(这里仅考虑函数依赖)①是一个关系内部属性与属性之间的一种约束关系,通过属性间值的相等与否体现出来的数据间相互联系。②是现实世界属性间相互联系的抽象。③是数据内在的性质。④是语义的体现

(2)函数依赖
\quad 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→Y XY

  • X → Y X→Y XY,但 Y ⊈ X Y⊈X YX则称 X → Y X→Y XY非平凡的函数依赖。
  • X → Y X→Y XY,但 Y ⊆ X Y⊆X YX 则称 X → Y X→Y XY平凡的函数依赖。

\quad 注:对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明, 我们总是讨论非平凡函数依赖。

  • X → Y X→Y XY,则 X X X称为这个函数依赖的决定因素。
  • X → Y X→Y XY Y → X Y→X YX,则记作 X ← → Y X←→Y XY
  • Y Y Y不函数依赖于 X X X,则记作 X ↛ Y X↛Y XY

(3)完全函数依赖
\quad R ( U ) R(U) R(U)中,如果 X → Y X→Y XY,并且对于 X X X的任何一个真子集 X ′ X' X, 都有 X ′ ↛ Y X' ↛ Y XY, 则称 Y Y Y X X X完全函数依赖,记作
X ⟶ F Y X\stackrel{F}{\longrightarrow}Y XFY

(4)部分函数依赖
\quad X → Y X→Y XY,但 Y Y Y不完全函数依赖于 X X X,则称 Y Y Y X X X部分函数依赖,记作
X ⟶ P Y X\stackrel{P}{\longrightarrow}Y XPY

(5)候选码
\quad K K K R < U , F > R<U,F> R<U,F>中的属性或属性组合。若 K ⟶ F U K\stackrel{F}{\longrightarrow}U KFU,则 K K K称为 R R R的一个候选码。

  • 如果 U U U部分函数依赖于 K K K,即 K ⟶ P U K\stackrel{P}{\longrightarrow}U KPU,则 K K K称为超码。候选码是最小的超码,即 K K K的任意一个真子集都不是候选码。
  • 若关系模式R有多个候选码,则选定其中的一个做为主码
  • 包含在任何一个候选码中的属性 ,称为主属性
  • 不包含在任何码中的属性称为非主属性
  • 整个属性组是码,称为全码

(6)外码
\quad 关系模式 R R R中属性或属性组 X X X并非 R R R的码,但 X X X是另一个关系模式的码,则称 X X X R R R的外码。

3.规范化理论

(1) 1 N F 1NF 1NF
\quad 数据属性不可再分,不存在表中有表,就是 1 N F 1NF 1NF

(2) 2 N F 2NF 2NF
\quad 若关系模式 R ∈ 1 N F R∈1NF R1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则 R ∈ 2 N F R∈2NF R2NF。(不存在非主属性对码的部分函数依赖)

(3) 3 N F 3NF 3NF
\quad 若关系模式 R ∈ 2 N F R∈2NF R2NF,不存在非主属性对码的传递函数依赖,则 R ∈ 3 N F R∈3NF R3NF

(4) B C N F BCNF BCNF
\quad 设关系模式 R < U , F > ∈ 1 N F R<U,F>∈1NF R<U,F>1NF,若 X → Y X →Y XY Y ⊆ X Y ⊆ X YX X X X必含有码,则 R < U , F > ∈ B C N F R<U,F>∈BCNF R<U,F>BCNF
\quad 注:如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。

4.关系模式规范化的基本步骤

\quad 画出依赖关系表示图,先找出主码,然后逐步消除,确定该关系模式属于哪一级别的范式。
规范化的基本步骤

5.数据依赖的公理系统

(1)逻辑蕴涵
\quad 对于满足一组函数依赖 F F F的关系模式 R < U , F > R <U,F> R<U,F>,其任何一个关系 r r r,若函数依赖 X → Y X→Y XY都成立(即 r r r中任意两元组 t t t s s s,若 t [ X ] = s [ X ] t[X]=s[X] t[X]=s[X],则 t [ Y ] = s [ Y ] t[Y]=s[Y] t[Y]=s[Y]),则称 F F F逻辑蕴涵 X → Y X →Y XY

(2)Armstrong公理系统

  • 自反律:若 Y ⊆ X ⊆ U Y\subseteq X\subseteq U YXU,则 X → Y X →Y XY F F F所蕴涵。
  • 增广律:若 X → Y X→Y XY F F F所蕴涵,且 X ⊆ Z X\subseteq Z XZ,则 X Z → Y Z XZ→YZ XZYZ F F F所蕴涵。
  • 传递律:若 X → Y X→Y XY Y → Z Y→Z YZ F F F所蕴涵,则 X → Z X→Z XZ F F F所蕴涵。

(3)三条推理规则

  • 合并规则:由 X → Y X→Y XY X → Z X→Z XZ,有 X → Y Z X→YZ XYZ
  • 伪传递规则:由 X → Y X→Y XY W Y → Z WY→Z WYZ,有 X W → Z XW→Z XWZ
  • 分解规则:由 X → Y X→Y XY Z ⊆ Y Z\subseteq Y ZY,有 X → Z X→Z XZ

引理: X → A 1 A 2 … A k X→A_1A_2…A_k XA1A2Ak成立的充分必要条件是 X → A i X→A_i XAi成立 ( i = 1 , 2 , … , k ) (i=1,2,…,k) i=12k

6.几个例题

(1) R ( A , B , C , D ) , F = { A B → C , B → D } R(A,B,C,D),F=\{AB→C,B→D\} R(A,B,C,D),F={ABC,BD}
(2) R ( A , B , C , D , E ) , F = { A B → C E , E → A B , C → D } R(A,B,C,D,E),F=\{AB→CE,E→AB,C→D\} R(A,B,C,D,E),F={ABCE,EAB,CD}
(3) R ( A , B , C , D ) , F = { A B → C , D → B , B → D } R(A,B,C,D),F=\{AB→C,D→B,B→D\} R(A,B,C,D),F={ABC,DB,BD}
(4) R ( A , B , C ) , F = { A → B , A → C , B → A } R(A,B,C),F=\{A→B,A→C,B→A\} R(A,B,C),F={AB,AC,BA}
(5) R ( A , B , C ) , F = { A → B , C → A , B → A } R(A,B,C),F=\{A→B,C→A,B→A\} R(A,B,C),F={AB,CA,BA}
(6) R ( A , B , C , D ) , F = { A → C , D → B } R(A,B,C,D),F=\{A→C,D→B\} R(A,B,C,D),F={AC,DB}
(7) R ( A , B , C , D ) , F = { A → C , C D → B } R(A,B,C,D),F=\{A→C,CD→B\} R(A,B,C,D),F={AC,CDB}

下次出答案与结题过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值