91
5 关关关关关 1 关关关 RDB ( 关关关关关5.1 关关关关 FD 5.2 关关关关关关 5.3 关关关关关关 5.4 关关关关关关关 NF

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

  • Upload
    olin

  • View
    121

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

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

5 关系数据库 1

第五章 RDB ( 关系数据库)

5.1 函数依赖 FD

5.2 闭包及其运算

5.3 关系模式分解

5.4 关系模式规范化 NF

Page 2: 第五章  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 )

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

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

解决问题 模式分解

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

5 关系数据库 4

• 函数依赖  F D

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

问题

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

5 关系数据库 5

X1X2X3X4……Xn

Y1Y2Y3……Yn

X——>Y

X 决定 Y,Y 依赖于X

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

5 关系数据库 6

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

PK: (Sh,Ch)

(Sh,Ch) Sn / Sex / Grade

Sh Sn / Sex

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

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

5 关系数据库 7

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

PK: (Sh,Ch)

(Sh,Ch) Sn / Sex / Grade

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

(sh,ch) Grade

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

5 关系数据库 8

Ex. S (Sh , Bj , Bad) ShBj , BjBad

Bad 对 Sh tfd 传递依赖

Sh Bad

Sh Bj Bad

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

5 关系数据库 9

R (U,F) Relation  关系 U Property Set   属性集合 F FD Set   函数依赖集合 Pk: Primary Key   主键 Fk: Foreign Key   外键

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

5 关系数据库 10

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

完全函数依赖  fFD

部分函数依赖 pFD

传递函数依赖 tFD

Pk   Primary Key  主键

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

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

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

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

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

5 关系数据库 13

1 .下表是职工职务工资表 R1职工( E ) 职务( F ) 职务工资( G )王 键 车间主任 1200张 扬 车间主任 1200王元元 工程师 800李 民 工程师 800关系模式 R1 ( E , F , G ) 试述:

( 1 )指出 R1 的主键( 2 )指出是否存在部分函数依赖( 3 )指出是否存在传递函数依赖。( 4 ) R1 是否存在数据冗余、更新异常。

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

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 是否存在数据冗余、更新异常。

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

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

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

5 关系数据库 16

3. 关系模式 R(Sh,Ch,Grade,Tname,Taddr), 其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。如果规定,每个学生每学一门课程只有一个成绩,每门课程只有一个教师任课,每个教师只有一个地址(此处不允许教师同名同姓)。 1) 指出 R 的主键

3) 指出是否存在部分函数依赖 4) 指出是否存在传递函数依赖。 5)R 是否存在数据冗余、更新异常。

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

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

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

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

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

5 关系数据库 19

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

函数依赖应用举例

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

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

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

5 关系数据库 21

Uwzyx ,,,xy

FD Armstrong

R( U )

xy

xy xzyz

xyyz

xz

自反律

增广律

传递律

函数依赖特性

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

5 关系数据库 22

Uwzyx ,,,FD Armstrong R(U)

xyz

xyz

xyywz xwz

xyxz xy

xz

合并律

分解律

伪传递律

函数依赖特性

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

5 关系数据库 23

5.2 闭包 X+ 及其运算

书 86

问题 闭包定义闭包求法闭包运用

定义: X ?

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

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

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

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)+

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

5 关系数据库 26

AE 决定的属性集合就是AE的闭包 . 记为 : (AE)+

AE的闭包 ?

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

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

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

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

5 关系数据库 28

侯选关键字 CK

[Candidate Key] 指 它的值能决定元组值 ;

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

即它具备主键PK的特性.

CK 书 29

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

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

5 关系数据库 29

? 求侯选关键字 CK 方法 F Fmin

CK 书 29

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

成员2. FD 左 , 右部属性可能是 CK 成员3. 与 F 中 FD 无关属性也一定是 CK 成员

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

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

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

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

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

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

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

5 关系数据库 33

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

F={AB,CA,CDE,DG}

? Candidate Key

左部 (only) CK 书 29

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

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

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

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

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

5 关系数据库 36左 , 右部属性

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

F={ABC,CDE,BD,EA} ?

Candidate Key

左部 (only) 无 .

CK 是由左 , 右部属性组成

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

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

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

5 关系数据库 38

? 求侯选关键字 CK 方法 F Fmin

CK 书 29

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

成员2. FD 左 , 右部属性可能是 CK 成员3. 与 F 中 FD 无关属性也一定是 CK 成员

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

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 集

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

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右边属性单一化

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

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 可去掉

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

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

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

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 是多余

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

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}

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

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 替代

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

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

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

5 关系数据库 47

练习 2

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

CD A , CE G , BC A ,

B D , C D }

? FminCE A CEB

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

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}

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

5 关系数据库 49

5.3 关系模式分解

问题 分解方案选择方案选择依据

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

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 ────────────────── ──────────────────

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

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 ────── ────── ──────

问题 : 信息丢失

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

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 ─────── ────────── ──────────

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

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

元组增加了,信息丢失了

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

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 ──────────── ─────────────────────── ───────────

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

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 关系一样,因此没有丢失信息关系一样,因此没有丢失信息 ,, 数据无损数据无损

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

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)

分解方案一

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

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

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

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)

分解方案二

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

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

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

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

分解方案三

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

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

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

5 关系数据库 62

设关系模式 R(U ,F) , 一个分解   ρ ={ R1,R2,…,Rk }

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

即 分解具有无损连接性

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

5 关系数据库 63

1. 自然连接判断

2.构造表格法

3. ∩ — 判别式

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

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

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 则无损

无损连接性判定方法

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

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

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

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

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

5 关系数据库 67

A B C

AC a1 b12 a3

BC b21 a2 a3

无全 a 行 有损

R2∩ R3=C

R2 - R3 =A

R3 – R2 =B

3

有损

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

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

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

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

练习

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

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

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

5 关系数据库 71

5.4 关系模式规范化

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

5 关系数据库 72

5.4 关系模式规范化

户名 水电费

丁一 36.00 120.00

马二 45.00 240.00

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

户名 水费 电费

丁一 36.00 120.00

马二 45.00 240.00

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

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

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)

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

5 关系数据库 74

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

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

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

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

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

R 2NF

则 R 3NF

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

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

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

5 关系数据库 76

1NF

R

2NF

3NF

BCNF

属性分解

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

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

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

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

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 ?

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

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

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

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

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

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

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

5 关系数据库 81

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

则令 ρ = ρ∪ {x}

X 是 R 的候选关键字。

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

5 关系数据库 82

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

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

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

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

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

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

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

5 关系数据库 83

解:

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

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

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

( Sh ,Ch) TN (Ch TN )

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

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

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

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

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

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

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

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

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

5 关系数据库 87

2 .下表是职工职务工资表职工( E ) 职务( F ) 职务工资( G )王 键 车间主任 1200张 扬 车间主任 1200王元元 工程师 800李 民 工程师 800

F={E→F F→G} R1(E,F) R2(F,G) 3NF

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

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

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

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

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

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

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 范式

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

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