slide1
Download
Skip this Video
Download Presentation
第五章 RDB ( 关系数据库) 5.1 函数依赖 FD 5.2 闭包及其运算 5.3 关系模式分解 5.4 关系模式规范化 NF

Loading in 2 Seconds...

play fullscreen
1 / 91

第五章 RDB ( 关系数据库) 5.1 函数依赖 FD 5.2 闭包及其运算 5.3 关系模式分解 5.4 关系模式规范化 NF - PowerPoint PPT Presentation


  • 114 Views
  • Uploaded on

第五章 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第五章 RDB ( 关系数据库) 5.1 函数依赖 FD 5.2 闭包及其运算 5.3 关系模式分解 5.4 关系模式规范化 NF' - olin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

第五章 RDB (关系数据库)

5.1 函数依赖 FD

5.2 闭包及其运算

5.3 关系模式分解

5.4 关系模式规范化 NF

5 关系数据库

slide2

问题 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

PK: ( Sh,Ch )

insert,update,delete 异常,数据冗余

5 关系数据库

slide3

解决问题 模式分解

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 关系数据库

slide4

问题

  • 函数依赖  FD
  • 函数依赖分类
  • 函数依赖特性

5 关系数据库

slide5

X——>Y

X1

X2

X3

X4

……

Xn

Y1

Y2

Y3

……

Yn

X决定Y,Y依赖于X

5 关系数据库

slide6

R(Sh,Sn,Sex,Ch,Grade)

PK: (Sh,Ch)

(Sh,Ch)  Sn / Sex / Grade

Sh  Sn / Sex

Sn/Sex对(Sh,Ch) Pfd 部分依赖

5 关系数据库

slide7

R(Sh,Sn,Sex,Ch,Grade)

PK: (Sh,Ch)

(Sh,Ch)  Sn / Sex / Grade

(sh,ch)  Grade

Grade对(Sh,Ch) Ffd 完全依赖

5 关系数据库

slide8

Ex. S (Sh , Bj , Bad)

ShBj , BjBad

Sh  Bad

Sh Bj Bad

Bad对Sh tfd传递依赖

5 关系数据库

slide9

R (U,F) Relation 关系

U Property Set  属性集合

F FD Set  函数依赖集合

Pk: Primary Key  主键

Fk: Foreign Key  外键

5 关系数据库

slide10

W ( 日期D ,工号G,姓名N,工种A,定额B,超额C,车间E,车间主任F )

PkPrimary Key 主键

完全函数依赖 fFD

部分函数依赖 pFD

传递函数依赖 tFD

5 关系数据库

slide11

(D,G)  C

fFD

A B

tFD

EF

W( 日期D ,工号G,姓名N,

工种A,定额B,超额C,

车间E,车间主任F )

FD

PK: (D,G)

(D,G)N/A/B/C/E/F

pFD

G  N/A/ E

5 关系数据库

slide12

f

(D,G)

C

FD

W( 日期D ,工号G,姓名N,

工种A,定额B,超额C,

车间E,车间主任F )

PK: (D,G)

p

N/A/E

(D,G)

t

G  N/A/ E

B

G

AB

三类函数依赖FD表示方法

5 关系数据库

slide13

1.下表是职工职务工资表R1

职工(E) 职务(F) 职务工资(G)

王 键 车间主任 1200

张 扬 车间主任 1200

王元元 工程师 800

李 民 工程师 800

关系模式R1(E,F,G) 试述:

(1)指出 R1的主键

(2)指出是否存在部分函数依赖

(3)指出是否存在传递函数依赖。

(4)R1是否存在数据冗余、更新异常。

5 关系数据库

slide14

2. 表为一个某工程关系模式R(A,B,C,D,E,F)试述:

(1)指出 R的主键

(2)指出是否存在部分函数依赖

(3)指出是否存在传递函数依赖

(4)R是否存在数据冗余、更新异常。

工程号

材料号

数量

开工日期

完工日期

单价

P1

P1

P1

P2

P2

11

12

13

11

14

4

6

15

6

18

9805

9805 9805 9811 9811

9902

9902 9902 9912 9912

250

200

180

250

150

5 关系数据库

slide15

2a. 表为一个某工程关系模式R(A,B,C,D,E,F)试述:

(1)R是否满足1NF,为什么?

(2)指出 R的主键

(3)指出是否存在部分函数依赖

(4)指出是否存在传递函数依赖

(5)R是否存在数据冗余、更新异常。

*(6)使用什么方法可以进一步提高范式,可达到第几范式

工程号

材料号

数量

开工日期

完工日期

价格

P1

P1

P1

P2

P2

11

12

13

11

14

4

6

15

6

18

9805

9805 9805 9811 9811

9902

9902 9902 9912 9912

250

200

180

250

150

YES

AB

AB→D A→D B→ F

A→ D D→ E A → E

YES

5 关系数据库

slide16

3.关系模式R(Sh,Ch,Grade,Tname,Taddr),其属性分别

表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。

1)指出 R的主键

3)指出是否存在部分函数依赖

4)指出是否存在传递函数依赖。

5)R是否存在数据冗余、更新异常。

5 关系数据库

slide17

3a. 设关系模式R(Sh,Ch,Grade,Tname,Taddr),其属性分别

表示学生学号、选修课程的编号、成绩、任课教师姓名、

教师地址等意义。如果规定,每个学生每学一门课程只有

一个成绩,每门课程只有一个教师任课,每个教师只有一

个地址(此处不允许教师同名同姓)。

1)R是否满足1NF,为什么?

2)指出 R的主键

3)指出是否存在部分函数依赖

4)指出是否存在传递函数依赖

5)R是否存在数据冗余、更新异常。

*6)使用什么方法可以进一步提高范式,可达到第几范式

YES

sh,ch

shch→ Tn ch→ Tn

ch→ Tn Tn→Ta

YES

5 关系数据库

slide18

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 关系数据库

slide19

试述:(1) R是否满足1NF,为什么?(2) 指出 R的主键(3) 指出是否存在部分函数依赖(4) 指出是否存在传递函数依赖。(5)R是否存在数据冗余、更新异常。*(6)使用什么方法可以进一步提高范式,可达到第几范式

函数依赖应用举例

5 关系数据库

slide20

4a.下表为一个职工关系模式R(A,B,C,D,E)。日期(A)工号(B)超额(C)车间(D)车间主任(E)(1) R是否满足1NF,为什么?

(2) 指出 R的主键

(3) 指出是否存在部分函数依赖 (4) 指出是否存在传递函数依赖。 (5)R是否存在数据冗余、更新异常。*(6)使用什么方法可以进一步提高范式,可达到第几范式

Yes

PK: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 关系数据库

slide21

FD Armstrong

R( U )

xy

自反律

xy

xzyz

增广律

xy

yz

xz

传递律

函数依赖特性

5 关系数据库

slide22

FD Armstrong

R(U)

xy

xz

xyz

合并律

xy

xz

xyz

分解律

xy

ywz

xwz

伪传递律

函数依赖特性

5 关系数据库

slide23

5.2 闭包X+及其运算

闭包定义

闭包求法

闭包运用

问题

定义:X  ?

书86

5 关系数据库

slide24

5.2 闭包X+及其运算

R ( U,F )

U={A,B,C,D,E,I}

F={AD,ABE,BIE,CDI,EC}

? (AE)+

AD

CDI

EC

AEACDEI

AEAE

AEAC E

D

(AE)+=ACDEI

书86

5 关系数据库

slide25

R ( U,F )

U={A,B,C,D,E,I}

F={AD,ABE,BIE,CDI,EC}

? (AE)+

AEAE (AD, EC) AEACDE

(CDI) AEACDEI

AE决定的属性集就是

AE的闭包记为(AE)+

(AE)+=ACDEI

书86

5 关系数据库

slide26

AE的闭包 ?

AE决定的属性集合就是

AE的闭包. 记为: (AE)+

求闭包就是求它所决定的属性集合

5 关系数据库

slide27

R(U,F)

U={A,B,C,D,E,P}

F={AB,CP,EA,CED}

? (CE)+ , C+, E+

CECE (CP, EA,CED) CEACDEP

(AB) CEABCDEP=U

CC (CP) CCP

EE (EA) EAE (AB) EABE

(CE)+=U (C+!=U, E+ !=U) (C,E):CK

左部(only)

CK书29

5 关系数据库

slide28

侯选关键字 CK

[Candidate Key]指

它的值能决定元组值;

它的子集值不能决定元组值.

即它具备主键PK的特性.

主键PK是在侯选关键字 CK中选择.

CK书29

5 关系数据库

slide29

?求侯选关键字CK方法

F Fmin

1. FD左部(only)属性一定是CK成员

2. FD左,右部属性可能是CK成员

3. 与F中FD无关属性也一定是CK成员

CK书29

5 关系数据库

slide30

1. R(U,F) U={C,G,N,S,T}

F={CT,CSG, SN} ? Candidate Key

2. U={A,B,C,D,E,G}

F={AB,CA,CDE,DG} ? Candidate Key

3. R(U,F) U={A,B,C,D,E}

F={AD,ED,DB,BCD,DCA}

? Candidate Key

4. R(U,F) U={A,B,C,D,E}

F={ABC,CDE,BD,EA}? Candidate Key

CK书29

5 关系数据库

slide31

1. R(U,F) U={C,G,N,S,T}

F={CT,CSG, SN}

? Candidate Key

左部(only) 是CS

CK 是 CS

左部(only)

CK书29

5 关系数据库

slide32

1. R(U,F) U={C,G,N,S,T}

F={CT,CSG, SN}

? Candidate Key (CS)+

CSCS(CSG) (CT) (SN)CSU

即CSCSGTN

CS+=U; C+=CT; S+=SN

CK: CS

左部(only)

CK书29

5 关系数据库

slide33

2. R(U,F) U={A,B,C,D,E,G}

F={AB,CA,CDE,DG}

? Candidate Key

左部(only)

CK书29

5 关系数据库

slide34

2. R(U,F) U={A,B,C,D,E,G}

F={AB,CA,CDE,DG}

? Candidate Key C+,(CD)+,D+

AA (AB) AAB

CC (CA) CCA( AB) CCAB

CDCD (CDE)(CA) (DG) CDCDEAG

( AB)CDABCDEG=U

DD (DG) DDG

CK: CD

CD+=U; C+=CAB; D+=DG

左部(only)

CK书29

5 关系数据库

slide35

3. R(U,F) U={A,B,C,D,E} F={AD

,ED,DB,BCD,DCA} ? Candidate Key

左部(only) 是CE且(CE)+=U

CK 是 CE

CK书29

左部(only)

5 关系数据库

slide36

4. R(U,F) U={A,B,C,D,E} F={ABC,CDE,BD,EA} ? Candidate Key

左部(only) 无.

CK 是由左,右部属性组成

左,右部属性

5 关系数据库

slide37

4. R(U,F) U={A,B,C,D,E}

F={ABC,CDE,BD,EA} ? Candidate Key

A+,(CD)+ , B+, E+, (BC)+

BCBC (BD) BCBCD

AA (ABC) AABC ( BD)

AABCD (CDE) AABCDE=U

CDCD (CDE)CDCDE (EA)

CDCDEA (ABC) CDABCDE=U

BB (BD) BBD

EE (EA)EEA (ABC)EEABC

(BD) EABCDE=U

CK: A, CD, E , BC

左,右部属性

5 关系数据库

slide38

?求侯选关键字CK方法

F Fmin

1. FD左部(only)属性一定是CK成员

2. FD左,右部属性可能是CK成员

3. 与F中FD无关属性也一定是CK成员

CK书29

5 关系数据库

slide39

最小函数(FD)集合 Fmin

例1、 R(U,F)

U={A,B,C,D,E,G}

F={ABC,CA,BCD,

ACDB,DEG,

BE C,CG BD,

CE AG}? Fmin

函数依赖应用举例之二 求Min FD集

5 关系数据库

slide40

F={ABC,CA,BCD,ACDB,DEG,BE C,CG BD,CE AG}

1.将F中FD右边属性单一化

F1={ ABC,CA,BCD,ACDB,

DEG,

BE C,

CG BD,

CE AG }

CA

A

DE,D G,

CG B, CG D,

CE A, CE G }

CE A

2.去掉F1左部的多余属性得F2

CE A

ACD少A

5 关系数据库

slide41

2.去掉F1左部的多余属性得F2 F2={ABC,CA,BCD, CDB,DE,D G,

BE C,CG B, CG  D,CE G}

CG  D

CG B

3、去掉F2中多余的FD

设去掉CGD (CG)+= CGBADE = U

故CG D可去掉

设去掉CG B (CG)+= CGDABE=U

故CG->B可去掉

故去掉CGD或CG->B得F3

F3比F2少一项

5 关系数据库

slide42

例2、 F={ABC , EP A , D H ,

AB E ,CDE P ,D G ,ABC G

GP B ,HB P ,ABC P,A C }

? Fmin

ABC

C

AB G

AB P

A C

C

F1=右部单一化 FD

F2: 去掉 ABC

AB  P

AB  G

ABC P 改为

ABC G 改为

F3:分别假设去掉AB->P和AB->G计算(AB)+

5 关系数据库

slide43

求 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 关系数据库

slide44

练习 F={E G , G E, F EG ,

H EG , FH E}

? Fmin

FH E

  • 右部单一得F1有七项
  • 去掉左部多余属性得F2有六项
  • 去掉多余FD得F3有四项

Fmin ={E G , G E, F E ,H G}

5 关系数据库

slide45

最小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 关系数据库

slide46

练习1F={A BC,B AC,C A} ?Fmin

(1) 分解得F={A B,A C,B A,

B C,C A}(2)判别每个FD

设G=F-{A B} A+G=AC

G=F-{A C} A+G=ABC

A C

G=F-{B A} B+G =ABC

B A

G=F-{B C} B+G =B

G=F-{C A} C+G =C

5 关系数据库

slide47

练习2

F={BE G , BD G,CDE AB,

CD A , CE G,BC A,

B D , C D }

?Fmin

CEA CE

B

5 关系数据库

slide48

作业

一、求CK?

1,3题U={A,B,C,D,E} 2题U={A,B,C,D,E,G}

1、 F={AD,ED,DB,BCD,DCA}

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 关系数据库

slide49

5.3 关系模式分解

分解方案选择

方案选择依据

问题

5 关系数据库

slide50

例:学生宿舍表

SL ──────────────────

Sno Sdept Sloc

──────────────────

95001 CS A

95002 IS B

95003 MA C

95004 IS B

95005 PH B

──────────────────

5 关系数据库

slide51

方案1. SL分解为下面三个关系模式:

  • SN(Sno) SD(Sdept) SO(Sloc)

SN ───── SD ───── SO ──────

Sno Sdept Sloc

────── ────── ──────

95001 CS A

95002 IS B

95003 MA C

95004 PH ─────

95005 ──────

──────

问题:信息丢失

5 关系数据库

slide52

方案2、SL分解为下面二个关系模式:

  • NL(Sno, Sloc)
  • DL(Sdept, Sloc)
  • NL ──────── DL ────────
  • Sno Sloc Sdept Sloc
  • ───────── ────────
  • 95001 A CS A
  • 95002 B IS B
  • 95003 C MA C
  • 95004 B PH B
  • 95005 B ───────
  • ──────────

5 关系数据库

slide53

NL DL

─────────────

Sno Sloc Sdept

─────────────

95001 A CS

95002 B IS

95002 B PH

95003 C MA

95004 B IS

95004 B PH

95005 B IS

95005 B PH

元组增加了,信息丢失了

5 关系数据库

slide54

方案3. 将SL分解为下面二个关系模式:

  • ND(Sno, Sdept)
  • NL(Sno, Sloc)
  • ND ──────────── NL ──────────
  • Sno Sdept Sno Sloc
  • ──────────── ──────────
  • 95001 CS 95001 A
  • 95002 IS 95002 B
  • 95003 MA 95003 C
  • 95004 IS 95004 B
  • 95005 PH 95005 B
  • ──────────── ───────────

5 关系数据库

slide55

ND NL

──────────────

Sno Sdept Sloc

──────────────

95001 CS A

95002 IS B

95003 MA C

95004 CS A

95005 PH B

──────────────

与SL关系一样,因此没有丢失信息,数据无损

5 关系数据库

slide56

A

B

C

A

B

A

C

a1

a2

a3

a4

b1

b1

b2

b3

c1

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

a1

a2

a3

a4

c1

c1

c2

c1

分解方案一

R1(A,B)

πA,B(R)

R2(A,C)

πA,C(R)

R (A,B,C)

且F={A  B,B  C}

书95

5 关系数据库

slide57

A

B

C

A

B

A

C

a1

a2

a3

a4

b1

b1

b2

b3

c1

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

a1

a2

a3

a4

c1

c1

c2

c1

1

R1∞R2

R2(A,C)

R1(A,B)

R (A,B,C)

且F1={A  B}

具有无损连接性

1具有依赖保持性≠

2具有无损连接性 =

书95

5 关系数据库

slide58

A

B

A

B

C

B

C

b1

b2

b3

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

c1

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

分解方案二

R1(A,B)

πA,B(R)

R3(B,C)

πB,C(R)

R (A,B,C)

且F={A  B,B  C}

书95

5 关系数据库

slide59

A

B

A

B

C

B

C

2

b1

b2

b3

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

c1

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

R1∞R3

R1(A,B)

R3(B,C)

R (A,B,C)

且F2={A  B,B  C}

具有无损连接性

1具有依赖保持性=

2具有无损连接性 =

书95

5 关系数据库

slide60

A

B

C

B

A

C

C

b1

b2

b3

c1

c2

c1

a1

a2

a3

a4

b1

b1

b2

b3

c1

c1

c2

c1

a1

a2

a3

a4

c1

c1

c2

c1

分解方案三

R2(A,C)

πA,C(R)

R3(B,C)

πB,C(R)

R (A,B,C)

且F={A  B,B  C}

书95

5 关系数据库

slide61

A

B

C

B

A

C

C

b1

b2

b3

c1

c2

c1

a1

a1

a2

a2

a3

a4

a4

b1

b3

b1

b3

b2

b1

b3

c1

c1

c1

c1

c2

c1

c1

a1

a2

a3

a4

c1

c1

c2

c1

R2∞R3

R2(A,C)

R3(B,C)

且F3={B  C}

≠R (A,B,C)

1具有依赖保持性≠

2具有无损连接性≠

书95

5 关系数据库

slide62

设关系模式R(U ,F) ,一个分解

ρ ={ R1,R2,…,Rk}

若r =r1∞r2…∞rk 称分解 ρ 满足函数依赖集的无损连接性

即 分解具有无损连接性

5 关系数据库

slide63

分解具有无损连接性判别方法

  • 自然连接判断
  • 构造表格法
  • 3. ∩  —判别式

5 关系数据库

slide64

无损连接性判定方法

1. 利用构造表格法

A1 A2…….

R1 a1 当A1属于R1 a列号

R2 b21 当A1不属于R 2 b行列号

利用F中的FD修改,若某行全a,则无损

2.若二元 ρ={R1,R2}

R1 ∩ R2R1 –R2 或 R2 –R1 满足FD 则无损

5 关系数据库

slide65

构造表格法判“无损”

1

A B C

AB a1 a2

AC a1 a3

b13

a2

b22

F中: AB

第二行全a,是具有“无损连接性”

R1 ∩ R2=A 交 差

R1 — R2=B A  B 无损

R2 —R1=C

5 关系数据库

slide66

第一行全a,则无损

2

A B C

AB a1 a2

BC a2 a3

b13

a3

b21

F中: B  C

R1 ∩ R3=B B  C

R1- R3 =A 交  差

R3 – R1 =C 则无损

5 关系数据库

slide67

3

A B C

AC a1 b12 a3

BC b21 a2 a3

无全a行 有损

R2∩ R3=C

R2 - R3 =A

R3 – R2 =B

有损

5 关系数据库

slide68

例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

a1

ZC

b22

第一行为全a,具有无损连接性

5 关系数据库

slide69

Sh Sn Dept Daddr

S1 AB CS D1

S2 CD CS D1

S3 EF MA D2

S4 EF PHY D3

练习

F={Sh->Sn ,Sh->Dept ,Dept->Daddr}

分解为下面几种是否具有无损连接性

ρ1={ R1(Sh ,Sn) , R2(Dept ,Daddr) }

ρ2={ R3(Sh ,Sn ,Dept) , R2(Dept ,Daddr) }

5 关系数据库

slide70

练习3R(Sh,Sn,Dept,Daddr)

2

Sh Sn Dept Da

Sh Sn Dept a1 a2 a3

Dept Da b21 b22 a3 a4

b14

a4

F中: Dept  Da

第一行全a,是“无损”

R2 ∩ R3= Dept R2 – R3 =Daddr ∩ — 无损

5 关系数据库

slide71

5.4 关系模式规范化

5 关系数据库

slide72

5.4 关系模式规范化

户名 水电费

丁一 36.00 120.00

马二 45.00 240.00

水电费非原子项,分割为水费,电费

户名 水费 电费

丁一 36.00 120.00

马二 45.00 240.00

定义:如果关系R的所有属性都是不可再分的数据项,称该关系属于第一范式,记为R1NF

5 关系数据库

slide73

R(Sh,Sn,Sex,Ch,Grade) PK: (Sh,Ch)

(Sh,Ch)  Sn / Sex / Grade

非主属性

主属性

(sh,ch)  Grade

Sh  Sn / Sex

R1(Sh,Sn,Sex) R2(Sh,Ch,Grade)

定义:R为第一范式,且R中每个非主属性完全函数依赖R的某候选键,则R2NF

5 关系数据库

slide74

学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)

课程(课程号,学期,学分)

成绩(学号,课程号,成绩)

学生(学号,姓名,性别,所在城市,长途区号)

R 2NF

学生(学号,姓名,性别,所在城市)

城市(所在城市,长途区号)

定义:R为第二范式,且R中每个非主属性都不传递依赖R的某候选键,

则R 3NF

5 关系数据库

slide75

R(城市C ,街道S ,邮编Z )且 F={ (C,S)->Z, Z->C }

CK: (C,S)

因有 Z—>C Z是决定因素,但不是键

分解为 ZC(Z,C),SZ(S,Z)

定义:R为第一范式,且每个属性都不传递依赖于R的候选键,

R

BCNF

5 关系数据库

slide76

R

属性分解

1NF

消除非主属性对键的部分函数依赖

2NF

消除非主属性对键的传递函数依赖

3NF

消除主属性对键的传递函数依赖

BCNF

5 关系数据库

slide77

例: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 关系数据库

slide78

D G C N A E B F

DGC a1 a2 a3

GNAE a2 a4 a5 a6

AB a5 a7

EF a6 a8

a6

a4

a5

a7

a8

G E

G  N

E F

G A

AB

5 关系数据库

slide79

设R(U,F)

F={B  G,CE B,CA,CE G,B D ,CD}

1. 将其保持FD分解,实现3NF的方法

• 若FFmin

•F中FD左部相同,(含右部)构成子模式.

R1: U1=BDG R2: U2=ACD R3: U3=BCEG

5 关系数据库

slide80

练习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 关系数据库

slide81

3、若2判定不是无损连接性,

则令ρ = ρ∪ {x}

X是R的候选关键字。

5 关系数据库

slide82

练习设有教学管理DB,其属性为:

学号Sh 课程号Ch 成绩G 教师 TN 系别D

若每门课程只有一位教师,每位教师教 多 门课;教师仅属一个系,无重名。

1、根据上述语义,确定FD集F;

2、用上述属性组成一个关系模式,为该模式说明增,删异常;

3、分解为依赖保持,无损连接的3NF

5 关系数据库

slide83

解:

1、F={(Sh ,Ch )  G,ChTN ,TN  D}

2、关系模式为1NF,候选关键字:

(Sh ,Ch), 属性G,TN,D

(Sh ,Ch) TN (Ch  TN )

若增设一门课,暂无学生选修(缺Sh)无法插入,

若教师调离,删除相关信息,却将Ch删除。

5 关系数据库

slide84

3、F是Fmin

={R1 ,RA}

R1(Sh,Ch,G)

RA( Ch ,Tn,D) 2NF

={R1,R2,R3}

R1(Sh,Ch,G)

R2(Ch ,TN)

R3(TN,D) 3NF

5 关系数据库

slide85

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 关系数据库

slide86

A B C D E

ABC a1 a2 a3

BD a2 a4

DE a4 a5

a4

a5

B→D

D→E

F={AB→C B→D D→E }

R1(A,B,C) R2(B,D) R3(D,E) 3NF

5 关系数据库

slide87

2.下表是职工职务工资表

职工(E) 职务(F) 职务工资(G)

王 键 车间主任 1200

张 扬 车间主任 1200

王元元 工程师 800

李 民 工程师 800

用什么方法可以提高达到第3范式

F={E→F F→G}

R1(E,F) R2(F,G) 3NF

5 关系数据库

slide88

3. 表为一个某工程关系模式R(A,B,C,D,E,F)

用什么方法可以提高达到第3范式

工程号

材料号

数量

开工日期

完工日期

价格

P1

P1

P1

P2

P2

11

12

13

11

14

4

6

15

6

18

9805

9805 9805 9811 9811

9902

9902 9902 9912 9912

250

200

180

250

150

R1(A,B,C) R2(A,D) R3(D,E) R4(B,F) 3NF

5 关系数据库

slide89

A B C D E F

ABC a1 a2 a3

AD a1 a4

DE a4 a5

BF a2 a6

a4

a5

a6

B→F

A→D

D→E

F={ A→D B→F D→E AB→C}

R1(A,B,C) R2(A,D) R3(D,E) R4(B,F) 3NF

5 关系数据库

slide90

4.关系模式R(Sh,Ch,Grade,Tname,Taddr),其属性分别

表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。

用什么方法可以提高达到第3范式

F={shch→Tn, ch→Tn, Tn→Ta ,shch→GR}

R1(Sh,Ch,Gr) R2(Ch,Tn) R3(Tn,Ta) 3NF

5 关系数据库

slide91

Sh Ch Gr Tn Ta

ShChGr a1 a2 a3

Ch Tn a2 a4

Tn Tn a4 a5

a4

a5

ch→Tn

Tn→Ta

F={shch→Tn, ch→Tn, Tn→Ta ,shch→Gr}

R1(Sh,Ch,Gr) R2(Ch,Tn) R3(Tn,Ta) 3NF

5 关系数据库

ad