软考—关系数据库的规范化

xiaoxiao2022-06-12  97

函数依赖

函数依赖:设 R ( U ) R(U) R(U)是属性集 U U U上的关系模式, X 、 Y X、Y XY 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是非平凡的函数依赖。完全函数依赖:在 R ( U ) R(U) R(U)中,如果 X → Y X→Y XY,并且对于 X X X的任何一个真子集 X ′ X' X都有 X ′ X' X不能决定 Y Y Y,则称 Y Y Y X X X完全函数依赖,记作 X → f Y X \xrightarrow{f}{Y} Xf Y。部分函数依赖:如果 X → Y X→Y XY,但 Y Y Y不完全函数依赖于 X X X,则称 Y Y Y X X X部分函数依赖,记作 X → P Y X \xrightarrow{P}{Y} XP Y。传递依赖:在 R ( U ) R(U) R(U)中,如果 X → Y X→Y XY Y ⊈ X Y⊈X YX Y → Z Y→Z YZ,则称 Z Z Z X X X传递依赖。码:设 K K K R ( U ) R(U) R(U)中属性的组合,若 K → U K→U KU,且对于 K K K的任何一个真子集 K ′ K' K不能决定 U U U,则 K K K R R R的候选码。若有多个候选码,则选一个座位主码。候选码通常也称为候选关键字。主属性和非主属性:包含在任一个候选码中的属性称为主属性,否则则是非主属性。外码:若 R ( U ) R(U) R(U)中的属性或者属性组 X X X R R R到的码,但 X X X是另一个关系的码。,则称 X X X为外码。

规范化

关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式规范化的程度。

1 N F 1NF 1NF(第一范式) 定义:若关系模式 R R R的每一个分量是不可再分的数据项,则关系模式 R R R属于第一范式。

例如,供应者和它所提供的零件信息,关系模式FIRST和函数依赖集 F F F如下: F I R S T ( S n o , S n a m e , S t a t u s , C i t y , P n o , Q t y ) FIRST(Sno, Sname, Status, City, Pno, Qty) FIRST(Sno,Sname,Status,City,Pno,Qty) F = S n o → S n a m e , S n o → S t a t u s , S t a t u s → C i t y , ( S n o , P n o ) → Q t y F={Sno\rightarrow{Sname}, Sno\rightarrow{Status}, Status \rightarrow{City}, (Sno, Pno) \rightarrow{Qty}} F=SnoSname,SnoStatus,StatusCity,(Sno,Pno)Qty

SnoSnameStatusCityPnoQtyS1精益20天津P1200S1精益20天津P2300S1精益20天津P3480S2盛锡10天津P2168S2盛锡10北京P3500S3东方红30北京P1300S3东方红30北京P2280S4泰达40上海P2460

从表中可看出1NF存在4个问题:

冗余度大。引起修改操作的不一致性。插入异常。删除异常。
2NF(第二范式) 定义:若关系模式 R ∈ 1 N F R∈1NF R1NF,且每一个非主属性完全依赖于码,则关系模式 R ∈ 2 N F R∈2NF R2NF

换句话说,当 1 N F 1NF 1NF消除了非主属性对码的部分函数依赖,则称为 2 N F 2NF 2NF

例如,FIRST关系中的码是 S n o , P n o Sno, Pno Sno,Pno,而 S n o → S t a t u s Sno \rightarrow{Status} SnoStatus,因此非主属性 S t a t u s Status Status部分函数依赖于码,故非2NF的。

若此时将FIRST关系分解为 F I R S T 1 ( S n o , S n a m e , S t a t u s , C i t y ) FIRST1(Sno, Sname, Status, City) FIRST1(Sno,Sname,Status,City) F I R S T 2 ( S n o , P n o , Q t y ) 。 其 中 FIRST2(Sno, Pno, Qty)。其中 FIRST2(Sno,Pno,Qty) F I R S T ∈ 2 N F , F I R S T 2 ∈ 2 N F FIRST∈2NF, FIRST2∈2NF FIRST2NF,FIRST22NF


3NF(第三范式) 定义:若关系模式 R ( U , F ) R(U,F) R(U,F)中不存在这样的码 X X X,属性值 Y Y Y及非主属性 Z ( Z ⊈ Y ) Z(Z⊈Y) Z(ZY)使得 X → Y X \rightarrow{Y} XY Y → Z Y \rightarrow{Z} YZ成立,则关系模式 R ∈ 3 N F R∈3NF R3NF

即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。

转载请注明原文地址: https://www.6miu.com/read-4932583.html

最新回复(0)