18.01.2015 Views

在线观看

在线观看

在线观看

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

第 4 章 关 系 数 据 库 理 论<br />

数 据 库 模 式 : 一 组 相 关 的 关 系 模 式<br />

关 系 模 式 R(A 1 ,A 2 ,…,A n )<br />

1


4.1 函 数 依 赖<br />

4.1.1 函 数 依 赖 的 基 本 概 念<br />

一 、 关 系 模 式 的 优 劣 与 数 据 依 赖<br />

1. 关 系 模 式 集 性 能 比 较<br />

2


例 1: 学 生 数 据 库<br />

方 案 1: 各 类 数 据 放 在 一 个 关 系 模 式 中<br />

Students(Sno,Sname,Cno,Grade,Sdept,Sloc)<br />

键 (Sno,Cno)<br />

3


问 题 :<br />

1 冗 余 :<br />

一 个 学 生 选 20 门 课<br />

学 生<br />

系 宿 舍 区 的 信 息 重 复 存 储<br />

4


2 潜 在 不 一 致 ( 修 改 复 杂 )<br />

学 生 改 名<br />

对 于 所 选 的 若 干 门 课 若 干 行<br />

到 处 修 改 潜 在 的 不 一 致<br />

修 改 复 杂<br />

5


3 插 、 删 异 常<br />

没 选 课 Cno 为 NULL 学 生 信 息 无 法 插 入<br />

选 课 信 息 输 入 错 误 删 除 同 时 删 学 生 信 息<br />

6


方 案 2: 选 课 信 息 单 独 存 放<br />

Students(Sno,Sname,Sdept,Sloc)<br />

键 : Sno<br />

SC(Sno,Cno,Grade)<br />

键 : (Sno,Cno)<br />

有 所 改 进 : 与 选 课 无 关 的 信 息 只 存 一 次<br />

7


仍 有 问 题 :<br />

1. 冗 余<br />

系 与 宿 舍 区 的 对 应 关 系<br />

一 个 系 1000 个 学 生<br />

系 与 宿 舍 区 的 对 应 关 系 存 放 1000 次<br />

8


2. 潜 在 不 一 致<br />

系 换 宿 舍 区<br />

到 处 修 改 潜 在 的 不 一 致<br />

修 改 1000 次 复 杂<br />

9


3. 删 插 异 常<br />

有 相 应 学 生 的 信 息<br />

才 能 插 入 系 以 及 宿 舍 区 的 信 息<br />

学 生 全 部 毕 业<br />

系 与 宿 舍 区 的 联 系 同 时 删 除<br />

10


2. 产 生 冗 余 及 更 新 异 常 的 原 因<br />

关 系 模 式 内 部 属 性 值 之 间 的 内 在 联 系<br />

—— 数 据 依 赖<br />

主 要 的 数 据 依 赖 :<br />

函 数 依 赖 、 多 值 依 赖<br />

11


Sname<br />

键<br />

Sno<br />

Cno<br />

Sdept<br />

Sloc<br />

Grade<br />

一 个 Sno,m 个 Cno m 行 学 生 信 息<br />

一 个 系 1000 个 Sno,1000 行 系 与 宿 舍 区 的 n:1 联 12 系


3. 关 于 数 据 依 赖<br />

属 性 值 之 间 相 关 联 系 的 表 达<br />

语 义 的 体 现 构 成 数 据 的 约 束<br />

大 多 数 数 据 依 赖 是 函 数 依 赖<br />

13


二 、 函 数 依 赖 的 定 义<br />

1. 函 数 依 赖<br />

设 R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性 全 集 ;<br />

X,Y 是 R 的 属 性 组 (X,Y U);<br />

若 对 于 R 上 任 意 一 个 可 能 的 关 系 实 例 r<br />

满 足 : t 1 ,t 2 ∈r ,t 1 [X]=t 2 [X] 则 t 1 [Y]=t 2 [Y]<br />

则 称 “ X 函 数 决 定 Y ” 或 “Y 函 数 依 赖 于 X”<br />

记 为 :X Y<br />

X 称 为 决 定 因 素<br />

对 关 系 模 式<br />

14


函 数 依 赖 X Y 的 含 义 为 :<br />

任 何 时 刻 表 中 任 一 元 组 :<br />

属 性 组 X 上 的 值 (a 1 a 2 ...a n )<br />

唯 一 地 决 定<br />

在 属 性 组 Y 上 的 值 (b 1 b 2 ...b m )<br />

15


R(A,B,C,D)<br />

一 个 实 例 : A B C D<br />

t 1 a 1 b 1 c 1 d 1<br />

t 2 a 2 b 2 c 2 d 2<br />

t 3 a 2 b 2 c 2 d 3<br />

t 4 a 3 b 2 c 2 d 4 <br />

元 组 t 2 ,t 3 A 的 取 值 相 同<br />

B,C 的 取 值 相 同<br />

实 例 判 定 函 数 依 赖 <br />

16


若 对 于 任 何 时 刻 ( 任 意 实 例 ) 有<br />

A 的 取 值 相 同 时 B,C 上 的 取 值 相 同<br />

则 A (B,C)<br />

17


函 数 依 赖 的 例 :<br />

例 Movies(title,year ,length, genre, studioName,starName)<br />

(title,year) length 决 定 <br />

(title,year) genre 函 数 依 赖 <br />

(title,year) studioName<br />

即 (title,year) ( length, genre, studioName)<br />

关 系 实 例 P38 图 3-2 1-3 行<br />

5-6 行<br />

18


例 :<br />

Students(Sno,Sname,Sage,Class_no,Sdept)<br />

此 关 系 模 式 上 有 许 多 函 数 依 赖<br />

如 :<br />

Sno (Sname,Sage,Class_no,Sdept)<br />

Class_no Sdept<br />

(Sno,Sname)(Sage,Class_no )<br />

……<br />

19


2. 平 凡 函 数 依 赖<br />

如 果 函 数 依 赖 X Y,Y X ;<br />

则 称 为 平 凡 函 数 依 赖<br />

否 则 称 为 非 平 凡 的 函 数 依 赖<br />

例 :(Sno,Sname) Sname 平 凡 函 数 依 赖<br />

(Sno,Cno) Cno<br />

平 凡 函 数 依 赖<br />

Sno Sname<br />

非 平 凡 的 函 数 依 赖<br />

20


所 有 平 凡 的 函 数 依 赖 保 持 “ 恒 真 ”<br />

通 常 我 们 讨 论 的 都 是 非 平 凡 的 函 数 依 赖<br />

包 含 平 凡 的 函 数 依 赖 有 时 简 化 规 则 的 陈 述<br />

A 1 A 2 …A n B 1 B 2 …B m<br />

平 凡 : B 1 B 2 …B m 是 A 1 A 2 …A n 子 集<br />

非 平 凡 : 每 一 个 Bi 不 是 A 1 A 2 …A n 子 集 ( 通 常 讨 论 )<br />

21


4.1.2 函 数 依 赖 与 键<br />

设 R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性<br />

全 集 ;X 是 R 的 属 性 组 (X U);<br />

若 X U , 且 不 存 在 X’ X ,X’ U<br />

则 称 X 为 R 的 键 ( 候 选 键 )。<br />

X 能 决 定 所 有 属 性<br />

X 中 属 性 缺 一 则 不 可 决 定 所 有 属 性<br />

22


键 举 例 :<br />

例 Movies(title,year,length,genre,<br />

studioName, StarName)<br />

影 片 影 星<br />

键 : (title,year , StarName)<br />

能 决 定 所 有 属 性<br />

三 个 属 性 缺 一 不 可<br />

所 以 是 键<br />

23


例 :<br />

Students(Sno,Sname,Sage,Class_no,Sdept)<br />

键<br />

Sno<br />

(Sno,Sname ) 是 超 键 不 是 键<br />

真 子 集 Sno 可 以 决 定 所 有 属 性<br />

24


设 R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性<br />

全 集 ;X 是 R 的 属 性 组 (X U);<br />

若 X U , 则 称 X 为 R 的 超 键 。<br />

与 键 比 较<br />

25


超 键 举 例 :<br />

Students(Sno, Sname, sage, Class_no, Sdept)<br />

超 键 有 :<br />

Sno<br />

(Sno,Sname)<br />

(Sno,Class_no)<br />

(Sno, Sname,Sage, Class_no, Sdept)<br />

…<br />

26


4.1.3 函 数 依 赖 的 规 则<br />

P40<br />

如 何 推 导 函 数 依 赖<br />

已 知 某 关 系 所 满 足 的 函 数 依 赖 , 推 出 它 满 足 的<br />

另 一 些 函 数 依 赖 。<br />

例 3.4<br />

R(A,B,C)<br />

由 A B, B C 推 导 A C<br />

思 路 : 考 察 R 的 任 意 两 个 A 上 取 值 相 同 的 元 组<br />

看 看 C 上 取 值 是 否 相 同<br />

27


假 设 这 样 的 两 个 元 组 为<br />

(a,b 1 ,c 1 ) (a,b 2 ,c 2 )<br />

由 A B A 上 值 相 同 则 B 上 值 相 同<br />

有 b 1 =b 2<br />

记 为 b<br />

得 到 (a,b,c 1 ) (a,b,c 2 )<br />

由 B C B 上 值 相 同 则 C 上 值 相 同<br />

有 c 1 =c 2<br />

即 C 上 取 值 相 同<br />

所 以 A 上 取 值 相 同 的 元 组<br />

C 上 取 值 相 同 所 以 A C<br />

28


函 数 依 赖 集 S 蕴 涵 于 函 数 依 赖 集 T:<br />

满 足 T 中 函 数 依 赖 的 关 系 实 例<br />

也 满 足 S 中 函 数 依 赖<br />

R(A,B,C)<br />

T:{A B, B C } S{A B, B C ,A C}<br />

29


函 数 依 赖 集 等 价 :<br />

函 数 依 赖 集 S 蕴 涵 于 函 数 依 赖 集 T<br />

函 数 依 赖 集 T 蕴 涵 于 函 数 依 赖 集 S<br />

S 与 T 是 等 价 的<br />

30


P40<br />

分 解 规 则 :<br />

A 1 A 2 …A n<br />

B 1 B 2 …..B m<br />

则 A 1 A 2 …A n B i i=1,…m<br />

例 : (title,year,length,genre)<br />

(title,year) (length,genre)<br />

则 (title,year)<br />

(title,year)<br />

length<br />

genre<br />

31


合 并 规 则 :<br />

P40 组 合 / 结 合<br />

A 1 A 2 …A n B i i=1,…m<br />

则 A 1 A 2 …A n B 1 B 2 …..B m<br />

例 : (title,year,length,genre)<br />

(title,year)<br />

(title,year)<br />

length<br />

genre<br />

则 (title,year) (length,genre)<br />

32


P42<br />

平 凡 依 赖 规 则 :<br />

A 1 A 2 …A n<br />

等 价 于 A 1 A 2 …A n<br />

B 1 B 2 …..B m<br />

C 1 C 2 …..C k<br />

去 掉 A 中 出 现 的 属 性 非 平 凡<br />

例 :<br />

(title,year)<br />

(title,year)<br />

(studioName,year)<br />

(studioName)<br />

33


** 属 性 集 的 闭 包<br />

函 数 依 赖 集 F 属 性 组 X<br />

若 有 属 性 组 Y 包 含 所 有 满 足 下 述 条 件 的 属 性 A<br />

X<br />

A 蕴 涵 于 F 中 的 函 数 依 赖<br />

称 Y 为 属 性 组 X 对 于 函 数 依 赖 集 F 的 闭 包 ,<br />

记 为 X F<br />

+<br />

34


P43 例 3.8:<br />

R(A,B,C,D,E,G)<br />

F={AB C , BC AD, D E, CG B}<br />

{A,B} + ={A,B,C,D,E}<br />

F<br />

35


闭 包 与 键<br />

例 : R(A,B,C,D) F={A D, BC A}<br />

{B,C} + ={A,B,C,D}<br />

B + ={B} C + ={C}<br />

F<br />

F<br />

BC 是 键<br />

F<br />

决 定 属 性 全 集<br />

最 小 性<br />

36


求 键 时 的 一 些 考 虑 :<br />

1. 一 个 属 性 不 在 函 数 依 赖 右 边 出 现 , 则 一 定 是<br />

键 属 性<br />

2. 此 外 , 考 虑 含 函 数 依 赖 左 边 属 性 的 属 性 集 的<br />

闭 包 ( 不 含 不 在 左 边 、 在 右 边 的 属 性 )<br />

3. 不 必 考 虑 以 键 作 为 真 子 集 的 属 性 集 的 闭 包<br />

4. 不 必 考 虑 属 性 全 集 的 闭 包 ( 全 键 情 况 除 外 )<br />

37


例 : R(A,B,C,D) F={A C, C B,B A}<br />

求 所 有 键<br />

分 析 : 键 中 必 含 D<br />

键 属 性 涉 及 左 边 的 A,B,C<br />

解 : {A,D} + ={A,C,B,D}<br />

{B,D} + F<br />

={B,A,C,D}<br />

{C,D} + F<br />

={C,B,A,D}<br />

F<br />

D 不 是 键 , 不 含 D 的 属 性 组 也 不 能 作 键<br />

{A,D}{B,D}{C,D} 为 键<br />

不 必 考 虑 以 上 述 键 作 为 真 子 集 的 属 性 组<br />

这 是 所 有 的 键<br />

38


定 理 :<br />

当 且 仅 当<br />

B i 在 A + 中<br />

F<br />

i=1..m<br />

A B 1 B 2 …..B m 蕴 涵 于 函 数 依 赖 集 F<br />

39


定 理 的 例 :<br />

例 : R(A,B,C,D,E,G)<br />

F={AB C, BC AD, D E, CG B}<br />

1) AB D 是 否 蕴 涵 于 上 述 函 数 依 赖 <br />

{A,B} + ={A,B,C,D,E}<br />

F<br />

AB D 蕴 涵 于 ...<br />

2) D A 是 否 蕴 涵 于 上 述 函 数 依 赖 <br />

{ D} + ={DE}<br />

F<br />

D A 不 蕴 涵 于 ...<br />

40


传 递 规 则 :<br />

A 1 A 2 …A n<br />

B 1 B 2 …..B m<br />

B 1 B 2 …..B m<br />

C 1 C 2 …..C k<br />

则<br />

A 1 A 2 …A n<br />

C 1 C 2 …..C k<br />

41


P44 例 3.10 Movies(title,year,length,genre,<br />

studioName, StudioAddr)<br />

(title,year)<br />

studioName<br />

studioName<br />

StudioAddr<br />

(title,year)<br />

StudioAddr<br />

42


** 函 数 依 赖 集 的 闭 包 :<br />

由 给 定 的 函 数 依 赖 集 推 导 出 的 所 有 函 数 依 赖 的<br />

集 合<br />

** 对 于 关 系 模 式 :<br />

能 导 出 关 系 模 式 的 所 有 函 数 依 赖 的 给 定 的 函 数<br />

依 赖 集 , 称 为 “ 基 本 集 ” , 如 果 基 本 集 的 任 何 真 子<br />

集 不 能 导 出 关 系 上 的 所 有 依 赖 , 此 基 本 集 为 最 小 的 .<br />

最 小 基 本 集 又 称 为 极 小 的 函 数 依 赖 集<br />

等 价<br />

43


极 小 的 函 数 依 赖 集<br />

(1)F 中 任 一 函 数 依 赖 的 右 部 仅 含 一 个 属 性<br />

(2)F 中 没 有 多 余 的 函 数 依 赖<br />

即 : 不 存 在 这 样 的 函 数 依 赖 X A<br />

使 F 与 F-{X A} 等 价<br />

(3)F 中 每 个 函 数 依 赖 的 左 部 都 没 有 多 余 的 属 性<br />

即 : 不 存 在 这 样 的 函 数 依 赖 X A,<br />

对 于 X 的 真 子 集 Z<br />

使 F 与 F-{X A} ∪ZA 等 价<br />

44


计 算 极 小 函 数 依 赖 集 的 算 法 :<br />

(1) 应 用 分 解 规 则 , 使 F 中 每 一 个 函 数 依 赖 的<br />

(2) 去 掉 各 函 数 依 赖 左 部 多 余 的 属 性<br />

右 部 属 性 单 一 化<br />

(3) 去 掉 多 余 的 函 数 依 赖<br />

例 :F={A BC,B C,AB C}<br />

(1) F 1 =F= {A B, A C, B C,AB C}<br />

(2)F 2 =F 1 = {A B, A C, B C,A C}<br />

={A B, A C, B C}<br />

(3)F 3 =F 2 ={A B, B C}<br />

极 小 集<br />

45


A,B,C 为 属 性 组<br />

Armstrong 公 理 :<br />

推 导 函 数 依 赖 的 规 则<br />

自 反 律 B A 则 A B<br />

增 长 律 ( 增 广 律 ) A B 则 任 意 C AC BC<br />

传 递 律 A B B C 则 A C<br />

46


4.2 关 系 数 据 库 模 式 设 计<br />

4.2.1 有 关 函 数 依 赖<br />

完 全 函 数 依 赖<br />

设 R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性 全<br />

集 ;X,Y 是 R 的 属 性 组 (X,Y U);<br />

若 X Y , 且 不 存 在 X’ X ,X’ Y<br />

则 称 Y 完 全 函 数 依 赖 于 X ; 记 作 : X Y 。<br />

f<br />

47


完 全 函 数 依 赖 含 义 :<br />

元 组 在 属 性 组 Y 上 的 值<br />

依 赖 于<br />

在 属 性 组 X 中 所 有 属 性 上 的 值 。<br />

48


部 分 函 数 依 赖<br />

设 R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性 全 集 ;<br />

X,Y 是 R 的 属 性 组 (X,Y U);<br />

若 X Y , 且 存 在 X’ X ,X’ Y<br />

P<br />

则 称 Y 部 分 函 数 依 赖 于 X ; 记 作 : X Y 。<br />

49


部 分 函 数 依 赖 含 义 :<br />

元 组 在 属 性 组 Y 的 值 ,<br />

只 依 赖 于<br />

属 性 组 X 的 一 部 分 属 性 的 值 。<br />

50


例 :<br />

Students(Sno,Sname,Cno,Grade,Sdept,Sloc)<br />

键 (Sno,Cno)<br />

f<br />

Sno Sname 完 全 函 数 依 赖<br />

p<br />

(Sno,Cno) Sname<br />

由 于 Sno Sname<br />

部 分 函 数 依 赖<br />

51


传 递 函 数 依 赖<br />

R(U) 是 一 个 关 系 模 式 ,U 是 关 系 R 的 属 性<br />

全 集 ;X,Y,Z 是 R 的 属 性 组 (X,Y,Z U);<br />

若 X Y ,Y Z 且 Z Y,Y X<br />

t<br />

则 称 Z 传 递 函 数 依 赖 于 X ; 记 作 : X Z<br />

52


关 于 传 递 函 数 依 赖 的 解 释 :<br />

Z Y: 不 考 虑 平 凡 函 数 依 赖<br />

Y X:<br />

例 :Sno SSN SSN (Sname, Sage),<br />

由 于 SSN Sno<br />

Sno (Sname, Sage)<br />

是 直 接 函 数 依 赖 , 同 一 实 体 两 个 键 存 储 上 没 有 冗 余 !<br />

53


传 递 函 数 依 赖 的 含 义 :<br />

Z 上 的 值 可 间 接 地 依 赖 于 X 上 的 值 ,<br />

关 系 模 式 中 含 两 个 多 对 一 联 系 形 成 的 链 ,<br />

从 而 导 致 数 据 冗 余 。<br />

54


例 :Students(Sno,Sname,Sdept,Sloc)<br />

有 Sno Sdept<br />

Sdept Sloc<br />

于 是 Sno Sloc 是 传 递 函 数 依 赖 ,<br />

这 里 Sloc 不 仅 依 赖 于 键 Sno<br />

还 依 赖 于 非 键 属 性 Sdept<br />

55


不 同 Sno 可 以 对 应 相 同 的 Sdept<br />

不 同 的 Sdept 对 应 相 同 的 Sloc。<br />

表 中 同 一 Sdept 与 Sloc 的 信 息<br />

对 不 同 Sno 多 次 重 复 。<br />

数 据 冗 余 , 由 此 带 来 潜 在 不 一 致 性 ( 修 改 时 )。<br />

56


4.2.2 关 系 模 式 的 规 范 化<br />

为 区 分 关 系 模 式 的 优 劣 分 为<br />

不 同 的 范 式 (Normal Form)<br />

一 、 第 一 范 式 到 第 三 范 式<br />

1. 第 一 范 式 (1NF)<br />

关 系 模 式 R 属 于 1NF, 当 且 仅 当 R 中 的 每 一 属 性 A<br />

的 值 域 只 包 含 原 子 项 ( 即 不 可 分 割 的 数 据 项 )<br />

1NF—— 是 关 系 模 式 的 基 本 标 准<br />

57


例 : Students(Sno,Sname,Cno,Grade,Sdept,Sloc)<br />

Student ∈1NF<br />

存 在 问 题 :<br />

P<br />

(Sno,Cno) Sname<br />

由 于 Sno Sname<br />

非 键 属 性 部 分 依 赖 于 键<br />

冗 余 、 更 新 异 常<br />

实 体 集<br />

多 对 多 联 系<br />

58


2. 第 二 范 式 (2NF)<br />

关 系 模 式 R 属 于 2NF 当 且 仅 当<br />

R 属 于 1NF<br />

且 每 一 非 键 属 性 完 全 函 数 依 赖 于 键 。<br />

* 去 掉 非 键 属 性 对 键 的 部 分 函 数 依 赖<br />

*R ∈1NF 且 没 有 组 合 键 R∈2NF<br />

59


2NF 的 另 一 个 定 义 :<br />

不 允 许 非 平 凡 函 数 依 赖 的 左 边<br />

是 键 的 真 子 集 ( 右 边 不 是 键 属 性 )<br />

* 两 种 定 义 的 等 价 性<br />

60


例 :<br />

Students(Sno,Sname,Sdept,Sloc) ∈2NF<br />

SC(Sno,Cno,Grade) ∈2NF<br />

性 能 改 善<br />

但 是 :Sno Sdept Sdept Sloc<br />

于 是 Sno Sloc 是 传 递 函 数 依 赖<br />

这 里 非 键 属 性 Sloc 不 仅 依 赖 于 键 Sno<br />

还 依 赖 于 非 键 属 性 Sdept<br />

冗 余 异 常<br />

61


3. 第 三 范 式 (3NF)<br />

关 系 模 式 R 属 于 3NF 当 且 仅 当<br />

R 属 于 1NF, 且 每 一 非 键 属 性 都 非 传 递 函 数 依<br />

赖 于 键 。<br />

去 掉 了 非 键 属 性 对 键 的 部 分 依 赖 与 传 递 依 赖 。<br />

关 系 模 式 R 属 于 3NF 必 有 R 属 于 2NF<br />

62


3NF 的 另 一 个 定 义 :<br />

任 何 非 平 凡 的 函 数 依 赖<br />

A 1 A 2 …A n<br />

B<br />

A 1 A 2 …A n 是 超 键 ( 键 决 定 B)<br />

或 B 是 某 个 键 的 组 成 部 分 ( 键 属 性 / 主 属 性 )<br />

两 种 定 义 的 等 价 性<br />

63


例 :<br />

Students(Sno,Sname,Sdept) ∈3NF<br />

实 体 集 和 一 个 多 对 一<br />

SL(Sdept,Sloc) ∈3NF<br />

一 个 多 对 一<br />

SC(Sno,Cno,Grade) ∈3NF<br />

多 对 多<br />

64


例 :<br />

MovieStudios( title,year,length,genre,<br />

studioName,studioAddr)<br />

函 数 依 赖 :<br />

(title,year)<br />

studioName<br />

studioName<br />

studioAddr<br />

MovieStudios ∈2NF<br />

65


分 解 为 :<br />

MS 1 (title,year,length,genre,studioName)<br />

∈3NF<br />

实 体<br />

一 个 多 对 一<br />

MS 2 (studioName,studioAddr) ∈3NF<br />

一 个 多 对 一<br />

66


4. DB 模 式 中 每 一 关 系 模 式 为 第 N 范 式 , 称 该 DB 模<br />

式 为 第 N 范 式 。<br />

通 常 DB 设 计 要 求 达 到 3NF。<br />

例 : Students(Sno,Sname,Sdept,Sloc) ∈2NF<br />

SC(Sno,Cno,Grade) ∈3NF<br />

DB 模 式 ∈2NF<br />

1NF 2NF 3NF 逐 级 判 定 <br />

67


二 、Boyce-Codd 范 式 (BCNF)<br />

关 系 模 式 R(U,F) ∈ 1NF,<br />

若 X Y ∈F 且 Y X 时 , 必 有 X 含 有 键 ;<br />

则 R(U,F) ∈ BCNF。<br />

换 句 话 说 , 每 一 非 平 凡 函 数 依 赖 决 定 因 素 都 含 有 键 ,<br />

则 R(U,F) ∈ BCNF<br />

消 除 主 属 性 对 键 的 部 分 依 赖 与 传 递 依 赖 。<br />

键 可 以 多 个 含 任 意 一 个 即 可<br />

68


例 :3NF 的 不 足<br />

学 生 教 师 课 程<br />

STJ(S,T,J)<br />

J: subject<br />

键 : (S,J ) (S,T)<br />

F: { (S,J) T, (S,T) J, T J }<br />

无 非 主 属 性 是 3NF<br />

( 左 : 含 键 右 : 键 的 一 部 分 3NF)<br />

P<br />

(S,T) J<br />

主 属 性 部 分 依 赖 于 键<br />

69


有 主 属 性 对 键 的 部 分 依 赖<br />

冗 余 ( 教 师 与 课 程 的 关 系 )<br />

没 有 学 生 选 修 TJ 不 可 存<br />

TJ 存 多 次 修 改 不 方 便 且 易 导 致 不 一 致<br />

S T J<br />

---------------------<br />

s1 t1 j1<br />

s2 t1 j1<br />

s3 t1 j1<br />

s1 t2 j2<br />

s4 t3 j2<br />

70


改 进 : ST(S,T) ∈BCNF<br />

TJ(T,J) ∈BCNF<br />

单 一 事 物 单 一 联 系<br />

S T T J<br />

------------ --------------<br />

s1 t1 t1 j1<br />

s2 t1 t2 j2<br />

s3 t1 t3 j2<br />

s1 t2<br />

s4 t3<br />

71


分 解 后 没 有 任 何 属 性<br />

对 键 的 部 分 依 赖 和 传 递 依 赖<br />

没 有 学 生 选 修 TJ 可 存<br />

TJ 只 存 一 次<br />

修 改 方 便 且 不 导 致 不 一 致<br />

72


例 :<br />

Movies(title,year,length,genre,<br />

studioName,starName)<br />

键 : (title,year,starName)<br />

(title,year)<br />

studioName<br />

左 边 不 包 含 键<br />

由 此 说 明 Movies 不 是 BCNF<br />

常 称 (title,year)<br />

注 意 : 范 式 是 对 关 系 模 式 而 言 的<br />

studioName 为 BCNF 违 例<br />

73


例 : Movies1(title,year,length,genre,studioName)<br />

键 :(title,year)<br />

(title,year) (length,genre,studioName)<br />

左 边 为 键<br />

极 小 函 数 依 赖 集<br />

没 有 BCNF 的 违 例<br />

所 以 是 BCNF<br />

74


例 : 双 属 性 关 系 ∈ BCNF<br />

设 R(A,B)<br />

1) 无 非 平 凡 函 数 依 赖<br />

(A,B) 是 键 R ∈ BCNF<br />

2) F: A B<br />

A 是 键 左 边 含 键 R ∈ BCNF<br />

3) F:B A<br />

B 是 键 左 边 含 键 R ∈ BCNF<br />

4)F:A B B A<br />

A 或 B 是 键 左 边 含 键 R ∈ BCNF<br />

75


例 :<br />

Students(Sno,Sname,Ssex,Sage,Sdept) ∈BCNF<br />

Courses(Cno,Cname,Cpno,Ccredit) ∈BCNF<br />

SC(Sno,Cno,Grade) ∈BCNF<br />

DB 模 式 ∈BCNF<br />

76


例 : 学 生 课 程 名 次<br />

SJP(S,J,P)<br />

键 :(S,J) (J,P)<br />

F:(S,J) P (J,P) S<br />

SJP(S,J,P) ∈BCNF<br />

决 定 因 素 含 有 键<br />

77


定 理 : 若 R 属 于 BCNF, 必 有 R 属 于 3NF。<br />

反 证 法 : 假 设 R 不 是 3NF X : 键 Z: 非 键 属 性<br />

则 :<br />

存 在 非 平 凡 函 数 依 赖 X Y Y Z<br />

Y X Y 不 含 有 键<br />

有 非 平 凡 函 数 依 赖 Y Z<br />

左 边 不 含 有 键<br />

则 R 不 属 于 BCNF<br />

矛 盾 !<br />

命 题 成 立<br />

78


4.2.3 关 系 模 式 的 分 解<br />

将 一 个 关 系 模 式 分 解 为 几 个 子 模 式<br />

达 到 更 高 的 范 式<br />

提 高 性 能<br />

79


一 、 分 解 规 则 :<br />

R(U) 分 解 为 子 关 系 S(U 1 ) 和 T(U 2 ) 要 求 :<br />

1. U= U 1 ∪ U 2<br />

2. S(U 1 ) 中 的 元 组 是 R(U ) 中 元 组<br />

在 { U 1 } 上 的 投 影 。<br />

T(U 2 ) 中 的 元 组 是 R(U) 中 元 组<br />

在 U 2 上 的 投 影 。<br />

80


例 : Movies(title,year,length,genre,<br />

分 解 为 :<br />

影 片 影 星 与 影 片 ( 多 对 多 )<br />

studioName,starName)<br />

Movies 1 (title,year,length,genre,studioName)<br />

影 片<br />

Movies 2 (title,year,starName)<br />

影 星 与 影 片 ( 多 对 多 )<br />

关 系 实 例 Movies 在 子 关 系 上 的 投 影<br />

81


二 、 分 解 为 BCNF 的 方 法<br />

R(U) 没 有 达 到 BCNF, 将 其 分 解 为 一 组 达 到<br />

BCNF 的 子 关 系 模 式 。<br />

1) 求 键<br />

2) 寻 找 BCNF 的 违 例<br />

82


3) 分 解<br />

假 定 : X→Y 为 BCNF 的 一 个 违 例<br />

Y’=X + -X<br />

F<br />

从 X→ Y’ 分 解<br />

R 1 (X ∪ Y’)<br />

R 2 (X ∪(U-X-Y’))<br />

83


4) 分 别 对 R 1 ,R 2<br />

求 R 的 极 小 函 数 依 赖 集<br />

在 其 上 的 投 影 F 1 ,F 2<br />

重 复 1) 2) 3)<br />

直 至 得 到 一 组 达 BCNF 的 子 关 系 模 式<br />

84


三 、 函 数 依 赖 集 的 投 影<br />

设 有 关 系 模 式 R(U,F), S(U 1 ,F 1 ) 为 分 解 后 得 到 的<br />

子 关 系 模 式 之 一 , 求 F 1<br />

方 法 :<br />

对 S 上 的 每 一 个 属 性 集 X, 求 X +<br />

F<br />

再 求 X + ∩U<br />

F 1<br />

若 S 上 的 任 何 一 个 属 性 A X + ∩ U 1<br />

F<br />

A X<br />

则 X A 是 F 1 中 的 一 个 函 数 依 赖 , 依 次 计 算 得 F 1<br />

如 果 我 们 不 能 确 定 一 个 关 系 上 成 立 的 函 数 依 赖 , 就 无 法 判 定 是 85 否<br />

属 于 BCNF。


例<br />

设 :R(U,F),U={A,B,C,D},<br />

F={A→B,B→C,C→D,D→A }<br />

ρ={R 1 (A,B,C),R 2 (C,D)}<br />

求 :F 在 R 1 、R 2 上 的 投 影 F 1 、F 2<br />

解 : 令 : U 1 ={A,B,C}, U 2 ={C,D}<br />

86


对 于 U 1 ={ABC}:<br />

∵ A + F = {ABCD},<br />

B + F = {ABCD},<br />

C + F = {ABCD},<br />

(AB) + F = {ABCD},<br />

(AC) + F = {ABCD},<br />

(BC) + F = {ABCD},<br />

A + F∩U 1 ={ABC}<br />

B + F ∩U 1 ={ABC}<br />

C + F ∩U 1 ={ABC}<br />

(AB) + F ∩U 1 ={ABC}<br />

(AC) + F ∩U 1 ={ABC}<br />

(BC) + F ∩U 1 ={ABC}<br />

87


∴ F 1 = {A→B,A→C, B→A, B→C, C→A,<br />

C→B, AB→C, AC→B, BC→A }<br />

= {A→B, B→C, C→A }<br />

88


对 于 U2 = {CD}:<br />

∵ C + F = {ABCD}, C + F∩U 2 ={CD}<br />

D + F = {ABCD},<br />

D + F ∩U 2 ={CD}<br />

∴ F 2 = { C→D,D→C }<br />

89


简 化 搜 索 依 赖 的 过 程<br />

1. 不 必 考 虑 S 的 属 性 全 集 的 闭 包<br />

2. 只 考 虑 函 数 依 赖 左 边 属 性 的 属 性 集 的 闭 包<br />

90


例 : R(A,B,C,D) F={A B , B C}<br />

S(U 1 ,F 1 ) U 1 ={A,C} 求 F 1<br />

解 :<br />

A + ={A,B,C}<br />

F<br />

A + ∩U 1 = {A,C}<br />

C 不 在 左 边 不 考 虑 含 C 的 属 性 集 的 闭 包<br />

F 1 ={AC}<br />

F<br />

91


例 : R(A,B,C,D,E) F={A D, B E, DE C }<br />

S(U 1 ,F 1 ) U 1 ={ABC} 求 F 1<br />

解 : 不 考 虑 含 C 的 属 性 集<br />

A + ={A,D} A + ∩U 1 =A<br />

F<br />

B + ={B,E} B + ∩U 1 =B<br />

F<br />

F<br />

F<br />

{A,B} + ={A,B,C,D,E} {A,B} + ∩U 1 ={A,B,C}<br />

F<br />

F<br />

F 1 ={AB C}<br />

92


四 、 分 解 为 BCNF 的 例<br />

例 :R(A,B,C,D,E)<br />

F={A→BC, B→D, C→D, D→E}<br />

1) 求 R 的 键<br />

右 侧 不 含 A, 键 含 A。<br />

A + ={A,B,C,D,E} A 是 键<br />

F<br />

2) B→D 是 BCNF 的 违 例<br />

从 B→DE 分 解<br />

R 1 (B,D,E) R 2 (B,A,C)<br />

93


3) 对 于 R 1 (B,D,E) 求 函 数 依 赖 集 F 的 投 影 F 1<br />

不 考 虑 含 E 的 属 性 集<br />

B + ={B,D,E} B + ∩U 1 ={B,D,E} B → D B → E<br />

F<br />

D + ={D,E} D + ∩U 1 ={D,E} D → E<br />

F<br />

{B,D} + ={B,D,E} {B,D} + ∩U 1 ={B,D,E } BD → E<br />

F<br />

化 简 F 1 ={B → D, D → E}<br />

F<br />

F<br />

F<br />

可 求 得 R 1 键 为 B ( 过 程 略 )<br />

D → E 为 BCNF 违 例 , 由 D → E 分 解<br />

R 11 (D,E),R 12 (D,B) 双 属 性 BCNF<br />

94


4) 对 于 R 2 (B,A,C) 求 函 数 依 赖 集 F 的 投 影 F 2<br />

A + ={A,B,C,D,E} A + ∩U 2 ={A,B,C}<br />

F<br />

B + ={B,D,E}<br />

F<br />

C + ={C,D,E}<br />

F<br />

B + ∩U 2 ={B}<br />

C + ∩U 2 ={C}<br />

A → BC<br />

{A,B} + ={A,B,C,D,E} {A,B} + ∩U 2 ={A,B,C }<br />

{B,C} + ={B,C,D,E} {B,C} + ∩U 2 ={B,C }<br />

F<br />

F<br />

F<br />

F<br />

AB → C<br />

{A,C} + ={A,B,C,D,E} {A,C} + ∩U 2 ={A,B ,C} AC →B<br />

F<br />

化 简 F 2 ={A → B,A → C}<br />

可 求 得 R 2 键 为 A ( 过 程 略 )<br />

无 BCNF 违 例 R 2 达 BCNF<br />

F<br />

F<br />

F<br />

F<br />

5) 结 果 ={R 11 (D,E),R 12 (D,B), R 2 (B,A,C)}<br />

95


例 : Movies(title,year,length,genre,<br />

studioName,starName)<br />

(title,year,starName) 是 唯 一 键<br />

(title,year)<br />

(length,genre,studioName)<br />

是 BCNF 违 例<br />

分 解 为 : M 1 {title,year, length,genre,studioName}<br />

和 M 2 {title,year, starName}<br />

用 算 法 可 印 证 M 1 ,M 2 都 属 于 BCNF<br />

96


例 : MovieStudios(title,year,length,genre,<br />

(title,year) 唯 一 键<br />

studioName,studioAddr)<br />

studioName<br />

studioAddr 是 BCNF 违 例<br />

分 解 为 :<br />

S 1 {studioName, studioAddr }<br />

和 S 2 {studioName, title,year,length,genre}<br />

用 算 法 可 印 证 S 1 ,S 2 都 是 BCNF<br />

97


例 :<br />

MSP{title,year,studioName,president,presAddr}<br />

title,year 是 键<br />

title,year<br />

studioName<br />

studioName<br />

president 是 BCNF 违 例<br />

president<br />

presAddr 是 BCNF 违 例<br />

由 studioName<br />

president,presAddr 分 解<br />

选 不 满 足 BCNF 的 函 数 依 赖 时 , 右 侧 应 含 尽 量 多<br />

属 性 ( 闭 包 )<br />

98


MSP{title,year,studioName,president,presAddr}<br />

由 studioName<br />

president,presAddr<br />

分 解 为 :<br />

MSP 1 {studioName, president,presAddr}<br />

经 算 法 判 定 不 是 BCNF<br />

和 MSP 2 {studioName, title,year}<br />

经 算 法 判 定 是 BCNF<br />

99


对 于 MSP 1 {studioName, president,presAddr}<br />

由 BCNF 违 例 president<br />

presAddr<br />

分 解 为 MSP 11 {president, presAddr}<br />

和 MSP 12 {president, studioName}<br />

最 终 分 解 为 :<br />

都 是 BCNF<br />

MSP 2 {studioName, title,year}<br />

MSP 11 {president, presAddr}<br />

MSP 12 {president, studioName}<br />

100


五 、 从 分 解 中 恢 复 信 息<br />

模 式 分 解 的 标 准 :<br />

* 保 持 依 赖 的 分 解<br />

子 关 系 的 函 数 依 赖 集 可 蕴 涵 原 函 数 依 赖 集<br />

* 无 损 连 接 的 分 解<br />

由 子 关 系 经 连 接 运 算 可 恢 复 原 关 系<br />

101


考 虑 :R(A,B,C)<br />

B<br />

C 是 BCNF 的 违 例<br />

分 解 为 R 1 (A,B) R 2 (B,C)<br />

若 A 是 键 A B B C<br />

若 (A,B) 是 键 只 有 B C<br />

R=R 1 R 2 即 无 损 连 接 的<br />

P53 证 明 不 可 能 出 现 伪 元 组<br />

102


看 一 个 实 例 , 便 于 理 解<br />

R A B C R 1 A B R 2 B C<br />

a1 b1 c1 a1 b1 b1 c1<br />

a2 b2 c2 a2 b2 b2 c2<br />

a3 b2 c2 a3 b2<br />

A B B C<br />

R 1 R 2 :<br />

A B C<br />

a1 b1 c1<br />

a2 b2 c2 与 R 相 同<br />

a3 b2 c2<br />

103


一 个 实 例 (A,B) 是 键<br />

R A B C R 1 A B R 2 B C<br />

a1 b1 c1 a1 b1 b1 c1<br />

a1 b2 c2 a1 b2 b2 c2<br />

a2 b2 c2 a2 b2<br />

a3 b2 c2 a3 b2<br />

B C<br />

R 1 R 2 :<br />

A B C<br />

a1 b1 c1<br />

a1 b2 c2<br />

a2 b2 c2 与 R 相 同<br />

a3 b2 c2<br />

104


推 广 :<br />

A,B,C 是 属 性 组 B C 是 BCNF 的 违 例<br />

A 是 B、C 中 没 有 出 现 的 属 性<br />

R(A,B,C) 分 解 为 R 1 (A,B) R 2 (B,C)<br />

R=R 1 R 2<br />

即 将 关 系 模 式 分 解 为 BCNF 的 算 法 是 无 损 连 接 的<br />

105


* 但 不 一 定 保 持 函 数 依 赖<br />

R(A,B,C,D,E) AB C DE C B D<br />

ABE 是 键<br />

由 AB CD 分 解 为<br />

R 1 (A,B,C,D) AB C B D<br />

R 2 (A,B,E)<br />

对 R 1 由 B D 分 解 为<br />

R 11 (B,D) B D R 12 (B,A,C) AB C<br />

DE C 丢 失<br />

( 不 蕴 涵 于 子 模 式 函 数 依 赖 集 )<br />

106


判 断 一 个 分 解 具 有 无 损 连 接 性 的 算 法<br />

算 法 的 输 入 :<br />

关 系 模 式 R(A 1 ,A 2 ,…,A n ),<br />

R 上 的 函 数 依 赖 集 F,<br />

R 的 一 个 分 解 ={R 1 ,R 2 ,…,R k }<br />

算 法 的 输 出 : true 或 false<br />

107


算 法 LOSSLESSTEST(R,F ,)<br />

构 造 一 个 k 行 n 列 的 二 维 表 T, 第 i 行 对 应 于 关 系 模 式 R i , 第<br />

j 列 对 应 于 属 性 A j , 令<br />

T ij = {<br />

a j 若 A j R i<br />

b ij 若 A j R i<br />

108


c1:=true<br />

do while c1<br />

{c1:=false;<br />

for 每 一 个 XYF do<br />

for 每 一 对 t i , t k T do<br />

if t i [X] = t k [X] and t i [Y] t k [Y]<br />

then { EQUY(t i , t k ); c1=true }<br />

for 任 一 个 tT do { if t=a 1 a 2 ..a n then return(true)}<br />

}<br />

return(false)<br />

109


EQUY (t i ,t k ) 是 使 t i , t k 两 个 元 组 的 Y 值 相 等 的 子 处 理 过 程 ,<br />

处 理 原 则 如 下 :<br />

若 t i [Y] 与 t j [Y] 有 一 个 为 a j<br />

则 将 另 一 个 也 改 为 a j<br />

否 则 ,t k [Y]=t i [Y] 假 定 i


例 : 关 系 模 式 R(A,B,C,D,E)<br />

F={AC,BC,CD,DEC,CEA}<br />

分 解 为 ={R 1 (A,D),R 2 (A,B),R 3 (B,E),<br />

R 4 (C,D,E),R 5 (A,E )}<br />

用 上 述 算 法 判 断 是 否 具 有 无 损 连 接 性<br />

111


构 造 二 维 表<br />

A B C D E<br />

R 1<br />

b 12 b 13 a 4 b 15<br />

R 2<br />

a 1 a 2 b 23<br />

b 24 b 25<br />

a 1<br />

R 3 b 31 a 2 b 33 b 34 a 5<br />

R 5 a 1 b 52 b 53 b 54 a 5<br />

R 4 b 41 b 42 a 3 a 4 a 5<br />

112


由 AC, 做 的 修 改<br />

A B C D E<br />

R 1<br />

b 12 b 13 a 4 b 15<br />

R 2<br />

a 1<br />

b 13<br />

a 3 a 4<br />

a 1 a 2 b 23<br />

b 24 b 25<br />

R 4 b 41 b 42<br />

a 5<br />

R 3 b 31 a 2 b 33 b 34 a 5<br />

R 5 a 1 b 52 b 53 b 54 a 5<br />

b 13<br />

113


由 CD 做 的 修 改<br />

A B C D E<br />

R 1<br />

b 12 b 13 a 4 b 15<br />

R 2<br />

a 1<br />

4<br />

a 3 a 4<br />

a 1 a 2 b 13 b 24 a b 25<br />

R 4 b 41 b 42<br />

a 5<br />

R 3 b 31 a 2 b 13 b 34 a 4<br />

a 5<br />

R 5 a 1 b 52 b 13 b 54 a 5<br />

a 4<br />

114


结 果 二 维 表<br />

A B C D E<br />

R 1<br />

b 12 a 3<br />

a 4 b 15<br />

R 2<br />

a 1<br />

a 2<br />

a 3<br />

a 4<br />

b 25<br />

a 1<br />

R 3<br />

a 1 a 2 a 5<br />

a 3 a 4<br />

R 5 a 1 b 52 a 3 a 4 a 5<br />

R 4 a 1 b 42 a 3 a 4 a 5<br />

算 法 输 出 true 是 无 损 的<br />

115


定 理 : 关 系 模 式 R(U), 分 解 为 ={R1(U 1 ),R2(U 2 )}<br />

是 无 损 连 接 的<br />

当 且 仅 当<br />

U 1 U 2 U 1 -U 2<br />

或<br />

U 1 U 2 U 2 -U 1<br />

116


保 持 依 赖 分 解 成 3NF 的 算 法 :<br />

1) 对 R(U,F) 求 最 小 依 赖 集 F’<br />

2) 若 F’ 只 有 XA, 且 XA=U 转 4)<br />

3) 若 U 中 有 某 些 属 性 与 F’ 中 所 有 依 赖 的<br />

左 部 与 右 部 都 无 关 , 则 将 它 们 构 成 一 个 关 系 模 式<br />

4) 将 F’ 左 部 相 同 的 依 赖 分 组 每 一 组 形 成 一 个<br />

子 关 系 R i (U i ,F i )<br />

={R 1 (U 1 ,F 1 ),R 2 (U 2 ,F 2 ),…...R n (U n ,F n )}<br />

117


例 :Students(Sno,Sname ,Sage,Dno,Classno,Tno,Cno,Grade)<br />

给 出 一 个 保 持 依 赖 的 分 解<br />

解 : 最 小 依 赖 集<br />

F’= {Sno Sname,Sno Sage,Sno Classno<br />

Classno Tno, Tno Classno,<br />

Classno Dno ,(Sno,Cno) Grade}<br />

左 部 相 同 的 分 为 一 组<br />

={R 1 (Sno,Sname,Sage,Classno),<br />

R 2 (Classno,Tno,Dno),<br />

R 3 (Sno,Cno,Grade )}<br />

118


4.2.4 多 值 依 赖 与 4NF<br />

数 据 依 赖 : 函 数 依 赖 、 多 值 依 赖<br />

例 : 学 校 中 , 一 门 课 程 , 一 组 教 师 , 一 套 参 考 书<br />

teach(C,T,B)<br />

全 键 (C,T,B)<br />

无 函 数 依 赖<br />

teach(C,T,B) ∈BCNF<br />

119


存 在 问 题 : 冗 余 、 更 新 异 常<br />

原 因 :C 决 定 T、B 的 一 组 值<br />

T 与 B 取 值 无 关<br />

在 同 一 表 中 给 出 各 种 组 合 , 造 成 冗 余<br />

多 值 依 赖 的 存 在<br />

120


1. 多 值 依 赖 的 定 义<br />

定 义 : 设 R(U) 是 一 个 关 系 模 式<br />

U 是 关 系 R 的 属 性 全 集<br />

X,Y,Z 是 R 的 属 性 组 且 Z=U-X-Y<br />

若 对 于 关 系 实 例 r ,<br />

满 足 : 给 定 X 的 值 , 有 一 组 Y 值 与 之 对 应 , 且 与 Z 无 关<br />

则 称 “X 多 值 决 定 Y” 或 “Y 多 值 依 赖 于 X”<br />

记 为 :X Y<br />

当 Z= 时 , 称 为 平 凡 多 值 依 赖<br />

121


例 :teach(C,T,B)<br />

C T<br />

某 一 课 程 决 定 一 组 教 师 与 参 考 书 无 关<br />

C B<br />

某 一 课 程 决 定 一 组 参 考 书 与 教 师 无 关<br />

122


多 值 依 赖 具 有 这 样 的 性 质 :<br />

设 R(U) X,Y,Z U Z= U-X-Y<br />

1)X Y 则 X Z 对 称<br />

2) X Y 则 X Y 特 例<br />

123


2. 第 四 范 式 定 义 :<br />

定 义 : 关 系 模 式 R(U,F) ∈ 1NF,<br />

R 上 非 平 凡 的 多 值 依 赖 X Y ,<br />

必 有 X 含 有 键 则 R(U,F) ∈ 4NF。<br />

说 明 :<br />

当 U-X-Y= (Y X) 时 , 称 为 非 平 凡 多 值 依 赖<br />

4NF 的 关 系 模 式 只 允 许 ( 决 定 因 素 含 键 的 ) 函 数 依 赖<br />

及 平 凡 的 多 值 依 赖 出 现<br />

124


3. 分 解 成 4NF<br />

在 R 的 函 数 依 赖 中 , 找 一 个 4NF 的 违 例<br />

A B (A,B 是 属 性 集 )<br />

分 解 为<br />

R 1 (A,B)<br />

R 2 (A,C)<br />

C 为 A,B 中 没 有 的 属 性 的 集 合<br />

125


例 :teach(C,T,B) 分 解 为<br />

CT(C,T)∈ 4NF<br />

C T 平 凡 多 值 依 赖<br />

CB(C,B)∈ 4NF<br />

C B 平 凡 多 值 依 赖<br />

一 张 表 一 个 联 系 消 除 了 冗 余 、 更 新 异 常<br />

126


4.2.5 关 于 规 范 化<br />

规 范 化 的 实 质 : 概 念 单 一 化<br />

一 事 一 地<br />

单 一 事 物 单 一 联 系<br />

1NF<br />

2NF<br />

3NF<br />

BCNF<br />

4NF<br />

消 除 非 键 属 性 对 键 的 部 分 函 数 依 赖<br />

消 除 非 键 属 性 对 键 的 部 分 、 传 递 函 数 依 赖<br />

消 除 键 属 性 对 键 的 部 分 函 数 依 赖 与 传 递 函 数 依 赖<br />

消 除 非 平 凡 且 非 函 数 依 赖 的 多 值 依 赖<br />

127


熟 练 掌 握 : 函 数 依 赖 概 念 ; 函 数 依 赖 Armstrong 公<br />

理 系 统 和 推 理 规 则 ; 属 性 集 A 关 于 函 数 依 赖<br />

集 F 的 闭 包 计 算 ;BCNF、3NF、2NF 和 1NF<br />

的 概 念 ; 判 定 关 系 模 式 属 于 第 几 范 式 ; 从<br />

函 数 依 赖 集 计 算 关 系 模 式 的 键 ; 关 系 模 式<br />

分 解 的 函 数 依 赖 投 影 计 算 ; 具 有 无 损 连 接<br />

性 分 解 到 BCNF 的 算 法 。 保 持 函 数 依 赖 分 解<br />

到 3NF 的 算 法 。 判 定 无 损 连 接 性 的 算 法 。<br />

掌 握 : 函 数 依 赖 集 闭 包 概 念 ; 多 值 依 赖 与 4NF; 关<br />

系 投 影 ; 具 有 无 损 连 接 性 分 解 和 保 持 函 数 依<br />

赖 分 解 的 概 念 ; 低 范 式 关 系 模 式 的 缺 点 。<br />

理 解 : 数 据 冗 余 及 其 影 响 问 题 。<br />

128

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!