å¨çº¿è§ç
å¨çº¿è§ç
å¨çº¿è§ç
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