3.4 多值依赖 3.4.1多值依赖( multivalued dependency,mvd)

29
1 3.4 多多多多 3.4.1 多多多多 (Multivalued Dependency MVD) COURSE TEACHER CLASS 多多多多 多多 多多多 多多 多多多多 多多

Upload: candid

Post on 29-Jan-2016

252 views

Category:

Documents


0 download

DESCRIPTION

例: COURSE TEACHER CLASS 知识工程 王一平 硕士 刘晓利 博士 离散数学 赵 静 硕士 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

1

3.4 多值依赖3.4.1 多值依赖 (Multivalued Dependency,MVD)

例: COURSE TEACHER CLASS 知识工程 王一平 硕士 刘晓利 博士 离散数学 赵 静 硕士 孟山峰 本科 大专

Page 2: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

2下下

例: COURSE TEACHER

CLASS 知识工程 王一平 硕士 知识工程 王一平 博士 知识工程 刘晓利 硕士 知识工程 刘晓利 博士

t1

t3

t4

t2

COURSE →→ TEACHER

COURSE →→ CLASS 下页

Page 3: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

3

定义 (MVD) 设关系模式 R, X、 Y R 且 Z=R-

(XY) 。若对 r(R) 中任意元组 t1、 t2有 t1[X]=t2[X] ,则在 r

中存在元组 t3 且满足: t3[X]=t1[X], t3[Y]=t1[Y] ,且 t3[Z]=t2[Z]

关系 r(R) 满足多值依赖 (MVD) X→→Y ,称 X 多值决定Y或 Y 多值依赖于 X。

定义( MVD )设关系模式 R, X、 Y R 且 Z=R-

(XY) 。若关系模式 R 满足多值依赖 (MVD) X→→Y ,当且仅当对 R 上的任一关系 r ,给定一对( x, z )的值,有一组 y 的值,这组值仅仅决定于 x 值而与 z 的值无关。

Page 4: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

4

引 理 设 关 系 模 式 R 和 R 上 的 关 系 r , X 、 YR 且Z=R-(XY) 。若 r 满足多值依赖 X→→Y ,则 r 满足多值依赖 X→→Z。说明: (1) MVD 中: X∩Y=φ或 X∩Y≠φ 都可以。若 X∩Y≠φ ,则有 r 满足 X→→Y,(Y=Y-X) 。因为 YY ,则 t3(Y)=

t1(Y) , 而 Z=R-(XY)=R-(XY) ,有 t3(Z)=t2(Z)。

(2)若 X∩Y=φ且 XX ,则 r(R) 满足 X→→Y 也满足 X→→YX。 (3)若 Z=φ ,即 R=XY ,即 X→→Y, X→→φ 为平凡的MVD 。 (4)若 R(XYZ)中 X=φ ,即MVDφ→→Y, Z=R-Y。 则 r 是投影 Y(r) 和 Z(r) 的笛卡尔积。

Page 5: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

5

例: 若 r 满足 MVD

AB→→BC, AB∩BC=B ,因此 r 也满足MVD AB→→C 。又 A AB ,则 r也满足 MVD AB→→AC。

Page 6: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

6

3.4.2 多值依赖的性质定理 12 设关系 r(R), X、 Y和 Z是 R 的子集且 Z=R-

(XY) ,当且仅当关系 r 无损地分解成关系模式 R1 =XY和

R2 =XZ ,则 r 满足 X→→Y。

设 t1、 t2∈r ,且 t1[X]=t2[X] 。 又设t1∈r1, t2∈r 2 , t1=t1[XY]且 t2=t2[XZ] 。由于r=r1 r2 ,因此有 t∈r ,使 t[XY]=t1[XY]和

t[XZ]=t2 [XZ] ,即元组 t是 t1 和 t2 的连接结果。因t、 t1 和 t2 在 r 中,所以 r 满足 X→→Y。

证明: (1)设 r 是模式 R(XYZ) 上的关系,假定 r 无损分解成 r1 (XY)和 r2(XZ) ,即 r1 =XY(r), r2=XZ (r)。

r = XY (r) XZ (r)

Page 7: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

7

(2)设 X→→Y 在 r 上成立, r1和 r2 如上所述。设 t r∈ 1

r2 则一定有 t r∈ 。

因 t r∈ 1 r2 , 必有元组 t1 r∈ 1和 t2 r∈ 2 ,且满足:

t[X]=t1[X]=t2[X], t[Y]=t1[Y]和 t[Z]=t2[Z] 。 因 r1和 r2是

r 的投影, 则在 r 中必有元组 t1、 t2和 t3 , 使得

t1[XY]=t1[XY], t2[XZ]=t2[XZ], 且 t3[X]=t1[X]= t2[X],

t3[Y]=t1[Y]和 t3[Z]=t2[Z] 。 可以看出, t3 就是 t, 即

t r∈ 。所以有r1 r2 r, 而 rr1 r2 是显然的 , 因此 r= r1 r2 成立.

证毕。

Page 8: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

8

测试关系 r 是否满足 MVD : (1). 根据多值依赖的性质;(2). r 是否满足: |πY ( X=x(r))| = |πY ( XZ=xz(r))|

其中, R=XYZ, Z=R -(XY)

推论 设 r 是模式 R 上的一个关系,并设 X和 Y是 R 的子集。如果 r 满足 FD X→Y ,则 r 满足 MVD X→→Y。

Page 9: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

9

3.4.3 多值依赖的推理公理多值依赖的推理公理 M1~M9M1 :自反性 若 Y X 则 X→→Y。M2 :增广性 若 X→→Y,W Z ,则 XZ→→YW。M3 :相加性 若 X→→Y、 X→→Z ,则 X→→YZ。M4 :投影性 若 X→→Y、 X→→Z ,则 X→→Y- Z 、 X→→Y∩Z 。M5 :传递性 若 X→→Y、 Y→→Z ,则 X→→Z- Y。M6 :伪传递性 若 X→→Y、 YW→→Z ,则 XW→→Z- (YW)。M7 :互补性 若 X→→Y、 Z= R- (XY) ,则 X→→Z。M8 :重复性 若 X→Y ,则 X→→Y。M9 :结合性 若 X→→Y, Z→W ,其中 W Y 和 Y∩Z=Φ ,则 X→W。

Page 10: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

10

证明:公理 M4 先证 X→→Y- Z 成立。 若 X→→Y、 X→→Z ,有 X→→YZ , 求补得: X→→V , 其中 V=R - (XYZ)。 由 X→→Z 、 X→→V , 有 X→→VZ, 求补得: X→→R- (XVZ) 。 化简 R- (XVZ) : R- (XVZ) = R- (X( R- (XYZ)) Z) = R- (X( R- Y) Z) = Y- (XZ) = (Y- Z)- X 因此, r 满足 X→→(Y- Z)- X ,又 X→→X ,则 : X→→Y- Z因 X→→Y, X→→Y- Z ,有: X→→Y- (Y- Z) =Y∩Z ,即有 X→→Y∩Z 成立。 证毕。

Page 11: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

11

证明(公理 M9 ):

设 t1和 t2是 r 中的元组。有 t1[X]=t2[X]。

因 r 满足 X→→Y ,则必有元组 t 在 r 中且满足条件: t[X]=t1[X] =t2[X] , t[Y]=t1[Y], t[V]=t2[V] 。

其中 V = R- [XY]

因 Y∩Z=Φ, Z XV ,因此 t[Z] = t2[Z]。

由 FD Z→W 可知:因 t[Z] = t2[Z] ,有 t[W]=t2[W]。

因W Y ,而 t[Y]=t1[Y] , 则 t1[W]=t[W]=t2[W],

而 t1[X]=t[X]=t2[X] , 因此 r 满足 X→W 。

证毕。

Page 12: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

12

例: 设R=ABCDE, F={A→→BC, DE→→C}

求证: F |= AD→→BE证明:由 A→→BC ,由M7 得: A→→DE, 已知 DE→→C ,由M5 得: A→→C, 由M2 得: AD→→C , 由M7 得: AD→→BE。

Page 13: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

13

定义 ( 依赖基 ) 设 F 是关系模式 R 上的多值依赖集, X R 。定义 X 关于 F 的依赖基是 R 的一个划分{ Y1,Y2,...,Ym} ,其满足如下条件:

(1) F|= X→→Yi, 1 i m;

(2) { Y1,Y2,...,Ym} 中没有任何 Yi (1 i m) 使得 Yi

Yi 而满足 F|= X→→Yi。

X 的依赖基记为 DEP(X, F): X→→Y1 |Y2 |…|

Ym。 ** X 的依赖基是唯一的。

3.4.4 依赖基

Page 14: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

14

最小不相交基 (minimal disjoint set basic, mdsb)

设 S={S1,S2, … ,Sp}是 U 上的属性集且 U= S1 S∪ 2 … S∪ ∪ p,

S 的最小不相交基是 U 的划分 , 表示为: {Y1,Y2,…,Yk} 。

该划分满足: (1) S 中的每个 Si 是某些 Yi 的并集;

(2) {Y1, Y2,…,Yk} 是满足 (1) 的每个 Yi 具有最少属性数的U 的划分。 例: 已知 S={ABCD, CDE, AE}, U=ABCDE 计算: mdsb(S) mdsb(S) 为: {A, B, CD , E}。

Page 15: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

15

算法 3.4.1 计算最小不相交基 MDSB(G)

for each Yi Yj in G do

if Yi∩Yj φ then

Y: ={(G- Yi- Yj)} {Y∪ i∩Yj} {Y∪ i- Yj } {Y∪ j-

Yi };

G:=Y

return(G).

Page 16: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

16

计算 X 的依赖基 DEP(X) :(1). 将 F 中的所有 FD 变为右部为单属性的 MVD;

(2). DEP(X) 的初值为 X 的单属性集合和除 X 以外的其它属性集的并集;(3). 利用 MVD 的传递性不断改进 DEP(X)。

若有 W→→ZF 且W 包含在 DEP(X) 的某些属性集的并Y 中,而 ZY 不为空或不是 DEP(X) 中某些属性集的并,则 DEP(X)=DEP(X)∪{ZY}, 计 算 mdsb(DEP(X)).

反复执行 (3), 直到不能改进为止。

Page 17: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

17

算法 3.4.2 计算 X 的依赖基 输入:模式 R, R 的多值依赖基 F及 X R

输出: DEP(X, F)

BASIS(R, F, X)

Page 18: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

18

Begin for each FD U→V in F do F:= (F{U→V }) {U→→B∪ i | V=B1…Bp,1≤i≤p};

G: = { {Ai} | X=A1…Ak, 1≤i≤k } { R∪ X };

T: =Ф; While T G do begin T: = G; For each MVD W→→Z in F do begin Y= {Y∪ i | Yi T且 Yi∩Wφ};

If WY then If ZYΦ and ZYT and ZY { Y∪ i | Yi T }

then G: = mdsb ( G { Z∪ Y } ) End; End; Return(G) End.

Page 19: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

19

例: 设 R=ABCDEG, F={AB→C, B→DE, DE→→G}。 计算: DEP(AB, F)解: (1). 将 FD 变为右部为单属性的 MVD: F={AB→→C, B→→D, B→→E, DE→→G}

(2). DEP(AB)= {A, B, CDEG}。 (3). 检查 AB→→C, 有 AB∩Aφ和 AB∩B φ, 且 ABA B∪ , 加 C到 DEP(AB) 。 DEP(AB)={ mdsb (A, B, C, CDEG)}={A, B, C, DEG}。

(4). 依次检查 B→→D和 B→→E, DEP(AB) = {mdsb (A, B, C, DEG, D, E)={A, B, C, D, E, G}

结果: DEP(AB)= {A, B, C, D, E, G}。

Page 20: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

20

定理 13 推理公理 A1~ A3,M1~M9 对于函数依赖集和多值依赖集是完备的。

证明 : 构造一个关系 r使 r 满足 F 但不满足X→→Y,即 X→→Y在 r 上不成立,若能证明以下二点则定理得证。 (1). 凡是 F 蕴涵的 MVD在 r 中都成立; (2). X→→Y 不能用公理从 F 中推出,则X→→Y在 r 中不成立 .

Page 21: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

21

A1 A2 …Am W1 W2 … Wn

1 1 … 1 0…0 0 … 0 … 0…0 1 1 … 1 0…0 0 … 0 … 1…1 1 1 … 1 0…0 1 … 1 … 0…0 1 1 … 1 1…1 0 … 0 … 0…0 … … … … … … … 1 1 … 1 1…1 1 … 1 … 0…0 1 1 … 1 1…1 1 … 1 … 1…1

X+X→→Wi

Page 22: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

22

3.4.5 嵌入多值依赖定义 ( 嵌入 MVD) 设关系模式 R 和其上的关系 r, S R , XY S , Z=S- XY , 如果

S ( r) 满足 X→→Y ,则称关系 r ( R ) 满足嵌入多值依赖 EMVD X→→Y|Z。

例 : 设模式 R(C, T, S, M, G) ,其中 C、 T、 S、M、 G

分别表示课程、教师、学生、上课时间、成绩。r 不满足 MVD CT→→S ,但满足 EMVD CT→→S | M。 ( 下页图 )

Page 23: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

23

C T S M G c1 t1 s1 m1 g1

c1 t1 s2 m1 g2

c1 t2 s3 m1 g3

c1 t1 s1 m2 g1

c1 t1 s2 m2 g4

c1 t2 s3 m2 g5

c2 t3 s2 m2 g2

c2 t3 s2 m3 g6

r 不满足 MVD CT→→S ,但满足 EMVD CT→→S | M。

Page 24: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

24

嵌入多值依赖的几个推导规则。

EM1 若 X→→Y|Z, Y1 Y, Z1 Z ,则 X→→Y1|

Z1。

EM2 若 X→→Y|Z, YY1 , XY→→(Y1- Y)|Z, 则

X→→Y1|Z。

EM3 若 X1→→Y1 |Z1, X2Y2Z2=X1Y1, X2 →→Y2 |Z2,

X1、 Y1、 Z1 和 X2、 Y2、 Z2 都互不相交。则

X2 (Y2- Y1) →→Y2∩Y1 | Z1Z2。

Page 25: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

25

3.5 连接依赖r ( A B C ) r1 ( A B ) r2 ( A C ) r3 ( B C ) a1 b1 c1 a1 b1 a1 c1 b1 c1 a1 b2 c2 a1 b2 a1 c2 b2 c2 a3 b3 c3 a3 b3 a3 c3 b3 c3 a4 b3 c4 a4 b3 a4 c4 b3 c4 a5 b5 c5 a5 b5 a5 c5 b5 c5 a6 b6 c5 a6 b6 a6 c5 b6 c5 关系 r 及 r 在 AB, BC, CA 上的投影分别为关系r1、 r2,、 r3 。若将 r1、 r2,、 r3 两两连接,连接后的关系不等于 r, 但若将 r1、 r2,、 r3 三个关系连接,则连接后的关系与 r 相同。

Page 26: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

26

JD 定义 2 : 若 r 满足 JD*[R1,R2, …, Rp] ,如果 r 含有元组 t1,t2, … , tp 且对所有的 i 和 j 等式 ti [Ri∩Rj]=tj [Ri∩Rj] 成立,其中 tiRi, tjRj, 1≤i,

j≤p ,则 r 必含有元组 t ,且 t[Ri]=ti[Ri]。

定义 ( 连接依赖 ) 设 R= {R1,R2, …,Rp} 是属性集U 上的关系模式集。若 r(U) 无损地分解成 R1 ,R2,

…, Rp ,那么,关系 r(U) 满足连接依赖,即: r = R1 (r) R2 (r) … Rp (r)。记为: (JD)*[R1, R2 …, , Rp] ,或 *[R1,R2 …, , Rp]。

Page 27: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

27

例: 设关系 r(ABCDE) 满足JD*[ABC,BD,CDE]。 r ( A B C D E ) t1 a b c d e

t2 a b c d e t3 a b c d e t1[ABC∩BD]=t2[ABC∩BD]= b

t2[BD∩CDE]= t3[BD∩CDE]= d, t1[ABC∩CDE] = t3[ABC∩CDE]= c,

则 r 也必含元组 t: t[ABC]=t1[ABC]={abc},

t[BD] = t2[BD] = {bd}, t[CDE]=t3[CDE]={cde} 。 元组 t = {abcde}。

Page 28: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

28

定义(嵌入连接依赖)

设关系 r(R), S R 且 S= R1R2…Rp ,若 S(r)

满足 JD*[R1,R2,……, Rp] ,则称关系 r(R) 满足嵌入连

接依赖: (EJD)*[R1, R2 …, , Rp]。

Page 29: 3.4 多值依赖 3.4.1多值依赖( Multivalued  Dependency,MVD)

29

连接依赖推理规则 JD1—JD5

JD1 对任一 X U ,有 (EJD)*[X]。

JD2 设 YR1 R2 …Rk,

(JD)*[R1 ,R2 ……, Rk] |= (JD)*[R1 ,R2 ……, Rk, Y]。

JD3 (JD)*[R1 ,R2 …, Rk] |= (JD)*[R1,R2 …, Rk-2 , Rk-1 Rk]

JD4 {(JD)*[R1 ,R2 …, Rk, Y], (EJD)*[S1 ,S2 …, Sq]}

|= (JD)*[R1,R2 …, Rp, S1 ,S2 …, Sq], Y=S1S2 …Sq

JD5 设 A R1 R2 …Rk,

(JD)*[R1 ,R2 …, Rk,YA] |= (JD)*[R1 ,R2 …, Rk, Y]