<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    RiKeR

    本博客停止更新,最新內容請訪問--> http://blog.csdn.net/shuailee

    統計

    留言簿(3)

    積分與排名

    閱讀排行榜

    評論排行榜

    無損分解和保持依賴的判斷

    大部分是對一個關系模式分解成兩個模式的考察,分解為三個以上模式時無損分解和保持依賴的判斷比較復雜,考的可能性不大,因此我們只對“一個關系模式分解成兩個模式”這種類型的題的相關判斷做一個總結。

    以下的論述都基于這樣一個前提:
    R是具有函數依賴集F的關系模式,(R1 ,R2)是R的一個分解。

    首先我們給出一個看似無關卻非常重要的概念:屬性集的閉包
    令α為一屬性集。我們稱在函數依賴集F下由α函數確定的所有屬性的集合為F下α的閉包,記為α+ 。
    下面給出一個計算α+的算法,該算法的輸入是函數依賴集F和屬性集α,輸出存儲在變量result中。
    算法一:
    result:=α;
    while(result發生變化)do
        for each 函數依賴β→γ in F do
        begin
            if β∈result then result:=result∪γ;
        end

    屬性集閉包的計算有以下兩個常用用途:
    ·判斷α是否為超碼,通過計算α+(α在F下的閉包),看α+ 是否包含了R中的所有屬性。若是,則α為R的超碼。
    ·通過檢驗是否β∈α+,來驗證函數依賴是否成立。也就是說,用屬性閉包計算α+,看它是否包含β。

    (請原諒我用∈符號來表示兩個集合之間的包含關系,那個表示包含的符號我找不到,大家知道是什么意思就行了。)

    看一個例子吧,2005年11月系分上午37題:

    ● 給定關系R(A1,A2,A3,A4)上的函數依賴集F={A1→A2,A3→A2,A2→A3,A2→A4},R的候選關鍵字為________。
    (37)A. A1  B. A1A3  C. A1A3A4  D. A1A2A3

    首先我們按照上面的算法計算A1+ 。
    result=A1,
    由于A1→A2,A1∈result,所以result=result∪A2=A1A2
    由于A2→A3,A2∈result,所以result=result∪A3=A1A2A3
    由于A2→A4,A2∈result,所以result=result∪A3=A1A2A3A4
    由于A3→A2,A3∈result,所以result=result∪A2=A1A2A3A4

    通過計算我們看到,A1+ =result={A1A2A3A4},所以A1是R的超碼,理所當然是R的候選關鍵字。此題選A 。


    好了,有了前面的鋪墊,我們進入正題。

    無損分解的判斷
    如果R1∩R2是R1或R2的超碼,則R上的分解(R1,R2)是無損分解。這是一個充分條件,當所有的約束都是函數依賴時它才是必要條件(例如多值依賴就是一種非函數依賴的約束),不過這已經足夠了。

    保持依賴的判斷
    如果F上的每一個函數依賴都在其分解后的某一個關系上成立,則這個分解是保持依賴的(這是一個充分條件)。
    如果上述判斷失敗,并不能斷言分解不是保持依賴的,還要使用下面的通用方法來做進一步判斷。
    該方法的表述如下:
    算法二:
    對F上的每一個α→β使用下面的過程:
    result:=α;
    while(result發生變化)do
        for each 分解后的Ri
            t=(result∩Ri)+ ∩Ri
            result=result∪t

    這里的屬性閉包是在函數依賴集F下計算出來的。如果result中包含了β的所有屬性,則函數依賴α→β。分解是保持依賴的當且僅當上述過程中F的所有依賴都被保持。


    下面給出一個例題,2006年5月系分上午43題:

    ●設關系模式R<U, F>,其中U={A, B, C, D, E},F={A→BC,C→D,BC→E,E→A},則分解ρ={R1(ABCE),R2(CD)}滿足 (43) 。
    (43) A.具有無損連接性、保持函數依賴
                  B.不具有無損連接性、保持函數依賴
                  C.具有無損連接性、不保持函數依賴
                  D.不具有無損連接性、不保持函數依賴

    先做無損鏈接的判斷。R1∩R2={C},計算C+。
    Result=C
    由于C→D,C∈result,所以result=result∪D=CD
    可見C是R2的超碼,該分解是一個無損分解。

    再做保持依賴的判斷。
    A→BC,BC→E, E→A都在R1上成立(也就是說每一個函數依賴左右兩邊的屬性都在R1中),C→D在R2上成立,因此給分解是保持依賴的。

    選A。


    再看一個復雜點的例題。2007年5月數工40-41題。

    ●給定關系模式R<U, F>,U={A, B, C, D, E},F={B→A,D→A,A→E,AC→B},其候選關鍵字為
    (40)  ,則分解ρ={R1(ABCE),R2(CD)}滿足 (41) 。
    (40) A.ABD
                  B.ABE
                  C.ACD
                  D.CD
    (41) A.具有無損連接性、保持函數依賴
                  B.不具有無損連接性、保持函數依賴
                  C.具有無損連接性、不保持函數依賴
                  D.不具有無損連接性、不保持函數依賴

    看見了吧,和前面一題多么的相像!
    對于第一問,分別計算ABCD四個選項的閉包,
    (ABD)+ = { ABDE }
    (ABE)+ = { ABE }
    (ACD)+ = { ABCDE }
    (CD)+ = { ABCDE }
    選D。

    再看第二問。
    先做無損鏈接的判斷。R1∩R2={C},計算C+。
    result=C
    因此C既不是R1也不是R2的超碼,該分解不具有無損分解性。

    再做保持依賴的判斷。
    B→A,A→E,AC→B在R1上成立,D→A在R1和R2上都不成立,因此需做進一步判斷。
    由于B→A,A→E,AC→B都是被保持的(因為它們的元素都在R1中),因此我們要判斷的是D→A是不是也被保持。

    對于D→A應用算法二:
    result=D
    對R1,result∩R1=ф(空集,找不到空集的符號,就用這個表示吧),t=ф,result=D
    再對R2,result∩R2=D,D+ =ADE ,t=D+ ∩R2=D,result=D
    一個循環后result未發生變化,因此最后result=D,并未包含A,所以D→A未被保持,該分解不是保持依賴的。

    選D。

    posted on 2007-10-18 00:53 RiKeR 閱讀(17891) 評論(17)  編輯  收藏

    評論

    # re: 無損分解和保持依賴的判斷 2007-11-24 13:04 star

    看書太抽象了,這個帖子不錯,理解了,感謝  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2007-12-29 01:22

    不錯啊
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-01-21 12:06 Danielsym

    下午就考數據庫了,這篇帖子真是雪中送炭哪!  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-01-24 23:42 good

    good
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-05-03 16:04 dbs

    不錯!這貼講得很透徹  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-04-26 16:00 HHK

    不錯.謝謝作者.  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2009-05-10 18:17 浪子

    受益匪淺!  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-05-21 15:58 SimonKing

    最后的D-A判斷不是很明白,后天就考試了,這帖子不錯。  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-06-22 15:22 和加快

    謝謝  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2011-01-08 23:01 OK

    非常感謝!現在的課本真的太抽象了。。。  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2011-01-09 17:23 guy

    @OK
    你是華農吧  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2011-05-15 20:04 ice

    nice  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2012-05-09 17:01 Roy

    (ACD)+ = { ABCDE }
    (CD)+ = { ABCDE }
    選D。

    2者都是超碼,為什么選D呢  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2014-06-12 23:57 JOJO

    因為ACD雖然是超碼,但是去掉屬性A它仍然是超碼,所以它不是候選碼,看候選碼的定義就知道了@Roy
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2014-12-04 11:53 。。。

    講的太好了,看完立刻懂  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2015-06-30 00:12 111111111

    謝謝了  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2015-08-29 17:48 ghost

    相當感謝!!!!Orz....  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 伊人久久大香线蕉免费视频| 一色屋成人免费精品网站| 久久久久亚洲AV无码专区首| 丁香花在线观看免费观看| 男女作爱免费网站| 亚洲精品不卡视频| 免费在线观看视频a| 久久不见久久见免费视频7| 在线观看亚洲专区| 久久久无码精品亚洲日韩按摩 | 啦啦啦手机完整免费高清观看| 一级黄色毛片免费看| 亚洲国产精品成人精品软件| 亚洲AV之男人的天堂| 91嫩草免费国产永久入口| 农村寡妇一级毛片免费看视频| 久久精品国产亚洲av麻豆小说| 亚洲AV中文无码乱人伦| 18禁网站免费无遮挡无码中文| 亚洲免费视频一区二区三区| 99999久久久久久亚洲| 国产AV无码专区亚洲A∨毛片| 看全色黄大色大片免费久久| 99久久99热精品免费观看国产| 一级一级一片免费高清| 亚洲中文字幕久久精品蜜桃| 亚洲国产综合精品中文第一区| www国产亚洲精品久久久日本| 亚洲免费综合色在线视频| 久久免费视频99| 国产精品免费视频观看拍拍| 亚洲精品亚洲人成在线 | 国产一级a毛一级a看免费视频 | 69视频在线是免费观看| 亚洲精品黄色视频在线观看免费资源 | 久久久亚洲AV波多野结衣 | 在线综合亚洲中文精品| 亚洲成AV人片在线观看ww| 亚洲中文字幕伊人久久无码| 午夜a级成人免费毛片| 91免费资源网站入口|