日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库中的模式分解与无损连接性

發布時間:2024/8/23 数据库 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库中的模式分解与无损连接性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無損連接分解的普通判別方法——表格法

  設關系模式R=A1,…,An,R上成立的FD集F,R的一個分解p={R1,…,Rk}。無損連接分解的判斷步驟如下:

  (1)構造一張k行n列的表格,每列對應一個屬性Aj(1≤j≤n),每行對應一個模式Ri(1≤i≤k)。如果Aj在Ri中,那么在表格的第i行第j列處填上符號aj,否則填上符號bij。

  (2)把表格看成模式R的一個關系,反復檢查F中每個FD在表格中是否成立,若不成立,則修改表格中的元素。修改方法如下:對于F中一個FD:X→Y,如果表格中有兩行在X分量上相等,在Y分量上不相等,那么把這兩行在Y分量上改成相等。如果Y的分量中有一個是aj,那么另一個也改成aj;如果沒有aj,那么用其中的一個bij替換另一個(盡量把ij改成較小的數,亦即取i值較小的那個)。

  若在修改的過程中,發現表格中有一行全是a,即a1,a2,…,an,那么可立即斷定p相對于F是無損連接分解,此時不必再繼續修改。若經過多次修改直到表格不能修改之后,發現表格中不存在有一行全是a的情況,那么分解就是有損的。特別要注意,這里有個循環反復修改的過程,因為一次修改可能導致表格能繼續修改。

  修改過程中要特別注意,若某個bij被改動,那么它所在列的所有bij都需要做相應的改動。為了明確這一點,舉例說明。例如,我們根據FD“H→I”、“ K→L”來修改表格之前時的表格如表1所示(已經過多次修改,非初始表,空的單元表示省略):

  表1

?????? ?

?? H?

????? I????

?? J????

??? K???

?? L?????

R1

?

b12

?

?

b35

R2

a1

a2

?

a4

b25

R3

a1

b12

?

a4

b35

R4

?

b12

?

?

b35

  R2、R3所在行的H分量都為a1,根據FD“H→I”,需要修改這兩行對應的I分量,而R2所在行的I分量為a2,因此,要將R3所在行的I分量b12修改為a2,注意到,R1、R4所在行的H分量也為b12,因此,這兩行對應的I分量也必須修改為a2。R2、R3所在行的K分量都為a4,根據FD“K→L”,需要修改這兩行對應的L分量,于是將R3所在行的L分量b35修改為較小的b25,同時注意到,R1、R4所在行的L分量也為b35,因此,這兩行對應的L分量也必須修改為b25。修改后的表格如表2所示:

  表2

???????

? H?

? I?

? J?

? K?

?? L? ??

R1

?

a2

?

?

b25

R2

a1

a2

?

a4

b25

R3

a1

a2

?

a4

b25

R4

?

a2

?

?

b25

  【例題】(軟件設計師2002年上午試題38)

  設關系模式?R為?R(H,I,J,K,L),R上的一個函數依賴集為?F={H→J,J→K,I→J,JL→H},分解?(38)?是無損連接的。

  供選擇的答案:

  (38) A. p={HK,HI,IJ,JKL,HL} B. p={HIL,IKL,IJL}

  C. p={HJ,IK,HL} D. p={HI,JK,HL}

  試題分析:

  根據上述判斷方法,我們列出選項B(分解成三個關系模式R1(HIL)、R2(IKL)、R3(IJL) )的初始表如表3所示:

  表3選項B的初始表

?????????

?? H?

?? I??

????J??

??? K??

?? L?

HIL

a1

a2

b13

b14

a5

IKL

b21

a2

b23

a4

a5

IJL

b31

a2

a3

b34

a5

  對于函數依賴集中的H→J、J→K對表3進行處理,由于屬性列H和屬性列J上無相同的元素,所以無法修改。但對于I→J在屬性列I上對應的1、2、3行上全為a2元素,所以,將屬性列J的第一行b13和第二行b23改為a3。修改后如表4所示:

?

表4選項B的中間表

??????????

???? H??

?? I?

?? J?

??? K?

??? L?

HIL

a1

a2

a3

b14

a5

IKL

b21

a2

a3

a4

a5

IJL

b31

a2

a3

b34

a5

  對于函數依賴集中的JL→H在屬性列J和L上對應的1、2、3行上為a3、a5元素,所以,將屬性列H的第二行b21和第三行b31改為a1。修改后如表5所示:

  表5選項B的結果表

??????????

?? H??

??? I??

??? J??

??? K??

?? L??

HIL

a1

a2

a3

b14

a5

IKL

a1

a2

a3

a4

a5

IJL

a1

a2

a3

b34

a5

  從表5可以看出,第二行為a1、a2、a3、a4、a5,所以分解p是無損的。

  有一種特殊情況要注意:分解后的各個關系模式兩兩均無公共屬性。由于是模式分解,那么任一一個分解后的關系模式覆蓋的屬性集不可能是分解前的整個全部屬性U,因此初始表中不存在全是a的行。又注意到,分解后的各個關系模式兩兩均無公共屬性,表明任兩行在任一列上都沒有相同的分量,這導致整個表格無法修改,保持初始狀態。而初始狀態不存在全是a的行,因此這種特殊情況的分解是有損的。

  例如,函數依賴集合FD,將關系模式R(ABCDEF)分解成R1(AB)、R2(CDE)、R3(F),那么這種分解肯定是有損的??荚囍锌赡芘龅竭@種情況,那么一眼就可以判斷出結果,從而節省了時間。

  3.無損連接分解的快捷判別方法

  首先要申明,這種快捷方法是有前提的,前提就是分解后的關系模式只有兩個。其內容為:

  設ρ={R1,R2}是R的一個分解,F是R上的FD集,那么分解ρ相對于F是無損分解的充分必要條件是:(R1∩R2)→(R1–R2)或(R1∩R2)→(R2–R1)。這個“或”字很重要,這里表示(R1∩R2)→(R1–R2)、(R1∩R2)→(R2–R1)中只要有一個成立就行。這里的求交和相減運算的對象是關系模式的屬性。

  【例題】

  關系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X, X→Z,Y→W}。那么下列分解中是無損分解的是。

  供選擇的答案:

  A.p={R1(WY),R2(XZ)} B.p={R1(WZ),R2(XY)}

  C.p={R1(WXY),R2(XZ)} D.p={R1(WX),R2(YZ)}

  試題分析:

  A選項,R1∩R2為空,肯定不滿足條件。

  B選項,R1∩R2為空,肯定不滿足條件。

  C選項,R1∩R2={X},R1-R2={WY},R2-R1={Z},根據函數依賴集,X→Z成立,所以滿足條件。

  D選項,R1∩R2為空,肯定不滿足條件。

  4.總結

  模式分解無損性判別的源泉仍然是普通的表格法。這種快捷方法只不過是根據這種表格法推斷出來的而已,是它的一個特列。但是這種快捷方法卻往往非常有用。

?

總結

以上是生活随笔為你收集整理的数据库中的模式分解与无损连接性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。