第五章 rdb ( 关系数据库) 5.1 函数依赖 fd 5.2 闭包及其运算 5.3 ...
DESCRIPTION
第五章 RDB ( 关系数据库) 5.1 函数依赖 FD 5.2 闭包及其运算 5.3 关系模式分解 5.4 关系模式规范化 NF. 问题 R ( Sh,Sn,Sex,Ch,Grade ) Sh Sn Sex Ch Grade S1 丁一 m c1 90 S1 丁一 m c2 89 S1 丁一 m c3 88 S1 丁一 m c4 87 S1 丁一 m c5 95. - PowerPoint PPT PresentationTRANSCRIPT
5 关系数据库 1
第五章 RDB ( 关系数据库)
5.1 函数依赖 FD
5.2 闭包及其运算
5.3 关系模式分解
5.4 关系模式规范化 NF
5 关系数据库 2
问题 R ( Sh,Sn,Sex,Ch,Grade )
Sh Sn Sex Ch GradeS1 丁一 m c1 90S1 丁一 m c2 89S1 丁一 m c3 88S1 丁一 m c4 87S1 丁一 m c5 95
insert,update,delete 异常 ,数据冗余
PK: ( Sh,Ch )
5 关系数据库 3
R1 ( Sh,Sn,Sex ) PK:Sh Sh Sn Sex S1 丁一 m
R2 ( Sh,Ch,Grade ) PK: (Sh,Ch) Sh Ch Grade S1 c1 90 S1 c2 89 S1 c3 88 S1 c4 87 S1 c5 95
解决问题 模式分解
5 关系数据库 4
• 函数依赖 F D
• 函数依赖分类• 函数依赖特性
问题
5 关系数据库 5
X1X2X3X4……Xn
Y1Y2Y3……Yn
X——>Y
X 决定 Y,Y 依赖于X
5 关系数据库 6
R(Sh,Sn,Sex,Ch,Grade)
PK: (Sh,Ch)
(Sh,Ch) Sn / Sex / Grade
Sh Sn / Sex
Sn/Sex 对 (Sh,Ch) Pfd 部分依赖
5 关系数据库 7
R(Sh,Sn,Sex,Ch,Grade)
PK: (Sh,Ch)
(Sh,Ch) Sn / Sex / Grade
Grade 对 (Sh,Ch) Ffd 完全依赖
(sh,ch) Grade
5 关系数据库 8
Ex. S (Sh , Bj , Bad) ShBj , BjBad
Bad 对 Sh tfd 传递依赖
Sh Bad
Sh Bj Bad
5 关系数据库 9
R (U,F) Relation 关系 U Property Set 属性集合 F FD Set 函数依赖集合 Pk: Primary Key 主键 Fk: Foreign Key 外键
5 关系数据库 10
W ( 日期 D ,工号 G ,姓名 N ,工种 A ,定额 B ,超额 C ,车间 E ,车间主任 F )
例
求
完全函数依赖 fFD
部分函数依赖 pFD
传递函数依赖 tFD
Pk Primary Key 主键
5 关系数据库 11
W( 日期 D ,工号 G ,姓名N , 工种 A ,定额 B ,超额C ,
车间 E ,车间主任 F )
FD
PK: (D,G)
(D,G)N/A/B/C/E/F
pFDA B
t FDEF
(D,G) C f FD
G N/A/ E
5 关系数据库 12
W( 日期 D ,工号 G ,姓名 N , 工种 A ,定额 B ,超额 C ,
车间 E ,车间主任 F )
FDPK: (D,G)
(D,G)p
ABt
G B
N/A/E
(D,G) f C
三类函数依赖 FD 表示方法
G N/A/ E
5 关系数据库 13
1 .下表是职工职务工资表 R1职工( E ) 职务( F ) 职务工资( G )王 键 车间主任 1200张 扬 车间主任 1200王元元 工程师 800李 民 工程师 800关系模式 R1 ( E , F , G ) 试述:
( 1 )指出 R1 的主键( 2 )指出是否存在部分函数依赖( 3 )指出是否存在传递函数依赖。( 4 ) R1 是否存在数据冗余、更新异常。
5 关系数据库 14
工程号
P1P1P1P2P2
材料号
1112131114
数量
4615618
开工日期
9805 9805 9805 9811 9811
单价
250200180250150
完工日期
99029902 9902 9912 9912
2. 表为一个某工程关系模式R ( A , B , C , D , E , F )试述: ( 1 )指出 R 的主键( 2 )指出是否存在部分函数依赖( 3 )指出是否存在传递函数依赖( 4 ) R 是否存在数据冗余、更新异常。
5 关系数据库 15
2a. 表为一个某工程关系模式 R ( A , B , C , D , E , F )试述: ( 1 ) R 是否满足 1NF ,为什么?( 2 )指出 R 的主键 ( 3 )指出是否存在部分函数依赖( 4 )指出是否存在传递函数依赖 ( 5 ) R 是否存在数据冗余、更新异常。* ( 6 )使用什么方法可以进一步提高范式,可达到第几范式工程号
P1P1P1P2P2
材料号
1112131114
数量
4615618
开工日期
9805 9805 9805 9811 9811
价格
250200180250150
完工日期
99029902 9902 9912 9912
A→ D D→ E A → E
YESAB AB→D A→D B→ F
YES
5 关系数据库 16
3. 关系模式 R(Sh,Ch,Grade,Tname,Taddr), 其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。 1) 指出 R 的主键
3) 指出是否存在部分函数依赖 4) 指出是否存在传递函数依赖。 5)R 是否存在数据冗余、更新异常。
5 关系数据库 17
3a. 设关系模式 R(Sh,Ch,Grade,Tname,Taddr), 其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。
1)R 是否满足 1NF ,为什么? 2) 指出 R 的主键 3) 指出是否存在部分函数依赖 4) 指出是否存在传递函数依赖 5)R 是否存在数据冗余、更新异常。 *6) 使用什么方法可以进一步提高范式,可达到第几范式
YES
sh,chshch→ Tn ch→ Tn
ch→ Tn Tn→Ta
YES
5 关系数据库 18
4. 下表为一个职工关系模式R ( A,B,C,D,E )
日期 A 工号 B 超额 C 车间 D 车间主任E
1101 01 1500 组装 Li
1102 01 1000 组装 Li
1103 01 2000 组装 Li
1101 02 1800 配件 Wu
5 关系数据库 19
试述:(1) R 是否满足 1NF ,为什么?(2) 指出 R 的主键(3) 指出是否存在部分函数依赖(4) 指出是否存在传递函数依赖。(5) R 是否存在数据冗余、更新异常。*(6) 使用什么方法可以进一步提高范式,可达到第几范式
函数依赖应用举例
5 关系数据库 20
4a. 下表为一个职工关系模式R ( A , B , C , D , E )。
日期( A )工号( B )超额( C )车间( D )车间主任( E )
(1) R 是否满足 1NF ,为什么?(2) 指出 R 的主键(3) 指出是否存在部分函数依赖 (4) 指出是否存在传递函数依赖。 (5) R 是否存在数据冗余、更新异常。*(6) 使用什么方法可以进一步提高范式 , 可达到第几范式
YesPK:AB
AB→D B→D pFD
AB→E D→E tFD
Yes
R1(A,B,C) R2(B,D) R3(D,E) 3NF AB→E D→E tFD
5 关系数据库 21
Uwzyx ,,,xy
FD Armstrong
R( U )
xy
xy xzyz
xyyz
xz
自反律
增广律
传递律
函数依赖特性
5 关系数据库 22
Uwzyx ,,,FD Armstrong R(U)
xyz
xyz
xyywz xwz
xyxz xy
xz
合并律
分解律
伪传递律
函数依赖特性
5 关系数据库 23
5.2 闭包 X+ 及其运算
书 86
问题 闭包定义闭包求法闭包运用
定义: X ?
5 关系数据库 24
5.2 闭包 X+ 及其运算R ( U,F ) U={A,B,C,D,E,I} F={AD,ABE,BIE,CDI,EC}? (AE)+
(AE)+=ACDEI
书 86
AD EC
AEAE AEAC E
CDI
AEACDEID
5 关系数据库 25
R ( U,F ) U={A,B,C,D,E,I} F={AD,ABE,BIE,CDI,EC}? (AE)+
AEAE (AD, EC) AEACDE (CDI) AEACDEI
(AE)+=ACDEI
书 86
AE 决定的属性集就是AE的闭包记为 (AE)+
5 关系数据库 26
AE 决定的属性集合就是AE的闭包 . 记为 : (AE)+
AE的闭包 ?
求闭包就是求它所决定的属性集合
5 关系数据库 27
R(U,F) U={A,B,C,D,E,P} F={AB,CP,EA,CED}? (CE)+ , C+, E+
左部 (only) CK 书 29
(CE)+=U (C+!=U, E+ !=U) (C,E):CK
EE (EA) EAE (AB) EABE
CC (CP) CCP
CECE (CP, EA,CED) CEACDEP (AB) CEABCDEP=U
5 关系数据库 28
侯选关键字 CK
[Candidate Key] 指 它的值能决定元组值 ;
它的子集值不能决定元组值 .
即它具备主键PK的特性.
CK 书 29
主键PK是在侯选关键字 CK 中选择.
5 关系数据库 29
? 求侯选关键字 CK 方法 F Fmin
CK 书 29
1. FD 左部 (only) 属性一定是 CK
成员2. FD 左 , 右部属性可能是 CK 成员3. 与 F 中 FD 无关属性也一定是 CK 成员
5 关系数据库 30
1. R(U,F) U={C,G,N,S,T} F={CT,CSG, SN} ? Candidate Key
3. R(U,F) U={A,B,C,D,E}F={AD,ED,DB,BCD,DCA} ? Candidate Key4. R(U,F) U={A,B,C,D,E}F={ABC,CDE,BD,EA} ? Candidate Key
2. U={A,B,C,D,E,G} F={AB,CA,CDE,DG} ? Candidate Key
CK 书 29
5 关系数据库 31
1. R(U,F) U={C,G,N,S,T} F={CT,CSG, SN}? Candidate Key
左部 (only) CK 书 29
左部 (only) 是C SCK 是 C S
5 关系数据库 32
1. R(U,F) U={C,G,N,S,T} F={CT,CSG, SN}? Candidate Key (CS)+
左部 (only)
即 CSCSGTN
CS+=U; C+=CT; S+=SN CK: CS
CK 书 29
CSCS (CSG) (CT) (SN) CSU
5 关系数据库 33
2. R(U,F) U={A,B,C,D,E,G}
F={AB,CA,CDE,DG}
? Candidate Key
左部 (only) CK 书 29
5 关系数据库 34
2. R(U,F) U={A,B,C,D,E,G} F={AB,CA,CDE,DG}
? Candidate Key C+, (CD)+ , D+
左部 (only)
AA (AB) AAB
CC (CA) CCA( AB) CCAB
DD (DG) DDG
CDCD (CDE)(CA) (DG) CDCDEAG ( AB) CDABCDEG=U
CD+=U; C+=CAB; D+=DG CK: CD
CK 书 29
5 关系数据库 35
3. R(U,F) U={A,B,C,D,E} F={AD
,ED,DB,BCD,DCA} ?
Candidate Key
左部 (only) CK 书 29
左部 (only) 是CE且 (CE)+=UCK 是 CE
5 关系数据库 36左 , 右部属性
4. R(U,F) U={A,B,C,D,E}
F={ABC,CDE,BD,EA} ?
Candidate Key
左部 (only) 无 .
CK 是由左 , 右部属性组成
5 关系数据库 37
AA (ABC) AABC ( BD)
AABCD (CDE) AABCDE=U
左 , 右部属性
4. R(U,F) U={A,B,C,D,E} F={ABC,CDE,BD,EA} ? Candidate Key A+,(CD)+ , B+, E+, (BC)+
CK: A, CD, E , BC
EE (EA) EEA (ABC) EEABC (BD) EABCDE=U
BB (BD) BBD
CDCD (CDE) CDCDE (EA) CDCDEA (ABC) CDABCDE=U
BCBC (BD) BCBCD
5 关系数据库 38
? 求侯选关键字 CK 方法 F Fmin
CK 书 29
1. FD 左部 (only) 属性一定是 CK
成员2. FD 左 , 右部属性可能是 CK 成员3. 与 F 中 FD 无关属性也一定是 CK 成员
5 关系数据库 39
最小函数 (FD) 集合 Fmin
例 1 、 R(U,F)
U={A,B,C,D,E,G}
F={ABC,CA,BCD,
ACDB,DEG , BE C,CG BD,
CE AG} ? Fmin
函数依赖应用举例之二 求 Min FD 集
5 关系数据库 40
F={ABC,CA,BCD,ACDB,DEG , BE C , CG BD , CE AG}
F1={ ABC,CA,BCD,ACDB, DEG , BE C , CG BD , CE AG }
DE , D G ,
CG B , CG D ,CE A , CE G }
2. 去掉 F1左部的多余属性得 F2
CA
CE A
CE A ACD 少 A
A
1. 将 F 中 FD右边属性单一化
5 关系数据库 41
3 、去掉 F2中多余的 FD
故去掉 CGD 或 CG->B得 F3
F3比 F2少一项
2. 去掉 F1左部的多余属性得 F2 F2={ABC,CA,BCD, CDB,DE,D G, BE C,CG B, CG D,CE G}CG DCG B
设去掉 CG B ( CG)+= CGDABE=U
故 CG->B 可去掉
设去掉 CGD ( CG)+= CGBADE = U
故 CG D 可去掉
5 关系数据库 42
例 2 、 F={ABC , EP A , D H , AB E , CDE P , D G , ABC G
GP B , HB P , ABC P , A C }
? Fmin
ABC P 改为 ABC G 改为
ABC
A C
F2: 去掉 ABC
F1= 右部单一化 FD
F3: 分别假设去掉 AB->P 和 AB->G 计算 (AB)+
AB P AB G
AB G
AB P
C
C
5 关系数据库 43
求 Fmin 的方法
1 、使 F 中每一个 FD 右部属性单一化
2 、去掉各 FD 左部多余的属性
若有 X A 而 XY A , 则 Y 是多余的
若有 X->Y 而 XYZ A ,则 Y 是多余的
3 、去掉多余的 FD
设去掉 X Y ,再求 X+
若 X+ 包含 Y ,则 X Y 是多余
5 关系数据库 44
练习 F={E G , G E , F EG , H EG , FH E}
? Fmin•右部单一得 F1 有七项•去掉左部多余属性得 F2 有六项•去掉多余 FD 得 F3 有四项
FH E
Fmin ={E G , G E , F E , H G}
5 关系数据库 45
最小 FD 集 Fmin 应满足的条件:
( 1 ) F 中每一个 FD 的右边都是单属性
( 2 ) F 中任一 FD , X A
其 F-{X A} 与 F 不等价
( 即缺任何一个 FD 都与原 F 不等价 )
( 3 ) F 中任一个 FD , X A , Z 是X 的子集, ( F-{X A} ) ∪ {Z A} 与 F 不等价
即 Z X , X A 无法用 Z A 替代
5 关系数据库 46
( 1 ) 分解得 F={A B , A C , B A , B C , C A} ( 2 )判别每个 FD
设 G=F-{A B} A+G=AC
练习 1 F={A BC , B AC , C A} ? Fmin
G=F-{A C} A+G=ABCA C
G=F-{B A} B+G =ABCB A
G=F-{B C} B+G =B
G=F-{C A} C+G =C
5 关系数据库 47
练习 2
F={BE G , BD G , CDE AB ,
CD A , CE G , BC A ,
B D , C D }
? FminCE A CEB
5 关系数据库 48
作业一、求 CK ? 1,3 题 U={A,B,C,D,E} 2 题 U={A,B,C,D,E,G}
1 、 F={AD,ED,DB,BCD,DCA}
2 、 F={AB C ,D EG,C A , BD C }
3 、 F={E A , CD E , B D , A BC}
二、求 Fmin?
1 、 F={ABD AC,C BE,AD BF,B E}
2 、 F={A BC , B C , A B , AB C}
5 关系数据库 49
5.3 关系模式分解
问题 分解方案选择方案选择依据
5 关系数据库 50
例 : 学生宿舍表
SL ──────────────────SL ────────────────── SnoSno Sdept Sdept Sloc Sloc
────────────────── ────────────────── 95001 CS A95001 CS A 95002 IS B95002 IS B 95003 MA C95003 MA C 95004 IS B95004 IS B 9500595005 PH PH B B ────────────────── ──────────────────
5 关系数据库 51
方案 1. SL 分解为下面三个关系模式: SN(Sno) SD(Sdept) SO(Sloc)SN(Sno) SD(Sdept) SO(Sloc)
SNSN ───── ───── SD SD ───── ───── SO SO ────── ──────
Sno Sdept SlocSno Sdept Sloc ────── ────── ──────────── ────── ──────
95001 CS A95001 CS A 95002 IS B95002 IS B 95003 MA C95003 MA C 95004 PH ─────95004 PH ───── 95005 ──────95005 ────── ────── ──────
问题 : 信息丢失
5 关系数据库 52
方案 2 、 SL 分解为下面二个关系模式:
NL(Sno, Sloc)NL(Sno, Sloc) DL(Sdept, Sloc)DL(Sdept, Sloc)
NLNL ──────── ──────── DLDL ──────── ──────── Sno Sloc Sdept SlocSno Sloc Sdept Sloc ───────── ──────── ───────── ──────── 95001 A CS A95001 A CS A 95002 B 95002 B IS B IS B 95003 C MA C95003 C MA C 95004 B PH B95004 B PH B 95005 B ───────95005 B ─────── ────────── ──────────
5 关系数据库 53
NL DLNL DL ───────────── ───────────── Sno Sloc Sdept Sno Sloc Sdept ───────────── ───────────── 95001 A CS 95001 A CS 95002 B IS95002 B IS 95002 B PH95002 B PH 95003 C MA 95003 C MA 95004 B IS95004 B IS 95004 B PH95004 B PH 95005 B IS 95005 B IS 95005 B PH 95005 B PH
元组增加了,信息丢失了
5 关系数据库 54
方案方案 3. 3. 将将 SLSL 分解为下面二个关系模式:分解为下面二个关系模式: ND(Sno, Sdept)ND(Sno, Sdept)
NL(Sno, Sloc)NL(Sno, Sloc)
NDND ──────────── ──────────── NLNL ────────── ──────────
Sno Sdept Sno Sloc Sno Sdept Sno Sloc
──────────── ────────── ──────────── ──────────
95001 CS 95001 A 95001 CS 95001 A
95002 IS 95002 B 95002 IS 95002 B
95003 MA 95003 C 95003 MA 95003 C
95004 IS 95004 B 95004 IS 95004 B
95005 PH 95005 B 95005 PH 95005 B ──────────── ─────────────────────── ───────────
5 关系数据库 55
ND NL ND NL ────────────── ────────────── Sno Sdept SlocSno Sdept Sloc ────────────── ────────────── 95001 CS A95001 CS A 95002 IS B95002 IS B 95003 MA C95003 MA C 95004 CS A95004 CS A 95005 PH B95005 PH B
────────────── ──────────────与与 SLSL 关系一样,因此没有丢失信息关系一样,因此没有丢失信息 ,, 数据无损数据无损
5 关系数据库 56
A
a1a2a3a4
B
b1b1b2b3
C
c1c1c2c1
且 F={A B , B C}
书 95
A
a1a2a3a4
B
b1b1b2b3
A
a1a2a3a4
C
c1c1c2c1
R1(A,B)πA,B(R)
R2(A,C)πA,C(R)
R (A,B,C)
分解方案一
5 关系数据库 57
A
a1a2a3a4
B
b1b1b2b3
C
c1c1c2c1
且 F1={A B}
书 95
R1(A,B) R2(A,C) R (A,B,C)
R1∞R2
1
具有无损连接性1 具有依赖保持性 ≠2 具有无损连接性 =
A
a1a2a3a4
B
b1b1b2b3
A
a1a2a3a4
C
c1c1c2c1
5 关系数据库 58
A
a1a2a3a4
B
b1b1b2b3
C
c1c1c2c1
且 F={A B , B C}
书 95
A
a1a2a3a4
B
b1b1b2b3
B
b1b2b3
C
c1c2c1
R (A,B,C) R1(A,B)πA,B(R)
R3(B,C)πB,C(R)
分解方案二
5 关系数据库 59
A
a1a2a3a4
B
b1b1b2b3
C
c1c1c2c1
且 F2={A B , B C}
书 95
R1(A,B) R3(B,C)R (A,B,C)
R1∞R3
2
具有无损连接性1 具有依赖保持性 =2 具有无损连接性 =
B
b1b2b3
C
c1c2c1
A
a1a2a3a4
B
b1b1b2b3
5 关系数据库 60
A
a1a2a3a4
B
b1b1b2b3
C
c1c1c2c1
且 F={A B , B C}
书 95
R (A,B,C) R2(A,C)πA,C(R)
R3(B,C)πB,C(R)
B
b1b2b3
C
c1c2c1
A
a1a2a3a4
C
c1c1c2c1
分解方案三
5 关系数据库 61
A
a1a1a2a2a3a4a4
B
b1b3b1b3b2b1b3
C
c1c1c1c1c2c1c1
且 F3={B C}
书 95
R2(A,C) R3(B,C)
≠R (A,B,C)
R2∞R3
1 具有依赖保持性 ≠2 具有无损连接性≠
A
a1a2a3a4
C
c1c1c2c1
B
b1b2b3
C
c1c2c1
5 关系数据库 62
设关系模式 R(U ,F) , 一个分解 ρ ={ R1,R2,…,Rk }
若 r =r1∞r2…∞rk 称分解 ρ 满足函数依赖集的无损连接性
即 分解具有无损连接性
5 关系数据库 63
1. 自然连接判断
2.构造表格法
3. ∩ — 判别式
分解具有无损连接性判别方法
5 关系数据库 64
1. 利用构造表格法
A1 A2…….
R1 a1 当 A1 属于 R1 a 列号
R2 b21 当 A1 不属于 R 2 b 行列号
利用 F 中的 FD 修改 , 若某行全 a, 则无损2. 若二元 ρ={R1,R2}R1 ∩ R2R1 –R2 或 R2 –R1 满足 FD 则无损
无损连接性判定方法
5 关系数据库 65
构造表格法判“无损”
A B C
AB a1 a2
AC a1 a3
1
R1 ∩ R2=A 交 差R1 — R2=B A B 无损R2 —R1=C
F 中 : AB
第二行全 a, 是具有“无损连接性”
b22 a2
b13
5 关系数据库 66
A B C
AB a1 a2
BC a2 a3
2
第一行全 a, 则无损
R1 ∩ R3=B B CR1- R3 =A 交 差R3 – R1 =C 则无损
b21
b13
F 中 : B C
a3
5 关系数据库 67
A B C
AC a1 b12 a3
BC b21 a2 a3
无全 a 行 有损
R2∩ R3=C
R2 - R3 =A
R3 – R2 =B
3
有损
5 关系数据库 68
例 2 设 R(城市 C ,街道 S ,邮编 Z ) 且 F={ (C,S) Z, Z C }
R 分解为 R1(S ,Z) R2 (C,Z)
C S Z
SZ a2 a3
CZ a1 a3
b11
b22
Z C
第一行为全 a, 具有无损连接性
a1
5 关系数据库 69
F={Sh->Sn ,Sh->Dept ,Dept->Daddr}
分解为下面几种是否具有无损连接性
ρ1={ R1(Sh ,Sn) , R2(Dept ,Daddr) }
ρ2={ R3(Sh ,Sn ,Dept) , R2(Dept ,Daddr) }
Sh Sn Dept Daddr
S1 AB CS D1
S2 CD CS D1
S3 EF MA D2
S4 EF PHY D3
练习
5 关系数据库 70
Sh Sn Dept Da
Sh Sn Dept a1 a2 a3
Dept Da b21 b22 a3 a4
R2 ∩ R3= Dept R2 – R3 =Daddr ∩ — 无损
2
练习 3 R(Sh,Sn,Dept,Daddr)
b14
F 中 : Dept Da第一行全 a, 是“无损”
a4
5 关系数据库 71
5.4 关系模式规范化
5 关系数据库 72
5.4 关系模式规范化
户名 水电费
丁一 36.00 120.00
马二 45.00 240.00
水电费非原子项,分割为水费,电费
户名 水费 电费
丁一 36.00 120.00
马二 45.00 240.00
定义:如果关系 R 的所有属性都是不可再分的数据项,称该关系属于第一范式,记为 R 1NF
5 关系数据库 73
R(Sh,Sn,Sex,Ch,Grade) PK: (Sh,Ch)
Sh Sn / Sex
(sh,ch) Grade
(Sh,Ch) Sn / Sex / Grade
非主属性主属性
定义: R 为第一范式,且 R 中每个非主属性完全函数依赖 R 的某候选键,则 R 2NF
R1(Sh,Sn,Sex )R2 ( Sh,Ch,Grade)
5 关系数据库 74
学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)
学生(学号,姓名,性别,所在城市,长途区号)
课程(课程号,学期,学分)成绩(学号,课程号,成绩)
定义: R 为第二范式,且 R 中每个非主属性都不传递依赖 R 的某候选键,
学生(学号,姓名,性别,所在城市 )城市(所在城市,长途区号)
R 2NF
则 R 3NF
5 关系数据库 75
R(城市 C ,街道 S ,邮编 Z ) 且 F={ (C,S)->Z, Z->C }
CK : ( C , S )
分解为 ZC ( Z , C ), SZ ( S , Z )
定义: R 为第一范式,且每个属性都不传递依赖于 R 的候选键,
因有 Z—>C Z 是决定因素,但不是键
R BCNF
5 关系数据库 76
1NF
R
2NF
3NF
BCNF
属性分解
消除非主属性对键的部分函数依赖
消除非主属性对键的传递函数依赖
消除主属性对键的传递函数依赖
5 关系数据库 77
例: W( 日期 D,工号 G,姓名 N,工种 A,
定额 B,超额 C,车间 E,车间主任 F) PK: (D,G)
W1 ( D , G , C )
W2 ( G , N , A ,E )
W3 ( A , B )
W4 ( E , F )
保持 , 无损 3NF ?
5 关系数据库 78
D G C N A E B F DGC a1 a2 a3GNAE a2 a4 a5 a6 AB a5 a7 EF a6 a8
a4 a5 a6 a7 a8
G N
G A AB
E FG E
5 关系数据库 79
设 R ( U , F )
F={B G,CE B,CA,CE G,B D ,CD}
1. 将其保持 FD 分解 ,实现 3NF 的方法
• 若 FFmin
•F 中 FD 左部相同 ,( 含右部 ) 构成子模式 .
R1: U1=BDG R2: U2=ACD R3: U3=BCEG
5 关系数据库 80
练习 1 设 R ( U , F )
U ={C , T , H , R , S , G}
F={CS G,C T , TH R,HR C , HS R}
将其保持 FD 分解实现 3NF
• 对 F 中每个 Xi Ai 都构成一个关系子模式
输出 ρ ={ R1( C , S , G ),R2(C ,T ),R3( T , H, R),R4(H , R, C),R5( H, S, R) }
将上例按无损连接,依赖保持性分解为3NF
5 关系数据库 81
3 、若 2 判定不是无损连接性,
则令 ρ = ρ∪ {x}
X 是 R 的候选关键字。
5 关系数据库 82
练习 设有教学管理 DB ,其属性为:
学号 Sh 课程号 Ch 成绩 G 教师 TN 系别 D
若每门课程只有一位教师,每位教师教 多 门课;教师仅属一个系,无重名。
1 、根据上述语义,确定 FD 集 F ;
2 、用上述属性组成一个关系模式,为该模式说明增,删异常 ;
3 、分解为依赖保持,无损连接的 3NF
5 关系数据库 83
解:
1 、 F={ ( Sh ,Ch ) G , ChTN ,TN D}
2 、关系模式为 1NF ,候选关键字:
( Sh ,Ch), 属性 G , TN , D
( Sh ,Ch) TN (Ch TN )
若增设一门课,暂无学生选修(缺 Sh) 无法插入,
若教师调离,删除相关信息,却将 Ch删除。
5 关系数据库 84
={R1,R2,R3}
R1(Sh,Ch,G)
R2(Ch ,TN)
R3(TN,D) 3NF
={R1 ,RA}
R1(Sh,Ch,G)
RA( Ch ,Tn,D) 2NF
3 、 F 是 Fmin
5 关系数据库 85
1. 下表为一个职工关系模式R ( A , B , C , D , E )。
日期 A 工号 B 超额 C 车间 D 车间主任 E
1101 01 1500 组装 Li
1102 01 1000 组装 Li
1103 01 2000 组装 Li
1101 02 1800 配件 Wu使用什么方法可以提高达到第 3 范式F={AB→C B→D D→E }
R1(A,B,C) R2(B,D) R3(D,E) 3NF
5 关系数据库 86
A B C D E ABC a1 a2 a3 BD a2 a4 DE a4 a5
a4
B→D D→E
a5
F={AB→C B→D D→E }R1(A,B,C) R2(B,D) R3(D,E) 3NF
5 关系数据库 87
2 .下表是职工职务工资表职工( E ) 职务( F ) 职务工资( G )王 键 车间主任 1200张 扬 车间主任 1200王元元 工程师 800李 民 工程师 800
F={E→F F→G} R1(E,F) R2(F,G) 3NF
用什么方法可以提高达到第 3 范式
5 关系数据库 88
3. 表为一个某工程关系模式R ( A , B , C , D , E , F )用什么方法可以提高达到第 3 范式
工程号
P1P1P1P2P2
材料号
1112131114
数量
4615618
开工日期
9805 9805 9805 9811 9811
价格
250200180250150
完工日期
99029902 9902 9912 9912
R1(A,B,C) R2(A,D) R3(D,E) R4(B,F) 3NF
5 关系数据库 89
F={ A→D B→F D→E AB→C} R1(A,B,C) R2(A,D) R3(D,E) R4(B,F) 3NF
A B C D E FABC a1 a2 a3 AD a1 a4 DE a4 a5 BF a2 a6
A→D
a4
D→E
a5
B→F
a6
5 关系数据库 90
4. 关系模式 R(Sh,Ch,Grade,Tname,Taddr), 其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。
F={shch→Tn, ch→Tn ,
Tn→Ta ,shch→GR}
R1(Sh,Ch,Gr) R2(Ch,Tn) R3(Tn,Ta) 3NF
用什么方法可以提高达到第 3 范式
5 关系数据库 91
F={shch→Tn, ch→Tn , Tn→Ta ,shch→Gr}
R1(Sh,Ch,Gr) R2(Ch,Tn) R3(Tn,Ta) 3NF
Sh Ch Gr Tn TaShChGr a1 a2 a3Ch Tn a2 a4Tn Tn a4 a5
ch→Tn
a4
Tn→Ta
a5