第四章 关系数据库范式

45
1 第第第 第第第第第第第

Upload: kiaria

Post on 27-Jan-2016

92 views

Category:

Documents


3 download

DESCRIPTION

第四章 关系数据库范式. 本章的主要内容: 范式的概念及1 NF — 5NF 模式分解的特性及其判定算法 关系模式的规范化算法. 4.1 数据库及其范式. 例子: r ( 职工姓名 工资级别 基本工资 ) 李小明 高工2 3200 张 亮 中工1 1800 刘 林 中工1 1800 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第四章   关系数据库范式

1

第四章

关系数据库范式

Page 2: 第四章   关系数据库范式

2

本章的主要内容:

范式的概念及 1NF—5NF

模式分解的特性及其判定算法 关系模式的规范化算法

Page 3: 第四章   关系数据库范式

3

4.1 数据库及其范式例子: r ( 职工姓名 工资级别 基本工资 )

李小明 高工 2 3200 张 亮 中工 1 1800 刘 林 中工 1 1800 王晓宁 高工 2 3200 苏 丹 中工 4 2000 .

冗余; 插入异常;删除异常。

Page 4: 第四章   关系数据库范式

4

定义 (1NF, Normal Form) 如果一个关系模式 R 中的每个属性 A 的域值都是原子的,即属性值是不可再分的,则关系模式 R 属于第一范式,简记为 R1NF 。若数据库模式 R 中的每个关系模式都是 1NF ,数据库模式R1NF。

addr ( 姓 名 地 址 )

李小明 北京市白石桥路 7 号 张 亮 天津市和平街 18 号 王国全 太原市解放路 35 号 苏 丹 北京市复外大街 12 号

addr ( 姓 名,城市, 地 址 )

teach ( 教 师 课 程 )

孙鲁涛 DS, DB,OS

周 晴 C, C++

4.1.1 第一范式

Page 5: 第四章   关系数据库范式

5

elective(SNAME COURSE DEPT ) 刘 芳 DB 计算机 刘 芳 OS 计算机 林荔娜 C++ 自 控 林荔娜 DB 计算机 周 晴 C++ 自 控

SNAME、 COURSEDEPTCOURSE DEPT

elective (SNAME COURSE 刘 芳 DB 刘 芳 OS 林荔娜 C++ 林荔娜 DB 周 晴 C++ .

elective (COURSE DEPT ) DB 计算机 OS 计算机 C++ 自 控

Page 6: 第四章   关系数据库范式

6

4.1.2 第二范式

定义 已知关系模式 R, R 中的属性 A 以及 R

上的函数依赖集 F 。如果 A 包含在 R 的某个候选键中,则称 A 为主属性,否则称 A 为非主属性。

定义 (2NF) 设关系模式 R(U, F) ,如果R1NF 且所有的非主属性完全依赖于 R 的每个键,则 R2NF 。若数据库模式 R 中的每个关系模式R 都属于 2NF ,则数据库模式 R2NF。

Page 7: 第四章   关系数据库范式

7

4.1.3 第三范式

course (COURSE DEPT BUILDING ) DB 计算机 中心楼 9 层 OS 计算机 中心楼 9 层 C++ 自 控 中心楼 12 层 。

定义 (3NF) 设关系模式 R(U, F) ,若 R1NF 且在 R 中没有非主属性传递依赖于 R 的键,则 R3NF 。如果数据库模式 R 中每一关系模式都是第三范式,则数据库模式R3NF。

course (COURSE DEPT ) dpt(DEPT BUILDING)

COURSE DEPT , DEPT BUILDING

Page 8: 第四章   关系数据库范式

8

定理 1 若关系模式 R(U,F)3NF ,则R2NF。证明: 假设 R 中非主属性 A 部分依赖于关键字 K 。则存在 KK 使得 F|=K→A 。 因 KK ,有 K→K ,但 K→K 。于是有 K→K, K → K, K→A ,并且 AK ,因而 A 传递依赖于 K ,即 R3NF ,与已知矛盾。

Page 9: 第四章   关系数据库范式

9

4.1.4 Boyce-Codd 范式例 R ( Building Room Department) 中心教学楼 801 计算机系 中心教学楼 802 计算机系 中心教学楼 803 计算机系 中心教学楼 823 数 学 系 中心教学楼 824 数 学 系 .

Room、

R1(Department , Building )

R2(Department , Room )

Building、 Room → Department Department → Building

Page 10: 第四章   关系数据库范式

10

定义 2 (BCNF)

设关系模式 R(U,F) , 若对于 YR 且属性 ARY

有 Y→A, Y 必为 R 的关键字,则关系模式 RBCNF。 ** 若关系模式 R(U,F)BCNF ,则R3NF。

定义 1(BCNF) 设关系模式 R(U,F) ,若 R1NF且 R 中没有任何属性传递依赖于 R 的任一键,则 RBoyce-

Codd 范式 (BCNF) 。如果数据库模式 R 中的每个关系模式 RBCNF ,则数据库模式 RBCNF。

Page 11: 第四章   关系数据库范式

11

例 1 :关系模式 SJP (学生,课程,名次)FD :学生、课程→名次 课程、名次→学生

例 2: CSZ (城市,街道,邮编)FD :城市、街道→ 邮编 邮编→城市 街道、邮编→城市

Z-C( 邮编,城市 ); S-Z( 街道,邮编 )

Page 12: 第四章   关系数据库范式

12

4.2 关系模式的规范化4.2.1 关系模式的分解 定义 设关系模式 R(U) ,关系模式的集合ρ={R1(U1), R2(U2),…,RK(UK)}, 若U1∪U2∪…

∪UK=U, 则称 ρ 是关系模式 R(U) 的一个分解。 无损连接性定义 设模式 R(U, F),ρ={R1, R2, …, RK }是 R 的一个分解,若对 R 的任一满足 F 的关系 r 下式成立: r = R1 (r) R2 (r) … Rk (r)

则称分解 ρ 是满足 F 的无损连接分解。记: mρ(r) =R1 (r) R2 (r) … Rk (r)

无损连接分解: r = mρ(r)

Page 13: 第四章   关系数据库范式

13

r1 ( A B) 2 4 3 4 4 9

r2 ( B C) 4 3 4 6 9 5

r ( A B C) 2 4 3 3 4 6 4 9 5

引理 设关系 r(R), ρ={R1, R2, …, RK }是 R 的一个分解。则有: (1). r mρ(r)

(2). Ri (mρ(r)) =Ri (r)

(3). mρ(mρ(r)) = mρ(r)

证明 : (2). 因 r mρ(r), 则 Ri(r) Ri (mρ(r))。

又 tiRi(mρ(r)) , 则有 tmρ(r), 使 t[Ri]=ti,

而由 mρ(r) 的定义知, ti Ri (r) ,因此有 Ri (mρ(r)) Ri (r)

则 有 Ri (mρ(r)) =Ri (r) 。

Page 14: 第四章   关系数据库范式

14

算法 4.2.1 判断分解 ρ 是否具有无损连接性

输入: 关系模式 R(A1, A2 …, , An) 及其分解

ρ={R1, R2 …, , RK } ,函数依赖集 F。

输出:分解 ρ 是否具有无损连接性。

Page 15: 第四章   关系数据库范式

15

LOSSNESS(R, F, ρ)(1) .构造一个 k行 n 列的表 T: a j (Aj Ri )

Ti j =

bi j (Aj Ri )

(2). for each FD X→Y in F do for each tl 、 tm T

if ti[X]=tm[X] and ti [Y]tm [Y]

then for each Aj in Y

if ti [Aj]=aj or tm[Aj]=aj then ti[Aj ]=tm [Aj ]=aj

else ti[Aj]=tm [Aj]=bij (i <m) (3). for each tT do if t=a1, a2,…,an then return (true)

return (false)

Page 16: 第四章   关系数据库范式

16

例:关系模式 R=ABCDE, F={A→C, B→C, C→D, DE→C, CE→A}, 分解 ={AD, AB, BE, CDE, AE }.

验证: 是否是无损分解。 A B C D E a1 b12 b13 a4 b15

a1 a2 b23 b24 b25

b31 a2 b33 b34 a5

b41 b42 a3 a4 a5

a1 b52 b53 b54 a5

Page 17: 第四章   关系数据库范式

17

例: 关系模式 R=ABCDE, F={A→C, B→C, C→D, DE→C, CE→A}。 ={AD, AB, BE, CDE, AE }.

A B C D E a1 b12 b13 a4 b15

a1 a2 b23 →b13 b24 →a4 b25

b31→a1 a2 b33 →b13→ a3 b34 →a4 a5

b41→a1 b42 a3 a4 a5

a1 b52 b53 →b13 →a3 b54 →a4 a5 17

Page 18: 第四章   关系数据库范式

18

定理 算法能正确判断分解 是否是无损分解。证明: 若表中没有全 a 行。可将结果表看作 R 的一个关系 r, r 满足 F 。由表 T 的构造知, r 在分解 中的每个Ri 上全为 a ,投影连接后应有全 a 的行。 但 r 中没有,这说明 mρ(r) r ,分解 是连接有损的。

相反,最后表中有全 a 行。全 a 行是为满足 FD将 T中元素替代得到的,若对 T 中元素赋值, 替代结果相当于作连接。全 a 行对应的值是 mρ(r) 中的一个元组,而该元组是 r 中的一个元组, 因而有 mρ(r) r 。而 r mρ(r) ,则有r= mρ(r) ,分解 是连接无损的。 证毕。p60

16

Page 19: 第四章   关系数据库范式

19

定理 3 设关系模式 R 的一个分解 ={R1, R2}, F 是 R 上的

函数依赖集。若 F|=(R1 ∩R2)→(R1- R2) 或 F|=(R1 ∩R2)

→( R2 - R1) ,则具有无损连接性。 证明:用算法 4.2.1 构造一个二行三列的矩阵如下: R1 ∩R2 R1 - R2 R2 - R1

R1 aaa…a aaa…a bbb…b

R2 aaa…a bbb…b aaa…a

例 : 关 系 模 式 R=ABC , R 上 的 FDS 集 F

={ A→C, B→C}。

R 上的分解 1 ={AB, AC} , 2 ={AC, BC}

Page 20: 第四章   关系数据库范式

20

依赖保持性定义 设 R 的一个分解 ={R1, R2 …, , Rp }, R 上的 FDs集

F ,若 Ri (F)={ X→Y X→YF+且 XYRi}, (1≤i≤p) ,则称

Ri(F)为 F在 Ri 上的投影。

例 : 关 系 模 式 R=ABC , R 上 的 FDS 集 F

={ A→B, B→C}。

R 上的分解 1 ={R1, R2}, R1= AB , R2= AC

F在 R1, R2 上的投影

Page 21: 第四章   关系数据库范式

21

依赖保持性

定义 设 ={R1, R2 …, , Rp }是 R 的一个分解, F

是 R 上的 FDs 集。 F在 Ri 上投影的集合 G=∪Ri (F) 。

若 G≡F ,则称分解 保持函数依赖集 F 。

Page 22: 第四章   关系数据库范式

22

算法 4.2.2 检验分解 ρ 是否具有依赖保持性PERSERVE1(F, ρ)begin G: =φ; for each X→Y in F do for each Ri in ρ do if X Ri then do begin Z: = LINCLOSURE(X, F); if Z∩Ri - Xφ then G: = G {X→(Z∩R∪ i - X)} /*F在 Ri 上投影的集合 end; for each X→Y in F do if MEMBER(G, X→Y ) then T: =true else return(false); return(T) ; end.

Page 23: 第四章   关系数据库范式

23

例 设 ={R1 , R2 , R3} , 其 中R1=ABD, R2=BCE, R3=DE, F={A→BD,D→A, C→BE, E→D, C→A}。 判断:是否保持函数依赖集 F。 解:( 1 )计算 F 在 上的投影 G。

考 察 FD A→BD , AR1 , A+=ABD ,G={ A→BD }; 考 察 D→A , DR1 , D+=ABD ,G={ A→BD,D→AB },又DR3 ,但 ABD∩R3 -D=φ, G 不变; 对 C→BE ,CR2, C+=ABCED,G={A→BD,D→AB, C→BE}

分别考察 E→D 和 C→A, 结果: G={ A→BD,D→AB , C→BE, E→D }。

( 2 )判断 F 和 G 是否等价。 可以看出, F 中的 FD 除 C→A 外都已在 G 中了,而MEMBER(G, C→A) 为真,因此,保持函数依赖集 F。

Page 24: 第四章   关系数据库范式

24

4.2.2 通过分解实现规范化算法 4.2.4 生成 3NF 的分解算法DECOMPOSE(R, K, F)

算法步骤: (1). 若 R3NF ,算法终止, ρ={R}。

(2).若 ρ 中有 Ri3NF ,即 YRi, ZKY且

Y→Z, Y→K,

则 Z 传递依赖于 Ri 中的键 K ,分解 Ri 为:

Ri1 =R- Z和 Ri2= YZ ,用 Ri1和 Ri2 代替 ρ 中的 Ri 。

(3). 若 ρ 中所有 Ri 3NF ,输出 ρ ,否则转 (2) 继续进行分

解,直到使所有关系模式都成为 3NF。

Page 25: 第四章   关系数据库范式

25

例 : 设关系模式 R(A,B,C,D,E,G,H,I,J,K,M) 为航空公司数据库。 其中, 属性 ABCDEGHIJKM 分别为: 航班号、出发地、目的地、出发时间、到达时间、飞行时间、机型、头等舱座位数、普通舱座位数、座位总数、用餐时间。

F={A→BCDEGH, BCD→A, BCE→A, DG→M,

H→IJK ,

EG→M, IJ→K, IK→J, JK→I}。

试分解 R 为 3NF。

Page 26: 第四章   关系数据库范式

26

F={A→BCDEGH, BCD→A, BCE→A, DG→M, H→IJK , EG→M, IJ→K, IK→J, JK→I}。

解: R 的键为 K={A, BCD, BCE}, R3NF。 因有 DG→M ,而 DG 不是键, 分解 R 为: R1 =ABCDEGHIJK , K1 ={A, BCD, BCE}; R2 =DGM , K2 ={DG}。

R23NF, R13NF, R1 中有 H→IJK , 分解 R1 为: R11 =ABCDEGH , K11 ={A, BCD, BCE}; R12=HIJK , K12 ={H};

R123NF , 因 IJ→K ,分解 R12 为: R121 =HIJ , K121 ={H}; R122 =IJK , K122 ={IJ, IK, JK}

结果: ={R11, R121, R122, R2}。

Page 27: 第四章   关系数据库范式

27

分解算法得到的关系模式是无损的。

分解算法存在的问题:

( 1 )一个关系模式的主属性和非主属性是很难确定的。

( 2 )分解算法得到的关系模式不是惟一的。

( 3 )分解得到的关系模式不保持函数依赖。

例:职工名,电话,地址

Page 28: 第四章   关系数据库范式

2829

4.2.2 通过合成实现规范化算法 4.2.5 SYNTHESIZE(U, F)

1. F: =F { U→Z }∪ 。

2. 计算 F 化简的最小函数依赖集 G。

3. 将 G按等价类划分得到 EG 。

4 .对 EG 中每个 EG(X)={Xj→Yj, 1jp} ,构造键为

{X1,X2,…,Xp} 的关系模式 Ri=X1X2…XpY,

其中, Y由 EG(X)中 FD 的右部属性组成。

5. 考察每个 Ri ,删除由 EG(X) 中的 FD 合成后出现的外部属性

。 6 .将包含在某个 Ri 中的附加属性 Z 删除,输出 R.

Page 29: 第四章   关系数据库范式

29

例: R=ABC, F={A→C, B→C}

由合成算法得 3NF 为 {AC, BC}, R 不是无损的。 在 F 中加入 FD ABC→Z ,最后得到的数据库模式 R={AB, AC, BC}, R 具有无损连接性。

Page 30: 第四章   关系数据库范式

30

例 : F={B1B2→A,D1D2→B1B2, B1→C1, B2→C2,

D1→A,D2→A, AB1C2→D2, AB2C1→D1},

F 是化简的和最小的。按等价类划分后为: EF(B1B2)={ B1B2→A, D1D2→B1B2} , EF(B1)={

B1→C1},

EF(B2)={B2→C2} , EF

(D1)={D1→A}, EF(D2)={D2→A},

EF(AB1C2)={AB1C2→D2} , EF (AB2C1)

={AB2C1→D1}。

因此: R1 =AB1B2D1D2 ; R2=B1C1 ; R3=B2C2

R4=D1A ; R5=D2A ; R6=AB1C2D2 ;

R7=AB2C1D1 。

在 R1 中的属性 A 是外部的。

Page 31: 第四章   关系数据库范式

31

例 : 设 U=ABCDEGHIJKM , F={A→BCDEGH, BCD→A, BCE→A, A→M, H→IJK, DG→M, EG→M, IJ→K, IK→J, JK→I}求 : 属性集 U 的数据库模式。 解: (1). F: =F {ABCDEGHIJKM→Z}∪ (2) 去掉冗余 A→M 及 ABCDEGHIJKM→Z 和 H→IJK 中的外部属性。 F 化简为最小 FDs.

(3) EG (A)={ A→BCDEGH Z , BCD→A, BCE→A };

EG(H)={H→IJ} ; EG(DG)={ DG→M};

EG (EG)={EG→M} ; EG

(IJ)={ IJ→K, IK→J, JK→I } (4) R1 =ABCDEGHZ , K1={A, BCD, BCE} ; R2 =HIJ , K2 ={H}; R3 =DGM , K3 ={DG}; R4 =EGM , K4 ={EG}; R5 =IJK , K5 ={IJ, IK, JK}。

Page 32: 第四章   关系数据库范式

32

由算法生成的数据库模式 R 满足以下特性: 1.   R保持 F且 F 完全由 R 表达。即 :

F≡{Ki→Ri| Ri R, Ki 是 Ri 的关键字 }.

2. R 中的每个关系模式 Ri 对于 F 都是 3NF。

3. R 具有无损连接性,对任一满足 F 的关系 r(R) ,有 r = R1 (r) R2 (r) … Rk (r)

4. R 是满足以上特性且含有最少关系模式的数据库 模式。

Page 33: 第四章   关系数据库范式

33

定理 4 SYNTHSIZE 算法是正确的,生成的数据库模式是 3NF 且满足无损连接性、依赖保持性和最小性。

证明: (1) 设 RiR ,证明 Ri3NF。

设 Ri 具有关键字 K={X1 …, , XK} 和非主属性集

Y 。如果 Ri 3NF, 则有 AY, AW(WRi) 且

Xj→W, W→A 而

W→Xj (1jK) ,因而有 G|=Xj→A ,则

Xj→AEG(X) ,从而 Xj→AG ,这与 G 是化简最小覆盖相矛盾。另外,经步骤 (5)的处理,消除了传递依赖。 Ri 3NF.

/

Page 34: 第四章   关系数据库范式

34

(3). R 满足依赖保持性,这一点是显然的。 因 G与 F等价,而生成关系模式时没有去掉任何 FD ,即每个Ri 上的 FD 是由 Ri 上的关键字决定的,即

F≡{Ki→Ri | Ri R, Ki是 Ri 的关键字 } 。

(4). R 含有模式数最少。 因最小集 |EG | . 证毕。

(2). R 满足无损连接性。 因 F 中加入 U→Z而 ZU ,所以,在计算过程中 U→Z 不会作为冗余被删除。若 U→Z经化简后为 X→Z ,则说明 U- X 为外部属性,即 X+=U, X是 U 的键。 因 X→ZG , 因此, X 属于R 中某个 Ri ,根据 LOSSLESS 算法,在 X 所在 Ri 对应行一定是

全为 a 的行,即 R 满足无损连接性。

Page 35: 第四章   关系数据库范式

35

4.2.4 规范化关系模式为 BCNF 例 : 设 R=ABCDE ,F={A→B, B→A,D→C, AC→DE},由合成算法得到的数据库模式为: R1 =AB , K1 ={A, B} ;R2=DC, K2={D} ; R3={ACDE}, K3={AC, AD}。 R1, R2, R3 都是 3NF ,但 R3 中有 D→C , 因而 C传递依赖于 AD ,所以 R3 不是 BCNF。 若分解 R3 为 R31= ADE R32= CD

则 R={R1 、 R2 、 R31} 为 BCNF 。

算法 4.2.7 BCNF-DECOMPOSE(R, F) (1).若 RBCNF,算法终止, ρ={R}。 (2).若 ρ中有 RiBCNF,即有 X→Y且 XY Ri 而X→Ri , 则分解 R 为 Ri1 =R- Y 和 Ri2= XY; 用 Ri1 和 Ri2 代替ρ中的 Ri 。 (3). 若 ρ中所有 RiBCNF,输出 ρ,否则转 (2)继续进行分解,直到使所有关系模式都成为 BCNF。

Page 36: 第四章   关系数据库范式

36

例:设 R=ABCDE, F={A→BC, BC→A, BCD→E,

E→C} , 由合成算法生成的模式为 R={R1, R2, R3}:

R1 = ABC, K1 ={A, BC} ;

R2 =BCDE , K2 ={BCD} ;

R3 =EC, K3 ={E}。

R2 BCNF 。将 BC用 A 代替结果为

ADE, R2BCNF ,且替换后的 R也能完全表征 F。*** 3NF 可以满足无损连接性和依赖保持性, BCNF仅能满足无损连接性。

Page 37: 第四章   关系数据库范式

37

COURSE →→ TEACHER

COURSE →→ CLASS

4.3 第四范式和投影 -连接范式

例: COURSE TEACHER

CLASS 知识工程 王一平 硕士 知识工程 王一平 博士 知识工程 刘晓彤 硕士 知识工程 刘晓彤 博士

Page 38: 第四章   关系数据库范式

38

4.3.1 第四范式

定义 (4NF) 设关系模式 R 及 R 上的 FD和MVD集

F 。若对于每一个可施加于 R 且由 F 蕴涵的 MVD

X→→Y ,它们是平凡的,或者X 是 R 的一个超键,则 R 是关于 F 的第四范式,即 R4NF。

例: R= ABCDE , F= {A→BC,C→→DE}

R4NF, R1= ABC 和 R2= CDE 是 4NF 。

Page 39: 第四章   关系数据库范式

39

定理 5 如果模式 R4NF ,则 RBCNF。 证明:假定 R4NF但 RBCNF 。则必有 R 的子集 K、 Y和

A ,且 AKY ,和 K→Y, Y → K, Y→A。 Y→A隐含着

Y→→A 。 由于 Y → K, Y 不是 R 的超键,而 A 不包含在 Y 中

且 YAR 。因此, Y→→A 不是平凡的 MVD 。因此, R4NF ,

与假设矛盾。 证毕。

Page 40: 第四章   关系数据库范式

40

算法 4.3.1 生成 4NF 的分解算法 (1). 若 R4NF ,算法终止, ρ={R}。

(2). 若 ρ 中有 Ri 4NF ,即有 X→→Y, XY Ri 且 X →

Ri ,分解 R 为:

Ri1 =R-( Y-X )和 Ri2= XY ,直到所有模式为 4NF。

Page 41: 第四章   关系数据库范式

41

例 : 设 R=ABCDEI, F={A→→BCD, B→AC, C→D} 。

要求: 将 R 规范化到 4NF。

解: A→→BCD 是非平凡的且 A 不是 R 的键,分解 R 成关系模式:

R1= ABCD , R1 (F)={ B→AC, C→D };

R2= AEI , R2 (F)={φ}

分解 R1 为 4NF : R11= ABC, R12= CD;

函数依赖和多值依赖集 F 在 Rj 上的投影 R j (F):

(1) 若 F|=X→Y, X Rj ,则 X→Y∩Rj ∈Rj (F)

(2) 若 F|= X→→Y, X Rj, X→→Y∩Rj∈R j (F)

Page 42: 第四章   关系数据库范式

42

r ( A B C ) r1 ( A B ) r2 ( A C ) r3 ( B C ) a1 b1 c1 a1 b1 a1 c1 b1 c1 a1 b2 c2 a1 b2 a1 c2 b2 c2

4.3.2 投影 - 连接范式( PJNF)

例: SP (供应商,零件,项目)

a3 b3 c3 a3 b3 a3 c3 b3 c3 a4 b3 c4 a4 b3 a4 c4 b3 c4 a5 b5 c5 a5 b5 a5 c5 b5 c5 a6 b6 c5 a6 b6 a6 c5 b6 c5

JD*[AB, AC, BC]

. . . .

.

插入→ a3 b1 c2 a3 b1 a3 c2 b1 c2 . a1 b1 c2 . 删除

Page 43: 第四章   关系数据库范式

43

r ( A B C ) r1 ( A B ) r2 ( A C ) r3 ( B C ) a1 b1 c1 a1 b1 a1 c1 b1 c1 a1 b2 c2 a1 b2 a1 c2 b2 c2 a3 b3 c3 a3 b3 a3 c3 b3 c3 a4 b3 c4 a4 b3 a4 c4 b3 c4 a5 b5 c5 a5 b5 a5 c5 b5 c5 a6 b6 c5 a6 b6 a6 c5 b6 c5

JD*[AB, AC, BC]

4.3.2 投影 - 连接范式( PJNF)

Page 44: 第四章   关系数据库范式

44

定义 19 设关系模式 R, F是 R 上的函数依赖和连接依赖集。若对于每个由 F蕴涵的且施加于 R

的连接依赖 JD*[R1,R2,…,Rp], JD 是平凡的或者每个 Ri是 R 的一个超键,则 RPJNF。

平凡的 JD: R 上的连接依赖被任意 r(R) 所满足。

JD*[R1, R2, …, Rp] 中有某一 Ri=R。

Page 45: 第四章   关系数据库范式

45

例 : 设 R= ABCDEI, F=

{*[ABCD,CDE,BDI] ,

*[AB, BCD,

AD], A→BCDE, BC→AI}。

试将 R 规范到 PJNF。 结果: R = (ABCD, CDE, BDI)

ABCD: {*[AB, BCD, AD], A→BCD, BC→A}