数据库系统概论之规范化

数据库系统概论之规范化

1.问题的提出

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

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

2.相关定义

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

(2)函数依赖
\quadR(U)R(U)是一个属性集UU上的关系模式,XXYYUU的子集。
若对于R(U)R(U)的任意一个可能的关系rrrr 中不可能存在两个元组在XX上的属性值相等, 而在YY上的属性值不等,
则称“XX函数确定YY”或“YY函数依赖于XX”,记作
XYX→Y

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

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

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

(3)完全函数依赖
\quadR(U)R(U)中,如果XYX→Y,并且对于XX的任何一个真子集XX', 都有 XYX' ↛ Y, 则称YYXX完全函数依赖,记作
XFYX\stackrel{F}{\longrightarrow}Y

(4)部分函数依赖
\quadXYX→Y,但YY不完全函数依赖于XX,则称YYXX部分函数依赖,记作
XPYX\stackrel{P}{\longrightarrow}Y

(5)候选码
\quadKKR<U,F>R<U,F>中的属性或属性组合。若KFUK\stackrel{F}{\longrightarrow}U,则KK称为RR的一个候选码。

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

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

3.规范化理论

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

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

(3)3NF3NF
\quad若关系模式R2NFR∈2NF,不存在非主属性对码的传递函数依赖,则R3NFR∈3NF

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

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

\quad画出依赖关系表示图,先找出主码,然后逐步消除,确定该关系模式属于哪一级别的范式。
数据库系统概论之规范化

5.数据依赖的公理系统

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

(2)Armstrong公理系统

  • 自反律:若YXUY\subseteq X\subseteq U,则XYX →YFF所蕴涵。
  • 增广律:若XYX→YFF所蕴涵,且XZX\subseteq Z,则XZYZXZ→YZFF所蕴涵。
  • 传递律:若XYX→YYZY→ZFF所蕴涵,则XZX→ZFF所蕴涵。

(3)三条推理规则

  • 合并规则:由XYX→YXZX→Z,有XYZX→YZ
  • 伪传递规则:由XYX→YWYZWY→Z,有XWZXW→Z
  • 分解规则:由XYX→YZYZ\subseteq Y,有XZX→Z

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

6.几个例题

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

下次出答案与结题过程