第五章
Download
1 / 91

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


  • 111 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

第五章 RDB (关系数据库)

5.1 函数依赖 FD

5.2 闭包及其运算

5.3 关系模式分解

5.4 关系模式规范化 NF

5 关系数据库


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


解决问题 模式分解

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


问题

  • 函数依赖  FD

  • 函数依赖分类

  • 函数依赖特性

5 关系数据库


X——>Y

X1

X2

X3

X4

……

Xn

Y1

Y2

Y3

……

Yn

X决定Y,Y依赖于X

5 关系数据库


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

PK: (Sh,Ch)

(Sh,Ch)  Sn / Sex / Grade

Sh  Sn / Sex

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

5 关系数据库


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

PK: (Sh,Ch)

(Sh,Ch)  Sn / Sex / Grade

(sh,ch)  Grade

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

5 关系数据库


Ex. S (Sh , Bj , Bad)

ShBj , BjBad

Sh  Bad

Sh Bj Bad

Bad对Sh tfd传递依赖

5 关系数据库


R (U,F) Relation 关系

U Property Set  属性集合

F FD Set  函数依赖集合

Pk: Primary Key  主键

Fk: Foreign Key  外键

5 关系数据库


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

PkPrimary Key 主键

完全函数依赖 fFD

部分函数依赖 pFD

传递函数依赖 tFD

5 关系数据库


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


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


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

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

王 键 车间主任 1200

张 扬 车间主任 1200

王元元 工程师 800

李 民 工程师 800

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

(1)指出 R1的主键

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

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

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

5 关系数据库


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


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


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

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

1)指出 R的主键

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

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

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

5 关系数据库


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


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


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

函数依赖应用举例

5 关系数据库


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


FD Armstrong

R( U )

xy

自反律

xy

xzyz

增广律

xy

yz

xz

传递律

函数依赖特性

5 关系数据库


FD Armstrong

R(U)

xy

xz

xyz

合并律

xy

xz

xyz

分解律

xy

ywz

xwz

伪传递律

函数依赖特性

5 关系数据库


5.2 闭包X+及其运算

闭包定义

闭包求法

闭包运用

问题

定义:X  ?

书86

5 关系数据库


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


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


AE的闭包 ?

AE决定的属性集合就是

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

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

5 关系数据库


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


侯选关键字 CK

[Candidate Key]指

它的值能决定元组值;

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

即它具备主键PK的特性.

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

CK书29

5 关系数据库


?求侯选关键字CK方法

F Fmin

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

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

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

CK书29

5 关系数据库


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


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


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


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


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


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


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

左部(only) 无.

CK 是由左,右部属性组成

左,右部属性

5 关系数据库


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


?求侯选关键字CK方法

F Fmin

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

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

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

CK书29

5 关系数据库


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


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


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


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


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


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


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


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


练习2

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

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

B D , C D }

?Fmin

CEA CE

B

5 关系数据库


作业

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


5.3 关系模式分解

分解方案选择

方案选择依据

问题

5 关系数据库


:学生宿舍表

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

Sno Sdept Sloc

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

95001 CS A

95002 IS B

95003 MA C

95004 IS B

95005 PH B

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

5 关系数据库


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


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


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


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


    ND NL

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

    Sno Sdept Sloc

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

    95001 CS A

    95002 IS B

    95003 MA C

    95004 CS A

    95005 PH B

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

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

    5 关系数据库


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


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


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


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


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


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


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

    ρ ={ R1,R2,…,Rk}

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

    即 分解具有无损连接性

    5 关系数据库


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

    • 自然连接判断

    • 构造表格法

    • 3. ∩  —判别式

    5 关系数据库


    无损连接性判定方法

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


    构造表格法判“无损”

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


    第一行全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 关系数据库


    3

    A B C

    AC a1 b12 a3

    BC b21 a2 a3

    无全a行 有损

    R2∩ R3=C

    R2 - R3 =A

    R3 – R2 =B

    有损

    5 关系数据库


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


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


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


    5.4 关系模式规范化

    5 关系数据库


    5.4 关系模式规范化

    户名 水电费

    丁一 36.00 120.00

    马二 45.00 240.00

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

    户名 水费 电费

    丁一 36.00 120.00

    马二 45.00 240.00

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

    5 关系数据库


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


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

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

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

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

    R 2NF

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

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

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

    则R 3NF

    5 关系数据库


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


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

    属性分解

    1NF

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

    2NF

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

    3NF

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

    BCNF

    5 关系数据库


    例:学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)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 关系数据库


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


    学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)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 关系数据库


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


    3、若2判定不是无损连接性,学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)

    则令ρ = ρ∪ {x}

    X是R的候选关键字。

    5 关系数据库


    练习学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)设有教学管理DB,其属性为:

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

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

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

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

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

    5 关系数据库


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

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

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

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

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

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

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

    5 关系数据库


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


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


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


    2.下表是职工职务工资表学生表(学号,姓名,性别,所在城市,长途区号,课程号,学期,学分,成绩)

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

    王 键 车间主任 1200

    张 扬 车间主任 1200

    王元元 工程师 800

    李 民 工程师 800

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

    F={E→F F→G}

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

    5 关系数据库


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


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


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


    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