• 沒有找到結果。

第五章 关系数据库理论

N/A
N/A
Protected

Academic year: 2022

Share "第五章 关系数据库理论 "

Copied!
51
0
0

加載中.... (立即查看全文)

全文

(1)

第五章 关系数据库理论

(2)

什么是好的数据库设计

 体现客观世界的信息

 无过度的冗余

 无插入异常

 无更新复杂

 无删除异常

(3)

Sno Sname Sage ssex sdept cno cname credit grade

95001 张三 25 M CS C01 数据库 3 95 95001 张三 25 M CS C02 网络技术 3 80 95001 张三 25 M CS C03 英语 4 76 95002 李四 23 F MA C01 数据库 3 80 95002 李四 23 F MA C03 英语 4 80

过度冗余——数据重复

更新异常——更新代价大、可能导致数据不一致 删除异常——部分信息的删除可能导致信息的丢失 插入异常——必须有完整信息

一个异常的例子

(4)

数据依赖

数据依赖

函数依赖(Functional Dependency,FD)

多值依赖(Multivalued Dependency,MVD)

 数据依赖是针对数据模式,而不是特定的 实例

是属性间的关联

是一种约束

(5)

 假设给定 X 属性的值 ,就知道 Y的值,

那么 X 函数决定 Y ,记作 X→Y

 如果 R的两个元组在属性A 1 ,A 2 ,…,A n

上一致 ,则它们在另一个属性 B上也 一致,那么 A 1 ,A 2 ,…,A n 函数决定 B,

记作 A 1 A 2 …A n →B

函数依赖

(6)

 平凡的函数依赖

 如果对于函数依赖 A 1 A 2 …A n → B,B是 A中的一个,则该函数依赖就是平凡的 函数依赖

 平凡依赖是永恒的

 sno,sname → sname

函数依赖的种类

(7)

 非平凡

 如果 B中至少有一个属性不在A中

 sno,sname → sname,sdept

 完全非平凡

 如果 B中没有一个属性在A中

 sno,cno → grade

函数依赖种类(续)

(8)

函数依赖规则

 分解规则

A

1

A

2

…A

n

→ B

1

B

2

... B

m

等价于 A

1

A

2

…A

n

→ B

i

 合并规则

A

1

A

2

…A

n

→ B

i

等价于 A

1

A

2

…A

n

→ B

1

B

2

... B

m

(9)

函数依赖规则

 传递规则

若:A→B、B→C 则:A→C

 增补规则

若:A → B 则:AC → BC

(10)

 如果一个或多个属性的集合 {A 1 A 2 …A n }满 足如下条件,则该集合为关系 R的码:

 这些属性函数决定该关系的所有其他属 性

 {A 1 A 2 …A n }的任何真子集都不能函数决定 R的所有其他属性

关系的码:从函数依赖的角度

(11)

关系的码

 主码:选定某一个码为主码。

 主属性:包含在任何一个侯选码中的属 性。

 全码:整个属性组都是码

 外码:该属性或属性组是另外一个关系

的主码。

(12)

属性集{A

1

,A

2

,…An}的闭包记为{A

1

,A

2

,…An }

+

 所有可以由A

1

,A

2

,…An根据函数依赖关系推 导出来的属性集。

闭包的意义

 检验给定的属性是否可以由已知的属性推导 出来。

 从给定的函数依赖,可以推导出蕴涵的函数 依赖。

计算属性的闭包

(13)

 求闭包

closure = X;

repeat until there’s no change:{

if there’s an FD U→V in F such that U∈closure, then set closure = closure∪V }

计算属性闭包的算法

(14)

 例:对关系 R(A,B,C,D,E,F),给定函数依 赖 AB→C,BC→AD,D→E,CF→B,求 {A,B} + {AB} + = AB

{AB} + =ABC //AB→C {AB} + =ABCD //BC→AD {AB} + =ABCDE //D→E

计算属性闭包:举例

(15)

例: 关系 R(A,B,C),F:{A→B、B→C、C→A},

求关系 R(A,B,C)的闭包:

{A} + {B} + {C} + {AB} + {AC} + {BC} + {ABC} +

计算关系的闭包,可以知道所有隐含的函数依赖关系, 如{A}

+

={A,B,C} 可以得出:AC, AB

关系的闭包

(16)

 目的

 验证某一个函数依赖是否在关系的函数 依赖集里

 例:对于关系 R(A,B,C,D,E)

F={A→B,B→C,CD→E} 是否具有A→E 只需求出 A的闭包,是否包含E?

计算属性的闭包

(17)

 异常的原因

 数据依赖的约束

 解决方法

 数据库设计的规范化 →分解

范式 (Normal Forms)

(18)

 规范化

 一个关系满足某个范式所规定的一系 列条件时 ,它就属于该范式

 可以用规范化要求来设计数据库

 也可以用来验证设计结果的合理性,

用其指导优化过程

 1NF→2NF→3NF→BCNF→4NF

范式 (Normal Forms)

(19)

 当且仅当一个关系 R中,每一个元组 的每一个属性只含有一个值时,该 关系属于第一范式。

 要求属性是原子的

范式 ——第一范式(1NF)

(20)

 对于关系 R,若R∈1NF,且 每一个非主属 性完全函数依赖于码,则 R∈2NF。

 不能部分依赖于码

sc(sno,sname,cno,grade) sno,cno→grade

sno→sname

范式 ——第二范式(2NF)

(21)

范式 ——第二范式(2NF)

sno

grade

完全依赖

cno sname

非完全依赖

(22)

 对于关系 R,若R∈2NF,且 每个非主属性 都不传递依赖于码,则 R∈3NF。

主属性可以传递依赖于码

student(sno,sname,sdept,dept_chairman)

sno→sname,sdept sdept→dept_chairman 传递依赖:

sno→dept_chairman

范式 ——第三范式(3NF)

(23)

范式 ——第三范式(3NF)

sno

sdept sname

dept_chairman

(24)

 对于关系 R,若R∈1NF,且对于 所有非平 凡的函数依赖 (右边属性不在左边) ,其决 定因素是候选码,则 R∈BCNF。

sct(s,c,t) //学生,课程,教师

t→c //每位教师只上一门课

s,c→t s,t→c //每门课有若干位教师

范式 —— Boyce/Codd范式(BCNF)

(25)

s c

t s

t

c

sct∈3NF,sct∈BCNF

范式 —— Boyce/Codd范式(BCNF)

(26)

 最高范式

 BCNF 是基于函数依赖的最高范式

 但不是数据库模式设计的最高范式

范式 —— Boyce/Codd范式(BCNF)

(27)

分解

 {A

1

,A

2

,…,A

n

} = {B

1

,B

2

,…,B

n

}∪{C

1

,C

2

,…,C

n

}

 分解的要求

 无损连接:分解后两个关系做连接运算 后,元组个数和原来一模一样。

 保持依赖

F + =(Fb∪Fc) +

 范式要求

B C

范式优化

(28)

无损连接的含义

A B C

a1 b1 c1 a1 b2 c2 a2 b1 c3

A B

a1 b1

a1 b2

a2 b1

A C

a1 c1 a1 c2 a2 c3

A B C

a1 b1 c1 a1 b2 c2 a2 b1 c3

A C

a1 c1 a1 c2 a2 c3

B C

b1 c1

b2 c2

b1 c3

(29)

1.

找出一个不符合范式要求的 FD(X→Y),并使其右端的属 性尽可能地多

(求出X+)

2.

创建新的模式,包含上述 FD的所有(左右)属性(X

+的所有 属性)

3.

创建另一模式,包含前述 FD中的决定因素及剩余的所有属 性

(X∪(U-X+))

4.

反复 1~3,直至符合范式要求

范式分解方法

分解后的关系可以无损连接,函数依赖关 系不一定保持。

(30)

范式优化 ——练习

Sno Sname Sage ssex sdept cno cname credit grade

95001 张三 25 M CS C01 数据库 3 95 95001 张三 25 M CS C02 网络技术 3 80 95001 张三 25 M CS C03 英语 4 76 95002 李四 23 F MA C01 数据库 3 80 95002 李四 23 F MA C03 英语 4 80

snosname, sage, ssex,sdept cnocname, grade

sno,cnograde

(31)

分解并不都是保持依赖关系,在不能实现依赖 保持时,宁可降低范式的要求

例:分解SCT(S,C,T) FD为T→C;SC→T;ST→C 候选码SC/ST

分解为R1(T,C)及R2(T,S)无法保持FD

只能以 3NF的形式

范式优化 ——分解

(32)

分解算法(总结)

 既保持无损连接,又需要保持函数依赖

,分解后的模式可以达到 3NF,不一定满 足 BCNF。算法见书上算法6.3(合成法)

 保持无损连接,一定可以达到 BCNF。

(33)

关系 R(ABCD),具有FD: C→D;C→A;B→C 请问 :

1)找出R的候选码;

2)指出R符合的最高范式;

3)如果R不符合BCNF,则将其分解为具有依赖保 持的 BCNF

课堂练习 : EXAMPLE

(34)

1)B

+

=BCDA,C

+

=CDA,因此B是候选码

2)主属性是B,其余均为非主属性,它们均完全依赖于 码;D,A均通过C传递依赖码(B); C→D;C→A函数依赖 于非码属性,不是BCNF;

仅满足 2NF

3)∵C→D;C→A ∴C

+

=CDA ∴分解为 R1(CDA),R2(CB) ∵F

1

∪F

2

=F ∴

依赖保持

EXAMPLE: R(ABCD), FD: C→D;C→A;B→C

(35)

对于关系R(A,B,C),有A→B,B→C,A→C 若将其分解为(A,B)和(B,C)

无损连接?

—Yes 依赖保持?

--- Yes F

ABC

= F

AB

Union F

BC

——Include A→C

EXAMPLE

(36)

多值依赖

BCNF: 仍有异常

name street city title year

C.Fisher 123 maple St. Hollywood Star Wars 1977

C.Fisher 5 Locust Ln. Mailbu Star Wars 1977

C.Fisher 123 maple St. Hollywood Empire Strikes Back 1980

C.Fisher 5 Locust Ln. Mailbu Empire Strikes Back 1980

C.Fisher 123 maple St. Hollywood Return of the Jedi 1983

C.Fisher 5 Locust Ln. Mailbu Return of the Jedi 1983

(37)

X Y Z

t a 1 …a i a i+1 …a j a j+1 …a n u a 1 …a i b i+1 …b j b j+1 …b n

v a 1 …a i a i+1 …a j b j+1 …b n w a 1 …a i b i+1 …b j a j+1 …a n

多值依赖:

x Z, 有多个z,z与y 无关

(38)

多值依赖(MVD)

 设R(U)是属性集U上的一个关系。X、Y、Z是U 的子集,且Z=U-X-Y。关系R(U)中多值依赖 X→→Y成立,当且仅当对R(U)的任一元组r,

给定一对(x,z)值,有一组y的值,这组值仅仅 取决于x值,而与z值无关。

 对给定X的值,则Y的取值与Z的取值无关

多值依赖

(39)

name street city title year

C.Fisher 123 maple St. Hollywood Star Wars 1977

C.Fisher 123 maple St. Hollywood Empire Strikes Back 1980

C.Fisher 123 maple St. Hollywood Return of the Jedi 1983

C.Fisher 5 Locust Ln. Mailbu Star Wars 1977

C.Fisher 5 Locust Ln. Mailbu Empire Strikes Back 1980

C.Fisher 5 Locust Ln. Mailbu Return of the Jedi 1983

name→→title,year

多值依赖实例

(40)

平凡的多值依赖

 如果X包含Y或 X∪Y=U,则X→→Y是平凡的 多值依赖

性质

 If X→→Y,and Y→→Z then X→→Z-Y

 If X→→Y,and Z=U-X-Y then X→→Z

If X→Y then X→→Y

多值依赖

(41)

对于关系R,若R∈1NF,且所有非平凡的多值依 赖,其决定因素是候选码,则R∈4NF。

基于数据依赖的最高范式

分解要求

 无损连接

 保持依赖

 4NF

多值依赖 ——第四范式

(42)

1983 Return of the Jedi

Hollywood 123 maple St.

C.Fisher

1980 Empire Strikes Back

Hollywood 123 maple St.

C.Fisher

1983 Return of the Jedi

Mailbu 5 Locust Ln.

C.Fisher

1980 Empire Strikes Back

Mailbu 5 Locust Ln.

C.Fisher

1977 Star Wars

Mailbu 5 Locust Ln.

C.Fisher

1977 Star Wars

Hollywood 123 maple St.

C.Fisher

year title

city street

name

多值依赖 ——第四范式

(43)

R(name,title,year,street,city) 函数依赖:没有

多值依赖: name→→title,year name→→street,city 码: All Key 满足 BCNF 不满足 4NF

R关系分解为:

R1(name,title,year) R2(name,street,city) 码:All Key

满足4NF, 为什么?

多值依赖 ——第四范式

(44)

 高层范式包含低层范式

 分解特性

特性 3NF BCNF 4NF 消除 FD 引起的冗余 大部分 消除 MVD 引起的冗余

保持 FD 可能 可能

保持 MVD 可能 可能 可能

多值依赖 —— 范式间的联系

(45)

作为数据库模式的优化工具

 依据范式来设计模式

 用范式来解决异常的问题

 主题最小、主题单一化

反范式的设计

 过多的连接操作

 适当增加冗余,以减少连接

范式的使用

(46)

课堂练习

R(A,B,C,D) with

a) FD’s ABC, CD, DA

b) ABC, BCD, CDA, ADB

1.

哪些函数依赖关系违背了BCNF.

2.

分解关系,让所有模式符合BCNF范式

3.

哪些函数依赖关系违背了3NF

4.

分解关系,满足3NF.

(47)

解题思路:

R(A,B,C,D) with FD’s ABC, CD, DA

第一步:根据函数依赖关系,求出该关系的码。

第二步:根据 BCNF定义,查看哪些函数依赖关系违背 了 BCNF。

第三步:分解该关系。

第四步:验证分解后的关系是否满足 BCNF范式。

第五步:如果不满足,再回到第一步。

码是AB,BC,

BD,

C->A, C->D, D->A, AC->D, CD->A

R1(AC), R2(BC), R3(CD) Or R1(CD),R2(BC),R3(AD) 已满足BCNF

该关系已满足 第三范式

(48)

R (A,B,C,D)

ABC, BCD, CDA, ADB

哪些函数依赖关系违背了

BCNF.

分解关系,让所有模式符合

BCNF范式

哪些函数依赖关系违背了

3NF

分解关系,满足

3NF.

答案:该关系模式已经满足BCNF范式和第3范式

(49)

多值依赖练习

a) R(A,B,C,D) with MVD’s AB, AC

b) R(A,B,C,D) with MVD ABC, and FD BD

找出所有违背4NF的依赖关系

分解,所有模式达到4NF

(50)

A解题思路与答案

R(A,B,C,D) with MVD’s AB, AC

第一步:求出关系的码:ABCD

第二步得出所有的多值依赖关系 ACD, ABD

根据4NF定义,违背4NF的依赖关系是:

AB,AC,ACD,ABD

分解关系

R1(AB) R2(ACD)R1(AB) R21(AC)R22(AD)

(51)

B答案

1) 违背第4NF范式的依赖关系是:

ABC, BD , ABD, BAC .

2) 分解关系为:R1(A,B,C) R2(B,D) 满足第4范式。

R(A,B,C,D) with MVD ABC, and FD BD

找出所有违背4NF的依赖关系,分解所有模式达到4NF。

參考文獻

相關文件

反之, 有了 parametric equation, 我們可利用這些在 R n 的 direction vectors, 利 用解聯立方程組的方法求出和這些 direction vectors 垂直的 normal vectors,

而利用 row vectors 的方法, 由於可以化為 reduced echelon form, 而 basis 是由此 reduced echelon form 中的 nonzero vectors 所組成, 所以雖然和來的 spanning

We point out that extending the concepts of r-convex and quasi-convex functions to the setting associated with second-order cone, which be- longs to symmetric cones, is not easy

Hence, we have shown the S-duality at the Poisson level for a D3-brane in R-R and NS-NS backgrounds.... Hence, we have shown the S-duality at the Poisson level for a D3-brane in R-R

 依序填入該學生社團負責人之相關資訊,並於下方

 童書有很豐富的內容,可教的東西很 多,成人可以因應兒童的興趣隨機施

MASS::lda(Y~.,data) Linear discriminant analysis MASS::qda(Y~.,data) Quadratic Discriminant Analysis class::knn(X,X,Y,k,prob) k-Nearest Neighbour(X 為變數資料;Y 為分類)

[r]