第 6 章 关系数据库规范化理论

Click here to load reader

Upload: sebastian-rowland

Post on 02-Jan-2016

100 views

Category:

Documents


9 download

DESCRIPTION

第 6 章 关系数据库规范化理论. 教学目标 : 通过本章学习,了解不规范的关系模式存在的问题;理解函数依赖及关系规范化的相关概念,熟悉关系模式的形式化定义;掌握第一范式 (1NF) 、第二范式 (2NF) 、第三范式 (3NF) 及 BCNF 的定义及相关术语的含义;了解多值依赖及第四范式 (4NF) 的定义;理解函数依赖公理的内容,掌握属性闭包的定义及求解算法,能够正确判断关系模式的候选码及规范化程度;了解最小函数依赖集的定义及算法,了解对模式分解后无损连接性和函数依赖保持性的判断。. 第 6 章 关系数据库规范化理论. 6.1 问题的提出 6.2 关系模式的规范化 - PowerPoint PPT Presentation

TRANSCRIPT

16
SQL Server
6
6.1
6.2
6.3
6.4
6.5
6.6
6.7
SQL Server
SQL Server
S(snosnamesagessexsdeptmnamecnamescore)
1


2
3
4
5
6
7
SQL Server
SQL Server
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1


2
3
4
5
6
7
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1


2
3
4
5
6
7

SQL Server
SC(snocnnamescore)
1


2
3
4
5
6
7
SQL Server
SQL Server
SQL Server
Ssnosname

1
2








BCNF
3
4
5
6
7
Ssdeptsno(2006010120060102)(20060101)mnamesnosnoscore
SQL Server
ScnamescoreSnocnamesnoscore

1
2








BCNF
3
4
5
6
7
SQL Server
SQL Server
1
2








BCNF
3
4
5
6
7

R(U)XYU={A1A2…An}rRrXY(rtst[X]=s[X]t[Y]=s[Y])XYYXX→YX(Determinant)Y(Dependent)
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
(1) X→YY XX→Y
(2) X→YY XX→Y
(3) X→YY→XX Y
(4) YXX Y
SQL Server
X→YXX(X X)X→YYXX Y
1
2








BCNF
3
4
5
6
7
R(U)XYZR3X→Y (Y XYX)Y XY→ZZXX Y
Y XY→XX YX→Z


SQL Server
6
2.
3
(1) 11XY11X YSsno sname
(2) 1nXYn1X→Ysno→sdeptsno→sagesno→mname
(3) mnXYmnsnocnamecnamescore
1
2








BCNF
3
4
5
6
7

SQL Server
6-1 S(snosnamesagessexsdeptmnamecnamescore)
(1) sno→snamesno→ssex(snocname)→score
(2) cname→snosdept→cnamesno→cname
1
2








BCNF
3
4
5
6
7

(2)snocnamesdeptcname
SQL Server
6
2.
6-2 ()
1
2








BCNF
3
4
5
6
7


SQL Server
SQL Server
6
4.
KR(UF)KKK→UK→U(K U)KR(Candidate Key)
1
2








BCNF
3
4
5
6
7
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
“()”()
1
2








BCNF
3
4
5
6
7
SQL Server
1
2








BCNF
3
4
5
6
7
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2








BCNF
3
4
5
6
7

SQL Server
1
2








BCNF
3
4
5
6
7


SQL Server
1
2








BCNF
3
4
5
6
7


SQL Server
1
2








BCNF
3
4
5
6
7

6-3 S-L-C(UF)
U={SNOSDEPTSLOCCNOSCORE}SNOSDEPTSLOC()CNOSCORE
=(SNOCNO)
F={(SNOCNO)→SCORESNO→SDEPTSNO→SLOCSDEPT→SLOC}
={SDEPTSLOCSCORE}
2NF
SQL Server
(2)
(3) K2K()
SDEPTSLOC
SQL Server
S-L(SNOSDEPTSLOC)
1
2








BCNF
3
4
5
6
7
6-3
SQL Server
1
2








BCNF
3
4
5
6
7

6-3S-L(SNOSDEPTSLOC)SNO→SDEPTSDEPT→SLOCSLOCSNOS-L3NF
S-L
D-L(SDEPTSLOC)={SDEPT} F={SDEPT→SLOC}
S-DD-L3NF
SQL Server
SQL Server
R(UF) 1NFX→YY XXR(UF)∈BCNF
R(UF)R(UF)∈BCNF
1
2








BCNF
3
4
5
6
7

SQL Server
F={(SNOCNO)→SCORE(CNOSCORE)→SNO}
SC(SNOCNO)(CNOSCORE)SC∈BCNF
1
2








BCNF
3
4
5
6
7

6-5 STJ(STJ)STJ

(SJ)(ST)
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
BCNF
(2) 3NF
SQL Server
SQL Server
SQL Server
(1)
(2) “”“”33(0601)(0602)(0603)
(3)
SQL Server
(2) CTCCourseTeacherClass“”“”“0601”“”“0602”“”“0603”CTC“”TeacherClass
1
2
3


4
5
6
7

ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
6
1.
R(U)UXYZUZ=U-X-YR(U)r(XZ)YYXZYXXYX→→Y

R(U)XYZUZ=U-X-YrRtsrt[X]=s[X]ruv
(1) u[X]=v[X]=t[X]=s[X]
(2) u[Y]=t[Y]u[Z]=s[Z]
(3) v[Y]=s[Y]v[Z]=t[Z]
XYYX
SQL Server
1
2
3


4
5
6
7

()SDEPT→→SNOSDEPT→→CNAME
SDEPT
SNO
CNAME

SQL Server
6
1.
UX→→YY ZX∪Y=U(Z=Φ)X→→YX→→Y
1
2
3


4
5
6
7

(2) X→→YY→→ZX→→Z-Y
(3) X→→YX→→ZX→→YZ(YZ)
(4) X→→YX→→ZX→→Y∩Z(YZ)X→→Y-ZX→→Z-Y

SQL Server
R∈4NFR∈BCNF
1
2
3


4
5
6
7

6-7 SDC(SDEPTSNOCNAME)SDEPT→→SNOSDEPT→→CNAMESDEPT4NFSD(SDEPTSNO) DC(SDEPTCNAME)
4NF
SQL Server
“”“”
2NF3NF4NF5NF
5NF 4NF BCNF 3NF 2NF 1NF
1
2
3
4
5
6
7
SQL Server
SQL Server

1
2
3
4
5
6
7
SQL Server
1
2
3
4
5
6
7
SQL Server
SQL Server
6
1.
A→BB→CF={A→BB→C}A→C
1
2
3
4
5





6
7

FR(UF)XYUFX→YFX→YX→YFF|=X→Y
FF(Closure)F+
XUX→ΦF+
SQL Server
6
1.
FF+FF+R(XYZ)F={X→YY→Z}F
1
2
3
4
5





6
7
F+={X→Φ XY→Φ XZ→Φ XYZ→Φ Y→ΦZ→Φ
X→X XY→X XZ→X XYZ→X Y→Y Z→Z
X→Y XY→Y XZ→Y XYZ→Y Y→Z Φ→Φ
X→Z XY→Z XZ→Z XYZ→Z Y→YZ
X→XY XY→XY XZ→XY XYX→XY YZ→Φ
X→XZ XY→XZ XZ→XZ XYZ→XZ YZ→Y
X→YZ XY→YZ XZ→YZ XYZ→YZ YZ→Z
X→XYZXY→XYZXZ→XYZXYZ→XYZYZ→YZ}

SQL Server
Armstrong
R(UF)XYZW U(XYZWU)R(UF)
(1) A1()Y XX→Y
(2) A2()X→YXZ→YZ(XZX∪Z)
(3) A3()X→YY→ZX→Z
1
2
3
4
5





6
7

XUX→ΦF+
SQL Server
6
1.
t1t2R
A1t1[X]=t2[X]Y Xt1[Y]=t2[Y]X→Y
A2t1[XZ]=t2[XZ]t1[X]=t2[X]t1[Z]=t2[Z]
X→Yt1[Y]=t2[Y]t1[YZ]=t2[YZ]XZ→YZ
A3t1[X]=t2[X]t1[Y]=t2[Y]
t1[Y]=t2[Y]t1[Z]=t2[Z]
t1[X]=t2[X]t1[Z]=t2[Z]X→Z
1
2
3
4
5





6
7
SQL Server
1
2
3
4
5





6
7
Armstrong3

SQL Server
6
1.
R(ABCGHI)F={A→BA→CCG→HCG→IB→H}
(1) A→HA→BB→HA→H
(2) CG→HICG→HCG→ICG→HI
(3) AG→IA→CCG→IAG→I
1
2
3
4
5





6
7

SQL Server
6
2.
X→YF+X→YFY X+F+X+
1
2
3
4
5





6
7

R(UF)URFX UY UFX→YY X+

ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7

Y= A1A2…AnY X+i(i=12…n)X→AiX→Y
X→YX→Ai(i=12…n)X+Ai X+A1A2…An X+Y X+
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
(1) i=0X(i)=X(0)=X
(2) A
AFX(i)
(3) X(i+1)=X(i)∪A
(4) (5)i=i+1(2)
X(i+1)=X(i)
SQL Server
1
2
3
4
5





6
7

R(UF)U={ABCDE}F={AB→CB→DC→EEC→BAC→B}(AB)+
6.1X(0)=AB
X(1)FABABAB→CB→DX(1)=AB∪CD=ABCD
X(0)≠X(1)ABCDC→EAC→BX(2)=X(1)∪BE=ABCDE
X(2)(AB)+=ABCDE=U
SQL Server
1
2
3
4
5





6
7

R(ABCDEI)F={A→DAB→CBI→CED→IC→E}(AC)+

(2) X(1)FACA→DC→E
(3) X(1)=X(0)∪D∪E=ACDE
(4) X(0)≠ X(1)i=i+1=X(1)(2)
(5) FACDEED→I
(7) X(2)≠ X(1)FX(2)(AC)+=X(2)=ACDEI
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7


R(ABCDEI)F={A→DAB→EBI→ECD→IE→C}(AE)+
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
SQL Server
1
2
3
4
5





6
7

6.3 RFX(X R)RX
6.4 RFXRNXR
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
6
3.
6.2X→U(U=A1A2…AnR)X→Ai(i=12…n)
1
2
3
4
5





6
7

6.46.3FX→AiAi X+X+=UX→UX(X')+≠ UX
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
6
3.
R(ABCD)F={D→BB→DAD→BAC→D}R
1
2
3
4
5





6
7

ACL6.2ACR(AC)+=ACBD6.1ACR
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
6
3.
R(ABCDEP)RF={A→DE→DD→BBC→DDC→A}R
1
2
3
4
5





6
7

CELCERPNPR(CEP)+=ABCDEP6.2CEPR
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7

ALAR(A)+=ABC6.1ARFCR2NF
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7


G F+F G+
F+=G+FG
SQL Server
(3) FX→AXZF-{X→A}∪{Z→A}F
(2)F(3)F
SQL Server
(2) FXY→AFFXX+X+YYX→A
(3) X→AFF-{X→A}XX+X+AX→A
1
2
3
4
5





6
7

SQL Server

F={AB→CC→ABC→DACD→BD→EGBE→CCG→DBCE→AG}Fmin
1
2
3
4
5





6
7

(1) ()
F1={AB→CC→ABC→DACD→BD→ED→GBE→CCG→DCG→BCE→ACE→G}
(2) F1
CE→AC→AEACD→B(CD)+=ABCDEGA
F2={AB→CC→ABC→DCD→BD→ED→GBE→CCG→DCG→BC→ACE→G}
(3) F2C→ACG→B(CG)+=ABCDEG
Fmin={AB→CC→ABC→DCD→BD→ED→GBE→CCG→DCE→G}
Fmin6-13
Fmin={AB→CC→ABC→DD→ED→GBE→GCG→BCE→G}
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
6
4.
F={A→CC→AB→ACD→ACBD→A}Fmin
1
2
3
4
5





6
7

(1)
F1={A→CC→AB→AB→CD→AD→CBD→A}
(2) F1B→ABD→A
F2={A→CC→AB→AB→CD→AD→C }
(3) F2A→CC→AACB→AB→CD→AD→C
F3={A→CC→AB→AD→A}F3
A→CF3-{A→C}A+=A
C→AF3-{C→A}C+=C
B→AF3-{B→A}B+=B
D→AF3-{D→A}D+=D
F3
FFmin={A→CC→AB→AD→A}
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
3
1
2
3
4
5





6
7
SQL Server
ρF

SQL Server
A1
A2
SQL Server
(3) Ma1a2…anρρ
jji
ij
ijji
aAR
M
bAR
Î
ì
ï
SQL Server
1
2
3
4
5





6
7

R(UF)U={ABCDE}F={AB→CC→DD→E}Rρ={R1(ABC)R2(CD)R3(DE)}ρ
(1) 6-10(a)
C→DCDMb14a4
D→EDEMb15b25a5
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
(a) (b)
SQL Server
1
2
3
4
5





6
7

R(ABCDE)F={A→CB→CC→DDE→CCE→A}R1=ADR2=ABR3=BCR4=CDER5=AERρ={R1R2R3R4R5}
(1) (a)
(2) M
B→CBa2Cb13b33b13
C→DDb24b34b54a4
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
CE→ACE3Aa1
(b)
(3) a1a2a3a4a5ρ={R1R2R3R4R5}
(a) (b)
SQL Server
R1∩R2→(R1-R2) R1∩R2→(R2-R1)
R1∩R2R1R2(R1-R2)(R2-R1)(R1-R2)(R1-R2)R1R2RR1R2R1R2R1R2
SQL Server
1
2
3
4
5





6
7

R={ABC}F={A→B}ρ1={R1(AB)R2(AC)}ρ2={R1(AB)R3(BC)}
(1) 6.6ρ1
R1∩R2AB∩AC=A
R1-R2AB-AC=B
A→BR
R1-R3AB-BC=A
R3-R1BC-AB=C
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7

∏Z(F)={X→Y|X→YF+XY Z}

FRρ={R1(U1F1)R2(U2F2)…Rk(UkFk)}RFi=∏Ri(F)(F1∪F2∪…∪Fk)≡ F(i=12…k)ρ
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1
2
3
4
5





6
7

R(UF)U={ABCDE}F={AB→CC→DD→E}Rρ={R1(ABC)R2(CD)R3(DE)}ρ


∏R1(F)∪∏R2(F)∪∏R3(F)={AB→CC→DD→E}≡F
ρ
SQL Server
1
2
3
4
5





6
7

R=(ABCD{A→BB→CB→DC→A})U1=ABU2=ACDR1R2
F1=∏R1(F)={A→BB→A}
F2=∏R2(F)={A→CC→AA→D}
R1=(AB{A→BB→A})
R2=(ACD{A→CC→AA→D})
U1∩U2=AB∩ACD=A
U1-U2=AB-ACD=BA→BF
ρ
F1UF2={A→BB→AA→CC→AA→D}≡{A→BB→CB→DC→A}=F
ρ
SQL Server
1
2
3
4
5





6
7

R(ABCD)F={A→BC→D}ρ={R1(AB)R2(CD)}R1R2
F1=∏R1(F)={A→B}
F2=∏R2(F)={C→D}
R1=(AB{A→B})
R2=(CD{C→D})
U1-U2=AB
U2-U1=CD
ρ
SQL Server
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
SQL Server
(1)
(2)
(3)
SQL Server
A—B—C—D—E—
R(UF)U={ABCDE}
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server

(1) ————AB→C
(2) ————AC→E
(3) ————10AB→D
R(UF)F={AB→CAC→EAB→D}
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
(2)
AB→C
A→CF={AB→CAC→EAB→D}AA+
A+=AF={AB→CAC→EAB→D}A“”AA+AA+=AAB→CB
B→CF={AB→CAC→EAB→D}BB+
B+=BF={AB→CAC→EAB→D}B“”BB+BB+=BAB→CA
AC→EAB→D
F
SQL Server
AB→CF={AC→EAB→D}
{AB}+=ABF={AC→EAB→D}AB→DAB“”D(AB)+=ABD“”(AB)+=ABD
ABDCAB→C
F
SQL Server
LAB
RED

LRR{ABCDE}
F
SQL Server
R
R(ABCDE)R(ABCDE)2NF
R(UF)R(ABCDE)ABCDEF={AB→CAC→EAB→D}R(ABCDE)2NF
CDER(ABCDE)R(ABCDE)3NF
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
R3NFBCNFBCNFBCNF
BCNF()RBCNFF={AB→CAC→EAB→D}AC→EAC ABAC→EBCNFR(ABCDE) BCNF

BCNFAC→ER1(ACE)R2(ACBD)
R1R2RR1()“”R2()“”“”
R(ABCDE)3NF
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
1) R1(ACE)
R1{A}{C}{E}{AC}{AE}{CE}
F={AB→CAC→EAB→D}
{A}A+=A{A}“”
{C}C+=C{C}“”
{E}E+=E{E}“”
{AC}(AC)+=ACE{AC}“”EER1{AC}AC→E
{AE}(AE)+=AE{AE}“”
{CE}(CE)+=CE{CE}“”
R1(ACE)F={AC→E}
R1(ACE)BCNF
SQL Server
2) R2(ABCD)
R2{A}{B}{C}{D}{AB}{AC}{AD}{BC}{BD}{CD}
F={AB→CAC→EAB→D}
{A}A+=A{A}“”
{B}{C}{D}“”
{AB}(AB)+=ABCDE“”CDCDR2{AB}AB→CAB→D
{AC}(AC)+=ACE
{AD}(AD)+=AD
{BC}(BC)+=BC
{BD}(BD)+=BD
{CD}(CD)+=CD
R2(ABCD)F={AB→CAB→D}F={AB→CAB→D}R2(ABCD)ABR2(ABCD)BCNF
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
ISBN 978-7-301-13321-7/TP·0941 2008.2
SQL Server
XYYX

“”
6